CSS中關於list-style與inline的使用方法詳解

來源:互聯網
上載者:User
以前只用到 list-style:none; 這種方式,原以為也只這種方式呢,這個方式只不過是讓 li 前的標記去掉而已,下面為大家介紹下CSS: list-style 和 inline 用法詳解,感興趣的朋友不要錯過平時只顧著寫程式,寫 p 或 span 或 ul li 之類的,常常遇到一莫名的問題,自己的解決方式可能是 top: -10px 也可能 float:left 之類的,問題當然能得到解決,就好像坐輪船到紐約和坐飛機到紐約的結果一樣,都是到了紐約,只是方式不同而已,相比之下,飛機更快,更便捷. 自己選擇吧!

display:inline; list-style:none outside none; white-space:nowrap


首先看下 list-style 的用法:

我以前只用到 list-style:none; 這種方式,原以為也只這種方式呢,這個方式只不過是讓 li 前的標記去掉而已 !

事實上 list-style 可分為三個屬性: list-style-type list-style-position list-style-image

看下w3c 的說法:

定義和用法

list-style 簡寫屬性在一個聲明中設定所有的列表屬性。

說明

該屬性是一個簡寫屬性,涵蓋了所有其他列表樣式屬性。由於它應用到所有 display 為 list-item 的元素,所以在普通的 HTML 和 XHTML 中只能用於 li 元素,不過實際上它可以應用到任何元素,並由 list-item 元素繼承。

可以按順序設定如下屬性:

list-style-type

list-style-position

list-style-image

可以不設定其中的某個值,比如 "list-style:circle inside;" 也是允許的。未設定的屬性會使用其預設值。

disc outside noneyesCSS1object.style.listStyle="decimal inside"

執行個體

把映像設定為列表中的清單項目標記:

ul { list-style:square inside url('/i/arrow.gif'); }

瀏覽器支援

所有瀏覽器都支援 list-style 屬性。

注釋:任何的版本的 Internet Explorer (包括 IE8)都不支援屬性值 "inherit"。

CSS list-style-type 屬性

定義和用法

list-style-type 屬性設定清單項目標記的類型。
discyesCSS1object.style.listStyleType="square"執行個體

設定不同的列表樣式:

ul.circle {list-style-type:circle;} ul.square {list-style-type:square;}ol.upper-roman {list-style-type:upper-roman;} ol.lower-alpha {list-style-type:lower-alpha;}

瀏覽器支援

所有瀏覽器都支援 list-style-type 屬性。

注釋:任何的版本的 Internet Explorer (包括 IE8)都不支援屬性值 "decimal-leading-zero"、"lower-greek"、"lower-latin"、"upper-latin"、"armenian"、"georgian" 或 "inherit"。
可能的值CSS2 的值: none無標記。disc預設。標記是實心圓。circle標記是空心圓。square標記是實心方塊。decimal標記是數字。decimal-leading-zero0開頭的數字標記。(01, 02, 03, 等。)lower-roman小寫羅馬數字(i, ii, iii, iv, v, 等。)upper-roman大寫羅馬數字(I, II, III, IV, V, 等。)lower-alpha小寫英文字母The marker is lower-alpha (a, b, c, d, e, 等。)upper-alpha大寫英文字母The marker is upper-alpha (A, B, C, D, E, 等。)lower-greek小寫希臘字母(alpha, beta, gamma, 等。)lower-latin小寫拉丁字母(a, b, c, d, e, 等。)upper-latin大寫拉丁字母(A, B, C, D, E, 等。)hebrew傳統的希伯來編號方式armenian傳統的亞美尼亞編號方式georgian傳統的喬治亞編號方式(an, ban, gan, 等。)cjk-ideographic簡單的表意數字hiragana標記是:a, i, u, e, o, ka, ki, 等。(日文片假名)katakana標記是:A, I, U, E, O, KA, KI, 等。(日文片假名)hiragana-iroha標記是:i, ro, ha, ni, ho, he, to, 等。(日文片假名)katakana-iroha標記是:I, RO, HA, NI, HO, HE, TO, 等。(日文片假名)CSS2.1 的值:disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | none | inherit

CSS list-style-position 屬性

定義和用法

list-style-position 屬性設定在何處放置清單項目標記。
說明

該屬性用於聲明列表標誌相對於清單項目內容的位置。外部 (outside) 標誌會放在離清單項目邊框邊界一定距離處,不過這距離在 CSS 中未定義。內部 (inside) 標誌處理為好像它們是插入在清單項目內容最前面的行內元素一樣。
outsideyesCSS1object.style.listStylePosition="inside"執行個體

規定列表中清單項目標記的位置:

ul { list-style-position:inside; }

瀏覽器支援

所有瀏覽器都支援 list-style-position 屬性。

