CSS 列表模型之marker標記的使用

本文主要對::master
偽元素、list-item
下的list-style-image
、list-style-type
樣式屬性進行介紹,并介紹了在實際中如何使用。list-item
下還有其他不常用的樣式屬性這里不做介紹。感興趣的可以自行移步CSS 標準文檔
::marker 是什么
::marker
是一個標記偽元素,能夠定義內(nèi)容填充在list-item
上代表列表項的標志,先附上一個例子,就能很清楚地看出它的作用。
<style> li::marker { content: "(" counter(list-item) ")"; } li { display: list-item; } </style> <ul> <li>zhaodao88.com 找商機</li> <li>zhaodao88.com 找人脈</li> <li>zhaodao88.com 找采購</li> </ul>
效果圖:
在這里,marker
為元素定義的是每一項列表項前面的標記符,在偽元素內(nèi)的content
的內(nèi)容就是要在列表項前面所填充的內(nèi)容。
使用::marker填充標記內(nèi)容
需要注意的是,普通元素要想使用marker
,必須將元素定義成display: list-item
,list-items
在創(chuàng)建的時候會自動生成marker
和counter
。
標記的樣式可以使用list-style-type
和 list-style-image
屬性或者直接使用::marker
偽元素進行樣式編寫。下面展示一個例子。
用::marker
偽元素對標記進行控制,偽元素內(nèi)content
的內(nèi)容就是標記符的內(nèi)容
<style> p { margin-left: 12 em; } p.note { display: list-item; counter-increment: note-counter; } p.note::marker { content: "Note " counter(note-counter) ":"; color: blue; font-weight: bold; } </style> <p>zhaodao88.com 找商機</p> <p class="note">zhaodao88.com 找采購</p> <p>zhaodao88.com 找人脈</p>
效果如圖:
當然也可以為標記設置字體樣式、顏色等屬性,類似上面效果li::marker { color: blue; font-weight:bold; }
值得注意的是:目前只有以下屬性能夠作用于marker
偽元素上
- 所有的字體樣式:font相關
- white-space屬性
- color屬性
- text-combine-upright, unicode-bidi, direction屬性
- content屬性
- 所有的animation和transition屬性
有issue提出,在標記使用white-space: pre
可能不會有很好的效果,可以嘗試text-space-collapse: preserve-spaces
和text-space-trim: discard-after
一起使用,更能達到想要的效果,感興趣的請移步 issue 4448和issue 4891
使用list-style-image圖像填充標記內(nèi)容
指定標記圖像,當列表項內(nèi)容正常時,用指定圖像填充列表項的標記。
list-style-image
正常取值 <image> | none
,未定義情況下是 none
,作用在列表項list-items
下。其中<image>
用于指定標記圖像的url
。參考鏈接移步
下面是使用例子,將會為<li>
標簽的標記塊填充上指定鏈接的ellipse.png
圖像
li { list-style-image: url("http://www.example.com/ellipse.png") }
使用list-style-type文本類型填充標記內(nèi)容
指定標記字符串,當列表項內(nèi)容正常時,用指定字符串填充列表項的標記。
list-style-type
正常取值 <counter-style> | <string> | none
,未定義情況下是 disc(圓形標記符)
,作用在列表項list-items
下。參考鏈接移步
<counter-style>
是CSS 定義的計數(shù)器樣式,允許開發(fā)者自定義counter
的樣式。比如:
@counter-style thumbs { system: cyclic; symbols: "\1F44D"; suffix: " "; } ul { list-style-type: thumbs; }
具體<counter-style>
定義規(guī)則參考
下面是關于list-style-type
的使用例子(如果作用元素不是列表元素,則元素的display必須設置為list-item)
ul { list-style-type: "★"; } // 使用"★"作為標記符 p.note { // 如果作用元素不是列表元素,則元素的display必須設置為list-item display: list-item; list-style-type: "Note: "; list-style-position: inside; } ol { list-style-type: upper-roman; } // 定義為羅馬數(shù)字的大寫形式 ul { list-style-type: symbols(cyclic '○' '●'); } // 標記符在'○'和'●'之間切換 ul { list-style-type: none; } // 不顯示標記
注意
::marker
偽元素標記不是所有瀏覽器都支持,包括chrome
也只是在80以上版本通過啟用experimental Web Platform
才支持,如果你想要測試效果,請前往chrome://flags
啟用experimental Web Platform
。并不推薦在實際項目去使用這條規(guī)則,更推薦使用常規(guī)的做法去設置標記塊樣式。
總結(jié)
列表在前端項目中很常見,應用場景也十分廣泛。個人覺得,::marker
偽元素是對list-style-image
和list-style-text
的補充,三者都是定義標記塊的填充內(nèi)容,image
注重圖像,text
注重字符串,::marker
則可以定font
、color
等樣式,各具特色。
參考
https://www.w3.org/TR/2020/WD-css-lists-3-20200709
https://developer.mozilla.org/en-US/docs/Web/CSS/::marker
到此這篇關于CSS 列表模型之marker標記的使用的文章就介紹到這了,更多相關CSS marker標記內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!
相關文章
- 這篇文章主要介紹了淺談CSS 偽元素&偽類的妙用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習2020-09-01
- 塊級格式化上下文,是一個獨立的渲染區(qū)域,讓處于 BFC 內(nèi)部的元素與外部的元素相互隔離,使內(nèi)外元素的定位不會相互影響。這篇文章給大家介紹了CSS 使用偽元素清除浮動的方2019-07-01
- 本篇重點介紹CSS中的:befor、:after創(chuàng)建的偽元素幾種使用場景,如填充文本、作為iconfont、進度線、時間線以及幾何圖形,感興趣的朋友一起看看吧2018-02-07
- before 和 after其實就是附著在元素前后的偽元素,說他是偽元素的意思就是,元素不是在DOM中生成的,而是在瀏覽器渲染引擎渲染CSS的時候畫上去的,這篇文章主要給大家介紹2017-09-18
- 本文介紹了什么是 ::marker 以及它的一些實用場景,可以看出雖然 ::before 、::after 也能實現(xiàn)類似的功能,但 CSS 還是提供了更具有語義化的標簽 ::marker,也表明了大家需2021-06-25