我有一个小的CSS问题。
在我的HTML中,我有如下内容:
<div class='box-div'>
<div>Entry 1</div>
<div class='hide'>Entry 2</div>
</div>
在我的CSS中:
.box-div div {
display: inline-block;
}
.hide {
display: none;
}
我希望隐藏第二个嵌套的div,但是第一个规则覆盖了第二个规则。如何解决这个问题?
我有一个小的CSS问题。
在我的HTML中,我有如下内容:
<div class='box-div'>
<div>Entry 1</div>
<div class='hide'>Entry 2</div>
</div>
在我的CSS中:
.box-div div {
display: inline-block;
}
.hide {
display: none;
}
我希望隐藏第二个嵌套的div,但是第一个规则覆盖了第二个规则。如何解决这个问题?
.box-div .hide {
display: none;
}
或者
div.hide{
display: none;
}
.hide
这样的通用类别,它非常有用,我可能希望在标题、图像、div和嵌套超深的元素等上使用它。它之所以在这里是正确的,是因为增加特定性是愚蠢的,如果你想要在你的网站上隐藏任何东西,你将不得不继续添加每个元素并给它一个.hide类,这只是在加班解决已经有解决方案的问题。 - somethinghere.box-div {
display: inline-block;
}
.hide {
display: none;
}
2
.box-div div{
display: inline-block;
}
div.hide {
display: none;
}
3
.box-div div{
display: inline-block;
}
div.hide {
display: none;
}
4
.box-div div {
display: inline-block;
}
.hide {
display: none !important;
}
.hide.hide {
display: none;
}
这很简单
HTML:
<div class='box-div'>
<div>Entry 1</div>
<div class='hide'>Entry 2</div>
</div>
.box-div div {
display: inline-block;
}
.box-div > div.hide {
display: none;
}
个人而言,使用单一的.hidden
类可以很好地隐藏页面上的元素,无论它嵌套在哪里。我希望这个类在任何地方都能工作。
因此,我认为最好创建一个display:inline-block
的类,可以重复使用。
你可以指定.box-div
内的第一个div始终具有inline-block
属性,但这非常限制。
我的解决方案:
.ib {
display: inline-block;
}
.hide {
display: none;
}
<div class='box-div'>
<div class="ib">Entry 1</div>
<div class='hide'>Entry 2</div>
</div>
div#myId { display: block; }
,但使用你的 .hide
类,hide
类将被更高特异性的 id
定义所压制。这实际上就是 OP 的问题。 - somethinghereinline-block
,而且你确实需要声明。然后你的规则就会失效,这正是OP所遇到的问题——他的.hide
类的display
属性被更具体的定义覆盖了。 - somethingherehide
类时,它仅用于隐藏_任何_元素,而不是其他任何东西),那么使用!important
是可以的 - 这就是它的作用。如果它是针对样式和特定目的的,则不要使用!important
。但是,这确实是一个混乱的问题 :) - somethinghere
!important
:display: none !important;
。但是请注意,如果您依赖它们,它们会使事情变得非常复杂。 - somethinghere!important
! - Christoph!important
。通过增加特定性,您会失去一个旨在隐藏具有该类的所有内容的类的力量,无论其他任何事情如何。我知道如果可以的话应该避免使用!important
,但在这里它是完全合理的。它是我们工具箱中的另一种工具,至少有一些用途。 - somethinghere!important
不是一个好主意。 - Christoph