有沒有辦法只針對a & lth1 & gt-標簽?
下面是我想做的一個例子:
<h1>I want to select this text with a css selector <small>but not this text</small></h1>
這似乎不起作用:
h1:not(small)
這可能嗎?
您的選擇器h1:not(small)不起作用,因為它說:
將不是小元素的所有h1元素作為目標。
這與單獨使用h1選擇器是一樣。
h1:不(小) 你應該更接近h1 :not(small),它說:
將h1的所有后代作為目標,小元素除外。
嘣!正是你想要的。
除了直接包含在元素內部的文本(即,周圍沒有標簽的文本)成為匿名元素。CSS不能選擇匿名元素。
h1 :not(small) {
color: orange;
}
<h1>This text is contained directly inside the container. It is not selectable by CSS. It is an anonymous element. <small>This text is inside a small element</small></h1>
<hr>
<h1><span>This text is contained in a span. It is selectable by CSS</span> <small>This text is inside a small element</small></h1>
這是在沒有父div實現的任何css的情況下最接近于保留樣式的方法。這個特性還沒有完全集成到所有的瀏覽器中,但是對某些瀏覽器來說應該可以。希望,有幫助。
瀏覽器支持-
這里正在做什么?
小標簽保留了它原來的CSS,不受其他樣式的影響。您可以將此應用于您想要保留其樣式的任何子元素。
small {
all: initial;
* {
all: unset;
}
}
h1 {
color: #ff0000;
}
<h1>I want to select this tex with a css selector <small>but not this text</small></h1>
對h1應用你想要的樣式,然后,還原那些小的改變,例如,如果你只想改變顏色,你可以使用下面的代碼;
h1 { color: red; }
h1 small { color: initial; }
或者,如果你有多種風格變化;
h1 {
color: red;
font-weight: italic;
text-transform: uppercase;
}
h1 small {
color: initial;
font-weight: initial;
text-transform: initial;
}
請注意,初始CSS值可以在每個瀏覽器上使用,除了IE和Opera Mini。查看此頁面了解更多信息