标题:CSS属性中Display与Visibility的区别 出处:Husw!OnRoad 在路上 时间:Wed, 24 Aug 2011 16:10:33 +0000 作者:我就是个世界 地址:https://www.husw.net/blog/Display-and-Visibility-is-difference-in-the-CSS-attribute_6515/ 内容: 一直不是很清楚Display与Visibility的区别,可能很多人都很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的。今天仔细看了天极的这个帖子才知道! visibility属性用来确定元素是显示还是隐藏,这用visibility="visible|hidden"来表示,visible表示显示,hidden表示隐藏。当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。例: function Preview(obj){ var winname = window.open('', "_blank", ''); winname.document.open('text/html', 'replace'); winname.document.writeln(obj.value); winname.document.close(); } function copyCode(obj) { var rng = document.body.createTextRange(); rng.moveToElementText(obj); rng.scrollIntoView(); rng.select(); rng.execCommand("Copy"); rng.collapse(false); } function saveCode(obj) { var winname = window.open("", "_blank", "top=10000"); winname.document.open("text/html", "replace"); winname.document.writeln(obj.value); winname.document.execCommand("saveas","","code.html"); winname.close(); } function toggleVisibility(me){ if (me.style.visibility=="hidden"){ me.style.visibility="visible"; } else { me.style.visibility="hidden"; } } 第一行文本将会触发"hidden"和"visible"属性,注意第二行的变化。 因为visibility会保留元素的位置,所以第二行不会移动. 运行代码复制代码另存代码 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 效果: 第一行文本将会触发"hidden"和"visible"属性,注意第二行的变化。 因为visibility会保留元素的位置,所以第二行不会移动. 注意到,当元素被隐藏之后,就不能再接收到其它事件了,所以在第一段代码中,当其被设为"hidden"的时候,就不能再接收响应到事件了,因此也就无法通过鼠标点击第一段文本令其显示出来。另一方面,display属性就有一点不同了。visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征。当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像元素一样,它会在那个点被放入到页面中。(实际上你可以设置的display:block,使其可以像一样工作。将display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如,它也将会被组合成像那样的输出流。最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。 下面看我实例的代码和效果: 例: function Preview(obj){ var winname = window.open('', "_blank", ''); winname.document.open('text/html', 'replace'); winname.document.writeln(obj.value); winname.document.close(); } function copyCode(obj) { var rng = document.body.createTextRange(); rng.moveToElementText(obj); rng.scrollIntoView(); rng.select(); rng.execCommand("Copy"); rng.collapse(false); } function saveCode(obj) { var winname = window.open("", "_blank", "top=10000"); winname.document.open("text/html", "replace"); winname.document.writeln(obj.value); winname.document.execCommand("saveas","","code.html"); winname.close(); } function toggleDisplay(me){ if (me.style.display=="block"){ me.style.display="inline"; alert("文本现在是:\'inline\'."); } else { if (me.style.display=="inline"){ me.style.display="none"; alert("文本现在是:\'none\'. 3秒钟后自动重新显示。"); window.setTimeout("blueText.style.display=\'block\';",3000,"JavaScript"); } else { me.style.display="block"; alert("文本现在是:\'block\'."); } } } 在蓝色文字上点击来查看效果. 运行代码复制代码另存代码 [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 效果: 在文字上点击来查看效果. 来源:天极网 Generated by Bo-blog 2.1.2 beta 3