所以我一直在努力处理隐藏和显示元素的一些类。当元素应该显示时,它应该从display:none;
到display: whatever-it-was-before;
。在研究如何做到这一点时,我偶然发现了什么看起来是完美的解决方案:CSS的revert
。不幸的是,级联和继承级别4是支持很长的一种方式,并且该功能似乎并未在Windows上的任何主要浏览器中实现。使用CSS的“还原”关键字
为了说明什么,我试图做的,这里的一些CSS:
.article-card {
display: flex;
}
._showdesktop {
display: none !important;
}
@media screen and (min-width: 1024px) {
._showdesktop {
display: revert !important;
}
}
而且一些相关的HTML:
<div class="article-card _showdesktop">
...
</div>
的想法是有一个可以在任何可以使用的通用类元素,而不会覆盖元素的预期CSS。这将允许我显示和隐藏display:flex;
,display:block;
,display:inline-block;
或display:inline;
所有具有相同类别集合的元素。
所以,我有两个问题:
- 是否有任何填充工具了那里呢?我试着搜索一下,但不幸的是,由于版本控制系统,术语“回复”和“填充”一起出现在一起。
- 是否有任何其他方式与CSS做到这一点?我正在寻找使用
visibility:hidden;
,因为我几乎从未在我的项目中使用visibility
属性,但这不会从流中删除元素,而且我也想不出有什么办法可以将其删除其他代码。
https://drafts.csswg.org/css-cascade/#default
更新:下面标注的答案是一样好,我要拿到现在,但我想更新我结束了使用的代码这个问题。我不知道如何这会工作,考虑到我经常使用最大高度,但希望它不会经常发生冲突:
._hidemobile,
._showtablet,
._showdesktop {
max-height: 0 !important;
visibility: hidden !important;
}
._showmobile {
max-height: none !important;
visibility: visible !important;
}
@media screen and (min-width: 768px) {
._showmobile,
._hidetablet {
max-height: 0 !important;
visibility: hidden !important;
}
._showtablet {
max-height: none !important;
visibility: visible !important;
}
}
@media screen and (min-width: 1024px) {
._showtablet,
._hidedesktop {
max-height: 0 !important;
visibility: hidden !important;
}
._showdesktop {
max-height: none !important;
visibility: visible !important;
}
}
有没有这样的事情CSS4。也许,你的意思是[CSS级联和继承级别4](https://www.w3.org/TR/css-cascade-4/) – Oriol
我的下巴在这里兴奋地下降了第二秒 – Chris
@Oriol对不起,我是不知道我了解其中的差异。我认为“4级”意味着CSS4的工作草案。你能否澄清为什么那是不正确的? – JacobTheDev