有没有相反的显示:无?

visibility: hidden相反visibility: hiddenvisibility: visible 。 同样,有没有什么相反的display: none

很多人都搞不清楚如何在显示元素时显示元素display: none ,因为它不像使用visibility属性那样清晰。

我可以只使用visibility: hidden而不是display: none ,但它没有给出相同的效果,所以我不会用它。

display: none没有像visibility:hidden文字相反visibility:hidden

visibility属性决定一个元素是否可见。 因此它有两个状态( visiblehidden ),彼此相反。

然而, display属性决定了元素将遵循的布局规则。 CSS中有几种不同的元素规则,所以有几个不同的值( blockinlineinline-block等), 请参阅这些值的文档 。

display:none从页面布局中完全删除一个元素,就好像它不在那里一样。

display所有其他值都会使该元素成为页面的一部分,因此从某种意义上说,它们display:none相反display:none

但没有一个价值是展示的直接反映display:none – 就像没有一个发型与“秃头”相反。

display: none相反display: none (还)没有。

display: unset非常接近,在大多数情况下工作。

来自MDN (Mozilla开发者networking):

未设置的CSS关键字是初始和inheritance关键字的组合。 与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS速记all。 如果该属性inheritance自其父项,则将该属性重置为其inheritance的值,否则将该属性重置为其初始值。 换句话说,它的行为就像第一种情况下的inheritance关键字,而第二种情况下的初始关键字一样。

(来源: https : //developer.mozilla.org/docs/Web/CSS/unset )

还要注意display: revert目前正在开发中。 详情请参阅MDN 。

当在Javascript中改变元素的display时,在许多情况下,“撤消” element.style.display = "none"的结果的适当select是element.style.display = "" 。 这将从style属性中删除display声明,将display属性的实际值恢复为文档样式表中设置的值(如果不在其他地方重新定义,则返回到浏览器默认值)。 但更可靠的方法是在CSS中有一个类

 .invisible { display: none; } 

并向/从element.className添加/删除这个类名。

您可以使用

 display: normal; 

它正常工作….它是一个小黑客在CSS;)

像Paul解释的那样,没有任何字面上的显示:HTML中没有,因为每个元素都有不同的默认显示,你也可以使用类或内联样式等来改变显示。

但是,如果你使用类似jQuery的东西,它们的显示和隐藏function的行为就好像有一个与display none相反的东西。 当你隐藏,然后再显示一个元素时,它将以与隐藏之前完全相同的方式显示。 他们通过存储显示属性的旧值来隐藏元素,这样当你再次显示时,它将以与隐藏之前相同的方式显示。 https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180

这意味着如果你设置一个div来显示内联或内联块,并且你隐藏它然后再显示它,它将再次显示为与之前相同的内联或内联块显示

 <div style="display:inline" >hello</div> <div style="display:inline-block">hello2</div> <div style="display:table-cell" >hello3</div> 

脚本:

  $('a').click(function(){ $('div').toggle(); }); 

请注意,div的显示属性即使在被隐藏(display:none)后仍然保持不变,并再次显示。

我使用display:block; 这个对我有用

在打印友好的样式表的情况下,我使用以下内容:

 /* screen style */ .print_only { display: none; } /* print stylesheet */ div.print_only { display: block; } span.print_only { display: inline; } .no_print { display: none; } 

当我需要打印包含值的表单并且input字段很难打印时,我使用了这个。 所以我添加了包装在span.print_only标签中的值(div.print_only在其他地方使用),然后将.no_print类应用到input字段。 所以在屏幕上你会看到input字段,当打印时,只有值。 如果你想变得更好看,你可以使用JS来更新span标签中的值,当字段被更新时,但在我的情况下这是不必要的。 也许不是最优雅的解决scheme,但它为我工作!

display: none的最佳答案是display: none

 display:inline 

要么

 display:normal 

你可以使用这个display:block; 并添加overflow:hidden;

可见性:隐藏将隐藏元素,但元素是他们与DOM。 而在显示的情况下:没有它会从DOM中删除元素。

所以你可以select元素来隐藏或取消隐藏。 但是,一旦你删除它(我的意思是没有显示),它并没有明确的相反的价值。 显示有几个值,如显示:块,显示:内联,显示:内联块等等。 你可以从W3C检查出来。

最好的“相反”是将其返回到默认值,即:

 display: inline