>
在本章中,我们将研究CSS选择器的当前浏览器景观,重点是新的选择器。这包括新的属性选择器和组合器,以及一系列新的伪级。在明智地选择选择器的部分中,我们研究了特异性的概念。
>
提示:选择器的浏览器覆盖范围可以在CSS4-Selector上找到浏览器支持的当前状态。
>以下是我们书中的摘录,CSS大师,由蒂法尼·B·布朗(Tiffany B. Brown)撰写。副本在全球范围内出售,或者您可以在此处以电子书形式购买。
组合>
您应该熟悉大多数这些组合者:
使用以下html的块创建此表单:
后代组合
<span><span><span><form</span> method<span>="GET"</span> action<span>="/processor"</span>></span> </span><span><span><span><h1</span>></span>Buy Tickets to the Web Developer Gala<span><span></h1</span>></span> </span><span><span><span><p</span>></span>Tickets are each. Dinner packages are an extra . All fields are required.<span><span></p</span>></span> </span><span><span><span><fieldset</span>></span> </span> <span><span><span><legend</span>></span>Tickets and Add-ons<span><span></legend</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="quantity"</span>></span>Number of Tickets<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span>Limit 8<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="number"</span> value<span>="1"</span> name<span>="quantity"</span> id<span>="quantity"</span> step<span>="1"</span> min<span>="1"</span> max<span>="8"</span>></span> </span><span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="quantity"</span>></span>Dinner Packages<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span>Serves 2<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="number"</span> value<span>="1"</span> name<span>="quantity"</span> id<span>="quantity"</span> step<span>="1"</span> min<span>="1"</span> max<span>="8"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span></fieldset</span>></span> </span><span><span><span><fieldset</span>></span> </span> <span><span><span><legend</span>></span>Payment<span><span></legend</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="ccn"</span>></span>Credit card number<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span>No spaces or dashes, please.<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="ccn"</span> name<span>="ccn"</span> placeholder<span>="372000000000008"</span> maxlength<span>="16"</span> size<span>="16"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="expiration"</span>></span>Expiration date<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span><span><span><abbr</span> title<span>="Two-digit month"</span>></span>MM<span><span></abbr</span>></span>/<span><span><abbr</span> title<span>="Four-digit Year"</span>></span>MM<span><span></abbr</span>></span>YYYY<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="expiration"</span> name<span>="expiration"</span> placeholder<span>="01/2018"</span> maxlength<span>="7"</span> size<span>="7"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span></fieldset</span>></span> </span><span><span><span><fieldset</span>></span> </span> <span><span><span><legend</span>></span>Billing Address<span><span></legend</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="name"</span> name<span>="name"</span> placeholder<span>="ex: John Q. Public"</span> size<span>="40"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="street_address"</span>></span>Street Address<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="name"</span> name<span>="name"</span> placeholder<span>="ex: 12345 Main Street, Apt 23"</span> size<span>="40"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="city"</span>></span>City<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="city"</span> name<span>="city"</span> placeholder<span>="ex: Anytown"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="state"</span>></span>State<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="state"</span> name<span>="state"</span> placeholder<span>="CA"</span> maxlength<span>="2"</span> pattern<span>="[A-W]{2}"</span> size<span>="2"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="zip"</span>></span>ZIP<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="zip"</span> name<span>="zip"</span> placeholder<span>="12345"</span> maxlength<span>="5"</span> pattern<span>="0-9{5}"</span> size<span>="5"</span>></span> </span> <span><span><span></p</span>></span> </span><span><span><span></fieldset</span>></span> </span> <span><span><span><button</span> type<span>="submit"</span>></span>Buy Tickets!<span><span></button</span>></span> </span><span><span><span></form</span>></span></span>
a b
将父级选择器与后代分开,其中b 是由a>包含的元素。让我们从上方添加一些CSS,看看它的工作原理:
<span>form h1 { </span><span>color: #009; </span><span>}</span>
>但是,该选择器存在问题,如下所示。实际上,我们在表格的段落的所有
孩子组合
<span>form p { </span><span>font-size: 22px; </span><span>}</span>
。它遵循模式a> b ,与任何元素
b如果是人的元素,则使用类比,孩子组合将与母元素的孩子相匹配。但是,后代组合也将与她的孙子和曾孙相匹配。让我们修改以前的选择器以使用儿童组合器: 现在只有文章的直接子女受到影响,如下所示。 相邻的兄弟姐妹组合 >在相邻的兄弟姐妹Combinator()的情况下,我们可以选择彼此关注并具有相同父的元素。它遵循模式a b
。样式将应用于的元素,这些元素是<span>form <span>> p</span> { </span><span>font-size: 22px; </span><span>}</span>
之前的
<span><span><span><form</span> method<span>="GET"</span> action<span>="/processor"</span>></span> </span><span><span><span><h1</span>></span>Buy Tickets to the Web Developer Gala<span><span></h1</span>></span> </span><span><span><span><p</span>></span>Tickets are each. Dinner packages are an extra . All fields are required.<span><span></p</span>></span> </span><span><span><span><fieldset</span>></span> </span> <span><span><span><legend</span>></span>Tickets and Add-ons<span><span></legend</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="quantity"</span>></span>Number of Tickets<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span>Limit 8<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="number"</span> value<span>="1"</span> name<span>="quantity"</span> id<span>="quantity"</span> step<span>="1"</span> min<span>="1"</span> max<span>="8"</span>></span> </span><span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="quantity"</span>></span>Dinner Packages<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span>Serves 2<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="number"</span> value<span>="1"</span> name<span>="quantity"</span> id<span>="quantity"</span> step<span>="1"</span> min<span>="1"</span> max<span>="8"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span></fieldset</span>></span> </span><span><span><span><fieldset</span>></span> </span> <span><span><span><legend</span>></span>Payment<span><span></legend</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="ccn"</span>></span>Credit card number<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span>No spaces or dashes, please.<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="ccn"</span> name<span>="ccn"</span> placeholder<span>="372000000000008"</span> maxlength<span>="16"</span> size<span>="16"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="expiration"</span>></span>Expiration date<span><span></label</span>></span> </span> <span><span><span><span</span> class<span>="help"</span>></span><span><span><abbr</span> title<span>="Two-digit month"</span>></span>MM<span><span></abbr</span>></span>/<span><span><abbr</span> title<span>="Four-digit Year"</span>></span>MM<span><span></abbr</span>></span>YYYY<span><span></span</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="expiration"</span> name<span>="expiration"</span> placeholder<span>="01/2018"</span> maxlength<span>="7"</span> size<span>="7"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span></fieldset</span>></span> </span><span><span><span><fieldset</span>></span> </span> <span><span><span><legend</span>></span>Billing Address<span><span></legend</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="name"</span> name<span>="name"</span> placeholder<span>="ex: John Q. Public"</span> size<span>="40"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="street_address"</span>></span>Street Address<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="name"</span> name<span>="name"</span> placeholder<span>="ex: 12345 Main Street, Apt 23"</span> size<span>="40"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="city"</span>></span>City<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="city"</span> name<span>="city"</span> placeholder<span>="ex: Anytown"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="state"</span>></span>State<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="state"</span> name<span>="state"</span> placeholder<span>="CA"</span> maxlength<span>="2"</span> pattern<span>="[A-W]{2}"</span> size<span>="2"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="zip"</span>></span>ZIP<span><span></label</span>></span> </span> <span><span><span><input</span> type<span>="text"</span> id<span>="zip"</span> name<span>="zip"</span> placeholder<span>="12345"</span> maxlength<span>="5"</span> pattern<span>="0-9{5}"</span> size<span>="5"</span>></span> </span> <span><span><span></p</span>></span> </span><span><span><span></fieldset</span>></span> </span> <span><span><span><button</span> type<span>="submit"</span>></span>Buy Tickets!<span><span></button</span>></span> </span><span><span><span></form</span>></span></span>
>您可以看到下面的结果。
>让我们看一下将通用选择器(*)与类型选择器结合的另一个示例:
<span>form h1 { </span><span>color: #009; </span><span>}</span>
>
不与另一个相邻的同级元素?在这种情况下,我们可以使用一般的兄弟姐妹组合。
>一般兄弟姐妹组合 >与一般的兄弟姐妹组合者(一个Tilde)我们可以选择共享同一父母的元素,而无需考虑它们是否相邻。给定模式
a〜b
>让我们再次查看门票字段的数量。它的标记看起来像这样:
我们的输入元素遵循标签元素,但是之间有一个跨度元素。由于跨度元素位于输入和标签之间,因此相邻的兄弟姐妹组合者将在这里工作。让我们将相邻的兄弟姐妹组合者更改为一般的兄弟姐妹组合者:
>
>我如何在CSS中使用CHILP COMBINATOR? 。它用于选择是特定元素的直接子女的元素。例如,如果要选择所有是
>元素的直接子女的元素,则将其写为“ div> p”。这仅将CSS样式仅应用于是
>后代组合者?
儿童组合和后代组合者之间的主要区别在于它们的特异性。儿童组合(>)仅选择特定元素的直接子女,而后代组合者(空间)选择特定元素的所有后代(儿童,孙子等)。例如,“ div> p”仅选择是
>元素的直接子女的元素,而“ div p”选择了>相邻的兄弟姐妹组合器如何在CSS中工作? CSS由“”符号表示。它用于选择直接在另一个特定元素之后的元素,并且两个元素共享同一父。例如,如果要选择一个直接遵循a
元素的>
元素,则将其写为“ Div P”。这将仅将CSS样式应用于直接遵循元素的
>元素。我可以将多个CSS组合器组合在单个规则中吗?您可以在单个规则中将多个CSS组合器组合在一起,以创建更具体而复杂的选择器。例如,您可以将儿童组合器和相邻的兄弟姐妹组合器组合在一起,以选择一个既是直接儿童又是特定元素的相邻兄弟姐妹的元素。规则“ div> p p”将选择是
>元素的直接子,也直接遵循另一个元素。 > CSS中的一般兄弟姐妹组合器是什么?它用于选择是特定元素的兄弟姐妹的元素。与相邻的兄弟姐妹组合器不同,一般兄弟姐妹组合器选择所有是特定元素的兄弟姐妹的元素,而不仅仅是直接关注它的元素。例如,“ div〜p”将选择所有是
元素的兄弟姐妹的元素。
元素中的所有
>元素。您还可以使用儿童组合者仅通过编写“ Div> p”来设计元素的直接孩子。通过组合不同的组合器,您可以创建非常特定的选择器,以准确定位要样式的元素。 我可以使用带有伪级的CSS组合器吗?使用CSS组合符和伪级。例如,您可以将儿童组合使用者与以下方式使用:第一孩子伪级选择特定元素的第一个孩子。规则“ div> p:first-child”将选择第一个元素,该元素是元素的直接子。
> CSS Combinators的特异性是什么?
CSS组合者本身没有任何特异性。但是,它们通过定义元素之间的关系来帮助确定选择器的特异性。选择器的特异性是根据ID选择器,类选择器和类型选择器所包含的数量计算的。具有更具体选择器的选择器将覆盖具有较少特定选择器的选择器。
我可以使用带有属性选择器的CSS组合剂吗? 元素,并且是 是的,您可以将CSS组合器与属性选择器一起使用。例如,您可以使用带有属性选择器的子组合器来选择具有特定属性并且是特定元素的直接子女的元素。规则“ div> p [title]”将选择具有标题属性的所有
以上是CSS选择器:组合器的详细内容。更多信息请关注PHP中文网其他相关文章!