相反的visibility: hidden
是visibility: visible
。同样,有什么反面display: none
吗?
很多人困惑于如何在元素显示时显示元素display: none
,因为它不像使用该visibility
属性那样清晰。
我可以使用visibility: hidden
代替display: none
,但是它不会产生相同的效果,因此我不打算使用它。
display
值的大清单就可以了。(当然,这只是我的意见:也许人们真的很喜欢其中的列表。)
相反的visibility: hidden
是visibility: visible
。同样,有什么反面display: none
吗?
很多人困惑于如何在元素显示时显示元素display: none
,因为它不像使用该visibility
属性那样清晰。
我可以使用visibility: hidden
代替display: none
,但是它不会产生相同的效果,因此我不打算使用它。
display
值的大清单就可以了。(当然,这只是我的意见:也许人们真的很喜欢其中的列表。)
Answers:
display: none
没有像这样的字面相反visibility:hidden
。
该visibility
属性决定元素是否可见。因此,它具有两个相反的状态(visible
和hidden
)。
display
但是,该属性决定元素将遵循的布局规则。有几种不同类型的规则元素将如何自己奠定了在CSS,所以有几个不同的值(block
,inline
,inline-block
等- 请参阅文档这里这些值)。
display:none
从页面布局中完全删除一个元素,就好像它不存在一样。
所有其他值都会display
导致元素成为页面的一部分,因此从某种意义上来说,它们都与相反display:none
。
但是,没有一个是直接相反的价值display:none
-就像没有一种发型是“秃头”的对立面一样。
display: initial
在已删除的自我解答中提到过-对于实现CSS2.1的浏览器,它是的同义词display: inline
。display
对于给定的元素,它不会重置为浏览器默认值-这不是“初始值”的含义。
display:none
” 相反,然后您阅读“,就像没有一种发型与秃头相反。
display: none
还没有一个与之相反的事实。
但是display: unset
非常接近并且在大多数情况下都可以使用。
通过MDN(Mozilla开发人员网络):
未设置CSS关键字是initial和Inherited关键字的组合。像其他两个CSS级关键字一样,它可以应用于任何CSS属性,包括全部的CSS缩写。如果该关键字从其父级继承,则将该属性重置为其继承的值;如果不是,则将该属性重置为其初始值。换句话说,在第一种情况下,它的行为类似于Inherit关键字,在第二种情况下,其行为与initial关键字类似。
还请注意,display: revert
当前正在开发中。有关详细信息,请参见MDN。
display: initial
呢
当改变元素的display
Javascript中,在许多情况下,适当的选项设置为“撤消”结果element.style.display = "none"
是element.style.display = ""
。这display
将从style
属性中删除声明,将属性的实际值恢复为display
在样式表中为文档设置的值(如果未在其他地方重新定义,则为浏览器默认值)。但是更可靠的方法是在CSS中创建一个类,例如
.invisible { display: none; }
并将该类名称添加到/中element.className
。
.element { display: none }
(例如,在CSS lib中定义),.element { display: '' !important }
将无法使用。您必须使用.element { display: unset !important }
display:none
JavaScript中的“撤消” 。当然,空字符串在CSS中不起作用,因为它是无效值。Hovewer,display: unset
你的建议将不会恢复,例如,默认display:block
的<div>
或默认display:table-row
的<tr>
,它有效地把一切都变成display:inline
(就像display:initial
)。要恢复该元素的浏览器默认值,请使用display:revert
,但不完全支持(caniuse.com/#feat=css-revert-value)。
您可以使用
display: normal;
它正常工作。...在css中是一个小技巧;)
display: chunk norris;
相同的效果,但踢更多一点。
.element { display: none }
(例如,在CSS lib中定义),.element { display: normal !important }
将无法使用。您必须使用.element { display: unset !important }
就像Paul解释的那样,显示没有字面意义的相反:HTML中没有显示,因为每个元素都有不同的默认显示,您还可以使用类或内联样式等更改显示。
但是,如果使用类似jQuery的东西,它们的show和hide函数的表现就好像与display none相反。当您隐藏并再次显示元素时,该元素将以与隐藏之前完全相同的方式显示。他们通过在隐藏元素时存储display属性的旧值来做到这一点,这样,当您再次显示它时,它将以隐藏之前的相同方式显示。 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属性被隐藏(display:none)并再次显示,它的显示属性也将保持不变。
对于打印机友好的样式表,我使用以下内容:
/* screen style */
.print_only { display: none; }
/* print stylesheet */
div.print_only { display: block; }
span.print_only { display: inline; }
.no_print { display: none; }
当我需要打印包含值的表单并且输入字段难以打印时,我使用了此方法。因此,我添加了包裹在span.print_only标记中的值(在其他地方使用了div.print_only),然后将.no_print类应用于输入字段。因此,在屏幕上您将看到输入字段,并且在打印时仅看到值。如果您想花哨的话,可以在字段更新时使用JS来更新span标签中的值,但是对于我而言,这不是必需的。也许不是最优雅的解决方案,但它对我有用!
您可以使用display:block
范例:
<!DOCTYPE html>
<html>
<body>
<p id="demo">Lorem Ipsum</p>
<button type="button"
onclick="document.getElementById('demo').style.display='none'">Click Me!</button>
<button type="button"
onclick="document.getElementById('demo').style.display='block'">Click Me!</button>
</body>
</html>
可见性:隐藏将隐藏元素,但是元素是它们与DOM的结合。并且在display:none的情况下,它将从DOM中删除该元素。
因此,您可以选择隐藏或取消隐藏元素。但是,一旦删除它(我的意思是不显示),它就不会清除相反的值。display具有多个值,例如display:block,display:inline,display:inline-block等。您可以从W3C签出。
display
呢?
最好的答案display: none
是
display:inline
要么
display:normal
display:normal
。参见developer.mozilla.org/zh-CN/docs/Web/CSS/display
最好的“相反”是将其返回为默认值:
display: inline