注釋:任何的版本的 Internet Explorer (包括 IE8)都不支援屬性值 "inherit"。
可能的值 inside清單項目標記放置在文本以內,且環繞文本根據標記對齊。outside預設值。保持標記位於文本的左側。清單項目標記放置在文本以外,且環繞文本不根據標記對齊。inherit規定應該從父元素繼承 list-style-position 屬性的值。

CSS list-style-image 屬性

定義和用法

list-style-image 屬性使用映像來其他清單項的標記。
說明

這個屬性指定作為一個有序或無序清單項目標誌的映像。映像相對於清單項目內容的置放位置通常使用 list-style-position 屬性控制。

注釋:請始終規定一個 "list-style-type" 屬性以防映像不可用。
noneyesCSS1object.style.listStyleImage="url('/images/blueball.gif')"執行個體

把映像設定為列表中的項目標記:

ul { list-style-image:url("/i/arrow.gif"); list-style-type:square; }

瀏覽器支援

所有瀏覽器都支援 list-style-image 屬性。

注釋:任何的版本的 Internet Explorer (包括 IE8)都不支援屬性值 "inherit"。
可能的值 URL映像的路徑。none預設。無圖形被顯示。inherit規定應該從父元素繼承 list-style-image 屬性的值。

二. inline 的說明 :

display:block就是將元素顯示為區塊層級元素.

block元素的特點是:
總是在新行上開始;
高度,行高以及頂和底邊距都可控制;
寬度預設是它的容器的100%,除非設定一個寬度
<p>, <p>, <h1>, <form>, <ul>和<li>是塊元素的例子。

display:inline就是將元素顯示為行內元素.

inline元素的特點是:
和其他元素都在一行上;
高,行高及頂和底邊距不可改變;
寬度就是它的文字或圖片的寬度,不可改變。
<span>, <a>, <label>, <input>, <img>, <strong>和<em>是inline元素的例子。

inline和block可以控制一個元素的行寬高等特性,需要切換的情況如下:

讓一個inline元素從新行開始;
讓塊元素和其他元素保持在一行上;
控制inline元素的寬度(對導航條特別有用);
控制inline元素的高度;
無須設定寬度即可為一個塊元素設定與文字同寬的背景色。

display:inline-block將對象呈遞為內聯對象,但是對象的內容作為塊對象呈遞。旁邊的內聯對象會被呈遞在同一行內,允許空格。

inline-block的元素特點:

將對象呈遞為內聯對象,但是對象的內容作為塊對象呈遞。旁邊的內聯對象會被呈遞在同一行內,允許空格。(準確地說,應用此特性的元素呈現為內聯對象,周圍元素保持在同一行,但可以設定寬度和高度地塊元素的屬性)

並不是所有瀏覽器都支援此屬性,目前支援的瀏覽器有:Opera、Safari在IE中對內嵌元素使用display:inline-block,IE是不識別的,但使用display:inline-block在IE下會觸發layout,從而使內嵌元素擁有了display:inline-block屬性的表症。從上面的這個分析,也不難理解為什麼IE下,對塊元素設定display:inline-block屬性無法實現inline-block的效果。這時塊元素僅僅是被display:inline-block觸發了layout,而它本就是行布局,所以觸發後,塊元素依然還是行布局,而不會如Opera中塊元素呈遞為內聯對象。

IE下塊元素如何?display:inline-block的效果?

有兩種方法:

1、先使用display:inline-block屬性觸發塊元素,然後再定義display:inline,讓塊元素呈遞為內聯對象(兩個display要先後放在兩個CSS聲明中才有效果,這是IE的一個經典bug,如果先定義了display:inline-block,然後再將display設回inline或block,layout不會消失)。代碼如下(...為省略的其他屬性內容):

p {display:inline-block;...} p {display:inline;}

2、直接讓塊元素設定為內聯對象呈遞(設定屬性display:inline),然後觸發塊元素的layout(如:zoom:1等)。代碼如下:

p {display:inline; zoom:1;}

CSS white-space 屬性

定義和用法

white-space 屬性設定如何處理元素內的空白。

這個屬性聲明建立版面配置階段中如何處理元素中的空白符。值 pre-wrap 和 pre-line 是 CSS 2.1 中新增的。

normalyesCSS1object.style.whiteSpace="pre"執行個體

規定段落中的文本不進行換行:

p { white-space: nowrap }

瀏覽器支援

所有瀏覽器都支援 white-space 屬性。

注釋:任何的版本的 Internet Explorer (包括 IE8)都不支援屬性值 "inherit"。
可能的值 normal預設。空白會被瀏覽器忽略。pre空白會被瀏覽器保留。其行為方式類似 HTML 中的 <pre> 標籤。nowrap文本不會換行,文本會在在同一行上繼續,直到遇到 <br> 標籤為止。pre-wrap保留空白符序列,但是正常地進行換行。pre-line合并空白符序列,但是保留分行符號。inherit規定應該從父元素繼承 white-space 屬性的值。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.