[ASP.NET] 為什麼在網頁上我的空白顯示不出來 ?


這篇其實就只是個筆記文,當我們越學越多之後真的很容易把最初的 HTML 的概念給忘記,前幾天學弟妹有一份作業一直卡關連連跑來問我:「到底 ASP.NET 要如何產生空白?」,我心裡當下的OS是阿不就打個空白就解決了嘛?但事情似乎沒有想像中的簡單,一份簡單的題目也搞了我好久真的有點慚愧,也有可能是小弟才學不佳吧哈哈,好啦不廢話我們繼續看下去....

前言

這篇其實就只是個筆記文,當我們越學越多之後真的很容易把最初的 HTML 的概念給忘記,前幾天學弟妹有一份作業一直卡關連連跑來問我:「到底 ASP.NET 要如何產生空白?」,我心裡當下的OS是阿不就打個空白就解決了嘛?但事情似乎沒有想像中的簡單,一份簡單的題目也搞了我好久真的有點慚愧,也有可能是小弟才學不佳吧哈哈,好啦不廢話我們繼續看下去....

實作範例

題目一:我們今天要產生像下圖這樣的金字塔

錯誤程式碼


<%
        int n = 5; //金字塔的階層
        int c = 1; // 記錄到了第幾層用的變數
        string result = "";
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= n - i; j++)
            {
                result += " ";
            }
            result += new string('*', c);
            c += 2;
            result += "<br>";
        }
        Response.Write(result);
%>

這一段程式碼看起來很正常,但最後產生的結果如下:

奇怪空白呢?我明明在輸出的時候有串接空白給他,中間 Debug 也很辛苦以為程式沒跑到那行,最後都徒勞無功。這時只好拜一下 Google 神了,得到以下的結論:

WWW Browser 是 以 原 始 檔 的 空 白 處 來 做 其 跳 行 的 地 方, 有 時 我 們 總 希 望 一 些 名 詞 中 的 字 不 會 被 拆 在 不 同 的 兩 行. 這 時 可 利 用 不可中斷空白 &nbsp; 來 達 到 目 的.

所以我們將程式碼改成這樣後,即能正常顯示空白了:


for (int j = 1; j <= n - i; j++)
{
    result += "&nbsp";
}

總結

其實除了空白之外還有許多特殊符號在網頁在顯示往往會出現不一樣的結果,透過這個經驗也讓我又學了一招,也提醒我需要時時回頭看看那些我以為我已經學會的東西,真的會碰出不一樣的答案,不過筆者也承認當初 HTML 底子真的沒有打好(嘆)。


新手發文,如有錯誤煩請告知,感謝。
如果喜歡我的文章請按推薦,有任何問題歡迎下面留言~~~

 

 

簽名:

學習這條路很廣,喜歡什麼技術不重要,重要的是你肯花時間去學習