我想知道為什么這段代碼也會改變h1::before. 我搜索了 CSS 特異性——它們三個都是相同的,因為它們都有一個元素和一個偽元素(如果我錯了,請告訴我)。然后我認為他們應該按順序執行。這是我腦子里的流程:它會改變h1的第一個字母,然后在h1之前添加一個帶有內容的偽元素,然后在之后添加偽元素。第一個字母不會改變。誰能幫我理解一下?
h1::first-letter {
font-size: 70px;
font-style: italic;
color: yellow;
}
h1::before {
content: "This is";
color: green;
}
h1::after {
content: "of Website";
}
<h1>Heading</h1>
uj5u.com熱心網友回復:
生成的代碼看起來更像這樣:
<h1>
::before
Heading
::after
</h1>
The::first-letter不會“創建”一個新元素,它與::beforeand不同::after。
所以正如檔案所說:
::before 偽元素和 content 屬性的組合可能會在元素的開頭注入一些文本。在這種情況下,
::first-letter將匹配此生成內容的第一個字母。
這就是為什么 ::before 中的文本使用 ::first-letter 屬性進行樣式化的原因。
uj5u.com熱心網友回復:
您的誤解可能是 CSS 是按順序應用的。不是這種情況。CSS 被編譯成一個整體應用的結構,而不是一系列步驟或說明。這不是代碼。
任何適用于 CSS 中任何元素的規則,并且不會被另一個后來的或更具體的規則覆寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/359299.html
