相反的visibility: hidden是visibility: visible.同样,有没有相反的display: none?
许多人变得困惑,弄清楚如何显示元素display: none,因为它不像使用visibility属性那样清晰.
我可以使用visibility: hidden而不是display: none,但它没有给出相同的效果,所以我不会用它.
Pau*_*ite 162
display: none没有与之相反的字面意思visibility:hidden.
该visibility属性决定一个元素是否可见或不可见.因此它具有两个状态(visible和hidden),它们彼此相反.
display但是,该属性决定元素将遵循的布局规则.有几种不同类型的规则元素将如何自己奠定了在CSS,所以有几个不同的值(block,inline,inline-block等- 请参阅文档这些值在这里).
display:none 完全从页面布局中删除元素,就好像它不存在一样.
所有其他值都会display导致元素成为页面的一部分,所以从某种意义上说它们都是相反的display:none.
但是没有一个价值直接相反display:none- 就像没有一种发型与"秃头"相反.
Roc*_*ard 77
与之相反的display: none是(还).
但是display: unset非常接近并且在大多数情况下都有效.
来自MDN(Mozilla开发者网络):
未设置的CSS关键字是初始关键字和继承关键字的组合.与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS简写全部.如果该属性从其父级继承,则将该属性重置为其继承的值,否则重置为其初始值.换句话说,它的行为类似于第一种情况下的inherit关键字,就像第二种情况下的initial关键字一样.
还要注意display: revert目前正在开发中.有关详细信息,请参阅MDN
Ily*_*syn 30
display在Javascript中更改元素时,在许多情况下,"撤消"结果的合适选项element.style.display = "none"是element.style.display = "".这display将从style属性中删除声明,将属性的实际值恢复display为文档样式表中设置的值(如果未在其他位置重新定义,则返回到浏览器默认值).但更可靠的方法是在CSS中使用类
.invisible { display: none; }
Run Code Online (Sandbox Code Playgroud)
并向/从中添加/删除此类名称element.className.
小智 6
您可以使用
display: normal;
Run Code Online (Sandbox Code Playgroud)
它正常工作....它是一个小的黑客在CSS;)
这是您提出问题大约 8 年后,来自未来\xe2\x80\xa6 的答案。虽然仍然没有相反的价值display: none,但请继续阅读\xe2\x80\xa6,还有更好的值。
这display财产是如此超载,这并不好笑。它至少具有三种不同的功能。它控制:
block,inline)flex,grid)contents,none)。长期以来,这一直是现实,我们已经学会忍受它,但一些迟来的改进正在(希望如此!)即将到来。
\nFirefox 现在支持分隔外部和内部显示类型的属性的双值语法(或多关键字值) 。display例如,block现在变成block flow,并且flex变成block flex。它并不能解决以下问题none,但我认为明确的关注点分离是朝着正确方向迈出的一步。
与此同时,Chromium (85+) 已经为我们提供了该content-visibility属性,并大张旗鼓地宣布了这一点。它旨在解决一个不同的问题\xe2\x80\x94通过在元素(及其子布局)接近视口并且确实需要被看到之前不渲染元素(及其子布局)来加速页面加载时间,同时仍然可以通过“查找”访问搜索等。它只需给它值就可以自动执行此操作auto。这本身就是令人兴奋的消息,但看看它还有什么作用\xe2\x80\xa6
\n\n该属性为您提供与屏幕外
\ncontent-visibility: hidden相同的未渲染内容和缓存渲染状态的所有好处。content-visibility: auto但是,与\n不同的是auto,它不会自动开始在屏幕上渲染。这为您提供了更多控制权,允许您隐藏元素的\n内容并随后快速取消隐藏它们。
\n将其与隐藏元素内容的其他常见方法进行比较:
\n\n
\n- \n
display: none:隐藏元素并破坏其渲染状态。这意味着取消隐藏元素与渲染具有相同内容的新元素一样昂贵。- \n
visibility: hidden:隐藏元素并保持其渲染状态。这并没有真正从文档中删除元素,因为它(及其子树)仍然占用页面上的几何空间并且仍然可以单击。即使隐藏时,它也会在需要时随时更新渲染状态。\n
content-visibility: hidden另一方面,隐藏元素同时保留其渲染状态,因此,如果需要发生任何更改,它们仅在元素再次显示时发生(即属性被content-visibility: hidden删除)。
哇。因此,这应该是一种display: none从布局中优雅且完全独立于显示类型删除元素的方法!所以“相反”content-visibility: hidden是content-visibility: visible,但您还有第三个非常有用的选项,其中auto可以为您进行延迟渲染,从而加快初始页面加载速度。
唯一的坏消息是 Firefox 和 Safari 尚未采用它。但谁知道呢,当您(亲爱的开发人员)阅读本文时,情况可能已经发生了变化。保持一只眼睛https://caniuse.com/css-content-visibility!
\n