CSS 转换没有应用到由 :nth-child() 选择的元素
CSS transform does not get applied on elements selected by :nth-child()
考虑以下 HTML:
<p>
<span> A </span>
<span> A </span>
<span> A </span>
</p>
现在尝试在其上应用此 CSS:
p span:nth-of-type(2) {transform: rotateX( 180deg ) ; color: blue }
您会看到颜色在第二个跨度上发生了变化,但转换 属性 没有。谁能解释为什么会这样?
似乎是因为 css 转换仅适用于 "block" 元素。由于是 "inline" 元素,因此不会受到影响。
<span>
默认有display: inline
,你需要display:block
或display:inline-block
才能使transform
生效。
p span:nth-of-type(2) {
display: inline-block;
transform: rotateX( 180deg);
color: blue
}
<p>
<span> A </span>
<span> A </span>
<span> A </span>
</p>
参考 this post,span 是一个内联元素,转换 属性 将不起作用,除非您使用 "display:block;",或者在您的情况下 "display:inline-block;"
将您的 css 更改为:
p span:nth-of-type(2){
display: inline-block;
transform: rotateX(180deg);
color: blue;
}
:nth-child
不会应用到 class,只有它起作用的元素。您需要先申请 children 才能正常使用。
p span:nth-of-type(3) {
display: inline-block;
transform: rotateX( 180deg);
}
<p>
<span> A </span>
<span> A </span>
<span> A </span>
</p>
考虑以下 HTML:
<p>
<span> A </span>
<span> A </span>
<span> A </span>
</p>
现在尝试在其上应用此 CSS:
p span:nth-of-type(2) {transform: rotateX( 180deg ) ; color: blue }
您会看到颜色在第二个跨度上发生了变化,但转换 属性 没有。谁能解释为什么会这样?
似乎是因为 css 转换仅适用于 "block" 元素。由于是 "inline" 元素,因此不会受到影响。
<span>
默认有display: inline
,你需要display:block
或display:inline-block
才能使transform
生效。
p span:nth-of-type(2) {
display: inline-block;
transform: rotateX( 180deg);
color: blue
}
<p>
<span> A </span>
<span> A </span>
<span> A </span>
</p>
参考 this post,span 是一个内联元素,转换 属性 将不起作用,除非您使用 "display:block;",或者在您的情况下 "display:inline-block;"
将您的 css 更改为:
p span:nth-of-type(2){
display: inline-block;
transform: rotateX(180deg);
color: blue;
}
:nth-child
不会应用到 class,只有它起作用的元素。您需要先申请 children 才能正常使用。
p span:nth-of-type(3) {
display: inline-block;
transform: rotateX( 180deg);
}
<p>
<span> A </span>
<span> A </span>
<span> A </span>
</p>