Html 添加带有if-not子类条件的css
您好,请参阅以下两个html代码:Html 添加带有if-not子类条件的css,html,css,css-selectors,Html,Css,Css Selectors,您好,请参阅以下两个html代码: <div class="price"> 2 </div> 它正在发挥作用。但是如果.symbol类已经存在于.price类中,我就不希望出现这种情况。在CSS中有什么方法可以做到这一点吗?您可以通过jquery检查这个类,这很好 if( $('.price').hasClass('symbol') ) { // ... } 您可以通过jquery检查这个类,这是一个很好的例子 if( $('.price').hasClass
<div class="price">
2
</div>
它正在发挥作用。但是如果
.symbol
类已经存在于.price
类中,我就不希望出现这种情况。在CSS中有什么方法可以做到这一点吗?您可以通过jquery检查这个类,这很好
if( $('.price').hasClass('symbol') ) {
// ...
}
您可以通过jquery检查这个类,这是一个很好的例子
if( $('.price').hasClass('symbol') ) {
// ...
}
仅使用
CSS
无法实现这一点。这里需要一点jquery
我的jQuery代码所做的是将class.symbol present
添加到.price
中,它具有.symbol
元素,然后我的CSS代码相应地添加符号
$(“.price”).addClass(函数(){
返回$(this.find(“.symbol present”)。长度>0?“symbol”:“;
})
。价格:未(.symbol present)::之前{
内容:“;
}
2.
£ 2
仅使用CSS
无法实现这一点。这里需要一点jquery
我的jQuery代码所做的是将class.symbol present
添加到.price
中,它具有.symbol
元素,然后我的CSS代码相应地添加符号
$(“.price”).addClass(函数(){
返回$(this.find(“.symbol present”)。长度>0?“symbol”:“;
})
。价格:未(.symbol present)::之前{
内容:“;
}
2.
£ 2
您可以在纯CSS中实现这一点:
.price::before {
content: "£";
}
/* Do not show the symbol if contained into a price element */
.price > .symbol {
display:none;
}
为什么?
因此,CSS选择器的工作方式是选择器只能查询元素的父元素或同级元素。无法创建通过查询元素的子元素来执行操作的选择器。你必须颠倒顺序。这就是为什么您使用
.symbol
类并显示或隐藏它。您可以在纯CSS中实现这一点:
.price::before {
content: "£";
}
/* Do not show the symbol if contained into a price element */
.price > .symbol {
display:none;
}
为什么?
因此,CSS选择器的工作方式是选择器只能查询元素的父元素或同级元素。无法创建通过查询元素的子元素来执行操作的选择器。你必须颠倒顺序。这就是为什么您使用
.symbol
类并显示或隐藏它。如果您将
符号作为默认值,并将.symbol
应用于注释中提到的@BoltClock的不同符号
您可以将伪
类与位置:绝对
组合使用
必须将position:absolute
应用于同一位置的pseudo
元素和symbol
类。如果没有symbol
类,则在之前的伪元素:将可见,如果symbol
类在那里,则在伪元素:之前的伪元素上方将可见
这里需要技巧的部分是类的背景色:白色
堆栈片段
.price::之前{
内容:“;
位置:绝对位置;
左:0;
}
.价格{
显示:内联块;
位置:相对位置;
左侧填充:20px;
}
.符号{
位置:绝对位置;
左:0;
背景:#fff;
}
2
$ 4
如果您将
符号作为默认值,并将.symbol
作为注释中提到的@BoltClock的不同符号
您可以将伪
类与位置:绝对
组合使用
必须将position:absolute
应用于同一位置的pseudo
元素和symbol
类。如果没有symbol
类,则在之前的伪元素:将可见,如果symbol
类在那里,则在伪元素:之前的伪元素上方将可见
这里需要技巧的部分是类的背景色:白色
堆栈片段
.price::之前{
内容:“;
位置:绝对位置;
左:0;
}
.价格{
显示:内联块;
位置:相对位置;
左侧填充:20px;
}
.符号{
位置:绝对位置;
左:0;
背景:#fff;
}
2
$ 4
为什么不能添加.price>.symbol{display:none;}
?通过这种方式,您总是只通过css显示符号我可以使用Jquery吗?@Alon Eitan:可能是因为符号并不总是.%,如果没有指定,它们只希望.%作为默认值。但是如果价格总是在%内,那么您的解决方案是理想的。为什么不能添加.price>.symbol{display:none;}
?通过这种方式,您总是只通过css显示符号我可以使用Jquery吗?@Alon Eitan:可能是因为符号并不总是.%,如果没有指定,它们只希望.%作为默认值。但是如果价格总是在%之内,那么你的解决方案是理想的。只是这个问题没有在jquery下面加上标签。这个问题没有在jquery下面加上标签。我不完全理解答案,但我认为这将是一个好的答案。如果您可以在JSFIDLE中做一个例子,那么它会更好。@ABLASHER您必须在同一位置对伪元素
和符号
类应用位置:绝对
。如果.symbol
存在,它将位于伪元素之上:在之前,我不完全理解答案,但我认为这将是一个好答案。如果您可以在JSFIDLE中做一个例子,那么它会更好。@ABLASHER您必须在同一位置对伪元素
和符号
类应用位置:绝对
。如果.symbol
存在,它将位于伪元素:之前的