div:nth-of-type(2)::before{
/*必須添加content屬性,不然後期不可見*/
content: "";
/*默認是行級元素,若是想設置寬高,就必須轉換爲塊級元素*/
position: absolute;
width: 20px;
height: 20px;
border-radius: 10px;
left: -10px;
top: -10px;
}
div:nth-of-type(2)::after{
/*必須添加content屬性,不然後期不可見*/
content: "";
/*默認是行級元素,若是想設置寬高,就必須轉換爲塊級元素*/
position: absolute;
width: 20px;
height: 20px;
border-radius: 10px;
left: -10px;
bottom: -10px;
}
/*獲取第一個字符:實現首字下沉*/
p::first-letter{
color: red;
font-size: 30px;
float: left;/*文本環繞*/
}
/*獲取第一行內容:若是設置了::first-letter,那麼沒法同時設置它的樣式*/
p::first-line{
text-decoration: underline;
}
/*設置當前選中內容的樣式*/
p::selection{
color: red;
/*它只能設置顯示的樣式,而不能設置內容大小*/
/*font-size: 30px;*/
}
在CSS中總有一些你不用不知道,用到才知道的「坑」。好比今天要談的,把 before, after 僞類用在 <img> 標籤上。css
嗯,實際上你用你會發現,在大多數瀏覽器這是無效的,dom中並不會出現你想要的結果。html
爲何會這樣呢?
讓咱們迴歸到 W3C 標準中尋覓一下,在標準中,before, after 僞類的定義如:css3
As their names indicate, the :before and :after pseudo-elements specify the location of content before and after an element's document tree content.
來自 https://www.w3.org/TR/CSS21/generate.html#before-after-contentweb
咱們應該注意到所謂 document tree content,對於 img 這種自閉和標籤,彷佛不存在 content (內容或後代元素)在標籤中,因此選擇器沒有生效。但這樣的解釋還不夠清晰,實際上標準中還有一行註釋:瀏覽器
Note. This specification does not fully define the interaction of :before and :after with replaced elements (such as IMG in HTML). This will be defined in more detail in a future specification.dom
嗯,這回清楚了,對於可替換元素(如 img、input、select 等),標準並無清晰定義,這也致使了瀏覽器實現的差別性。post