這對我沒有意義。不應該::在跨度之前呈現呈現之前?它適用於如果我添加位置:相對於子元素。爲什麼div :: before在children元素的頂部顯示?
這可能有事情做與堆疊內容,但我不知道究竟怎麼了。
https://www.w3.org/TR/CSS21/visuren.html#layers
跨度在這種情況下落入#3,因爲它的非定位和::#6之前,因爲它是一個定位的後裔?
div { position:relative; }
div:before {
content: '';
width: 100%;
height: 100%;
background: red;
position: absolute;
top: 0;
left: 0;
}
/* Adding this works: */
/* span { position: relative; } */
<div>
<span>Test</span>
</div>
您正在使用'位置。 – FluffyKitten
它的確與堆疊上下文有關,例如,如果聲明除auto之外的任何'z-index'值,比如'-1',則將創建一個堆棧上下文,':pseudo-element '會出現在兄弟'span'元素下面。如果沒有聲明'z-index'值,絕對定位元素將總是出現在任何「未定位」元素或靜態元素(* eg:'position:static' *)之上 - 這通常是任何元件。 – UncaughtTypeError