Html 如何在CSS中否定条件
下面是我的代码,我对HTML/CSS很幼稚,如果我遗漏了任何东西,请告诉我Html 如何在CSS中否定条件,html,css,Html,Css,下面是我的代码,我对HTML/CSS很幼稚,如果我遗漏了任何东西,请告诉我 。下拉菜单>li>a{ 填充物:3px 5px; } 如果在第一个li中存在,则可以使用:第一个子选择器 .dropdown-menu > li:first-child > a { padding: 0; } 或者您可以使用a标记的id或class名称 <li> <a id="btn-other-1" href="#" class="icon">
。下拉菜单>li>a{
填充物:3px 5px;
}
如果在第一个li
中存在,则可以使用:第一个子选择器
.dropdown-menu > li:first-child > a {
padding: 0;
}
或者您可以使用a
标记的id
或class
名称
<li>
<a id="btn-other-1" href="#" class="icon"> <!–- I do not want apply css for this anchor tag because it has i inside –->
<i class="fa fa-check" aria-hidden="true"></i>
<span> Other stuff-1? </span>
</a>
</li>
<li>
<a id="btn-other-2" href="#">
<span> Other stuff-2 </span>
</a>
</li>
.dropdown-menu > li > a:not(.icon) {
padding: 3px 5px;
}
.下拉菜单>li>a:非(.icon){
填充物:3px 5px;
}
如果第一个li中有,则可以使用:first child
选择器
.dropdown-menu > li:first-child > a {
padding: 0;
}
或者您可以使用a
标记的id
或class
名称
<li>
<a id="btn-other-1" href="#" class="icon"> <!–- I do not want apply css for this anchor tag because it has i inside –->
<i class="fa fa-check" aria-hidden="true"></i>
<span> Other stuff-1? </span>
</a>
</li>
<li>
<a id="btn-other-2" href="#">
<span> Other stuff-2 </span>
</a>
</li>
.dropdown-menu > li > a:not(.icon) {
padding: 3px 5px;
}
.下拉菜单>li>a:非(.icon){
填充物:3px 5px;
}
在此处检查组合器:,但我认为不会有直接组合器可用
最简单的选择是为带有i标记的锚点分配一个伪类名,并为不带i标记的锚点分配一个不同的类名
<li>
<a id="btn-other-1" href="#" class="itag"> <!–- I do not want apply css for this anchor tag because it has i inside –->
<i class="fa fa-check" aria-hidden="true"></i>
<span> Other stuff-1? </span>
</a>
</li>
<li>
<a id="btn-other-2" href="#" class="noitag">
<span> Other stuff-2 </span>
</a>
</li>
在这里检查组合器:,但我认为不会有直接组合器可用
最简单的选择是为带有i标记的锚点分配一个伪类名,并为不带i标记的锚点分配一个不同的类名
<li>
<a id="btn-other-1" href="#" class="itag"> <!–- I do not want apply css for this anchor tag because it has i inside –->
<i class="fa fa-check" aria-hidden="true"></i>
<span> Other stuff-1? </span>
</a>
</li>
<li>
<a id="btn-other-2" href="#" class="noitag">
<span> Other stuff-2 </span>
</a>
</li>
css
中没有任何方法可以将选择应用于其父项。因此,您必须使用jquery
或javascript
$('.dropdown-menu a i').parent().css('padding','0');
希望它能对您有所帮助。在css
中没有任何方法可以将选择应用于他们的家长。因此,您必须使用jquery
或javascript
$('.dropdown-menu a i').parent().css('padding','0');
希望它能对您有所帮助。正如kravisingh所说,CSS中目前没有父选择器
在不更改HTML的情况下,您的示例有一个变通方法:您可以将填充应用于链接的子项,好消息是-在您的示例中-您可以在纯CSS中轻松区分这两种情况下的子项
我使用了:only child
来选择一个没有任何同级元素的span元素(因此前后都没有I元素),如下所示。
工具箱中还有:
:第一个子项(如果span
匹配,则表示前面没有i
)
:最后一个孩子
+
相邻的兄弟姐妹(i+a{/**/}
严格遵循i
?)
~
一般同级(i~a{/**/}
是a
在i
之后,可能中间有其他元素?)
- 和
:not()
(例如:span:not(:独生子)
:span
元素在其父元素中不是唯一的,它们的前面或后面可以是其他span
或i
或…)
注:
- 此解决方案不适用于所有样式和案例:/
- 在父级上添加类比较容易(请参见Amit的答案),但在某些情况下,您无法修改标记,或者CSS解决方案比修改生成标记的后端/前端函数更容易(尽管这样维护代码IMHO会更困难)
/*来自问题的CSS(示例#1)*/
.on link>li>a{
显示:内联块;
填充物:3px 5px;
背景颜色:浅绿色;
}
/*示例2*/
/*适用于i+span*/
.关于儿童i{
/*填充:3px0 3px5px*/
背景颜色:浅蓝色;
}
.关于儿童i+span{
/*填充:3px 5px 3px 0*/
背景颜色:粉红色;
}
/*适用于任何不带图标的范围(之后或之前)
注意:第一个子项允许在链接的末尾有一个图标*/
.关于儿童的跨度:独生子女{
填充物:3px 5px;
背景色:番茄;
}
/*演示*/
.关于儿童i:以前{
内容:"我";;
}
样式链接(来自OP的原始样式)
-
-
链接的样式(我的答案)
-
-
正如kravisingh所说,CSS中目前没有父选择器
在不更改HTML的情况下,您的示例有一个变通方法:您可以将填充应用于链接的子项,好消息是-在您的示例中-您可以在纯CSS中轻松区分这两种情况下的子项
我使用了:only child
来选择一个没有任何同级元素的span元素(因此前后都没有I元素),如下所示。
工具箱中还有:
:第一个子项(如果span
匹配,则表示前面没有i
)
:最后一个孩子
+
相邻的兄弟姐妹(i+a{/**/}
严格遵循i
?)
~
一般同级(i~a{/**/}
是a
在i
之后,可能中间有其他元素?)
- 和
:not()
(例如:span:not(:独生子)
:span
元素在其父元素中不是唯一的,它们的前面或后面可以是其他span
或i
或…)
注:
- 此解决方案不适用于所有样式和案例:/
- 在父级上添加类比较容易(请参见Amit的答案),但在某些情况下,您无法修改标记,或者CSS解决方案比修改生成标记的后端/前端函数更容易(尽管这样维护代码IMHO会更困难)
/*来自问题的CSS(示例#1)*/
.on link>li>a{
显示:内联块;
填充物:3px 5px;
背景颜色:浅绿色;
}
/*示例2*/
/*适用于i+span*/
.关于儿童i{
/*填充:3px0 3px5px*/
背景颜色:浅蓝色;
}
.关于儿童i+span{
/*填充:3px 5px 3px 0*/
背景颜色:粉红色;
}
/*适用于任何不带图标的范围(之后或之前