html **的空格通常會被瀏覽器忽略。
上面是一行 html **,文字的前部、內部和後部各有兩個空格。為了便於識別,這裡使用半圓形符號◡表示空格。
瀏覽器的輸出結果如下。
hello world
可以看到,文字的前部和後部的空格都會忽略,內部的連續空格只會算作乙個。這就是瀏覽器處理空格的基本規則。
如果希望空格原樣輸出,可以使用標籤。
>
◡◡hello◡◡world◡◡pre
>
另一種方法是,改用 html 實體表示空格。
>
hello
world p
>
html 處理空格的規則,適用於多種字元。除了普通的空格鍵,還包括製表符(\t
)和換行符(\r
和\n
)。
瀏覽器會自動把這些符號轉成普通的空格鍵。
>
hello
worldp
>
上面**中,文字內部包含了乙個換行符,瀏覽器視同為空格,輸出結果如下。
hello world
所以,文字內部的換行是無效的(除非文字放在
標籤內)。
>
hello
>
worldp
>
上面**使用
標籤顯式表示換行。
html 語言的空格處理,基本上就是直接過濾。這樣的處理過於粗糙,完全忽視了原始文字內部的空格可能是有意義的。
css 提供了乙個white-space
屬性,可以提供更精確一點的空格處理方式。該屬性共有六個值,除了乙個通用的inherit
(繼承父元素),下面依次介紹剩下的五個值。
white-space
屬性的預設值為normal
,表示瀏覽器以正常方式處理空格。
>
◡◡hellohellohello◡hello
world
p>
上面**中,文字前部有兩個空格,內部有乙個長單詞和乙個換行符。
然後,容器指定乙個比較小的寬度。為了便於識別,背景色設為紅色。
p
顯示效果如下圖。
可以看到,文首的空格被忽略。由於容器太窄,第乙個單詞溢位容器,然後在後面乙個空格處換行。文字內部的換行符自動轉成了空格。
white-space
屬性為nowrap
時,不會因為超出容器寬度而發生換行。
p
顯示效果如下圖。
所有文字顯示為一行,不會換行。
white-space
屬性為pre
時,就按照標籤的方式處理。
p
顯示效果如下圖。
上面結果與原始文字完全一致,所有空格和換行符都保留了。
white-space
屬性為pre-wrap
時,基本還是按照標籤的方式處理,唯一區別是超出容器寬度時,會發生換行。
p
顯示效果如下圖。
文首的空格、內部的空格和換行符都保留了,超出容器的地方發生了折行。
white-space
屬性為pre-line
時,意為保留換行符。除了換行符會原樣輸出,其他都與white-space:normal
規則一致。
p
顯示效果如下圖。
除了文字內部的換行符沒有轉成空格,其他都與normal
的處理規則一致。這對於詩歌型別的文字很有用。
CSS 的空格處理
原文 html 的空格通常會被瀏覽器忽略。上面是一行 html 文字的前部 內部和後部各有兩個空格。為了便於識別,這裡使用半圓形符號 表示空格。瀏覽器的輸出結果如下。hello world可以看到,文字的前部和後部的空格都會忽略,內部的連續空格只會算作乙個。這就是瀏覽器處理空格的基本規則。如果希望空...
CSS 的空格處理
一 空格規則 html 的空格通常會被瀏覽器忽略。hello world 上面是一行 html 文字的前部 內部和後部各有兩個空格。為了便於識別,這裡使用半圓形符號 表示空格。瀏覽器的輸出結果如下。hello world 可以看到,文字的前部和後部的空格都會忽略,內部的連續空格只會算作乙個。這就是瀏...
CSS 的空格處理
html 的空格通常會被瀏覽器忽略。上面是一行 html 文字的前部 內部和後部各有兩個空格。為了便於識別,這裡使用半圓形符號 表示空格。瀏覽器的輸出結果如下。hello world可以看到,文字的前部和後部的空格都會忽略,內部的連續空格只會算作乙個。這就是瀏覽器處理空格的基本規則。如果希望空格原樣...