CSS属性中Display与Visibility的不同

大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的。
visibility属性用来确定元素是显示还是隐藏,这用visibility="visible|hidden"来表示,visible表示显示,hidden表示隐藏。当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。例:

<script language="JavaScript">
 function toggleVisibility(me){
  if (me.style.visibility=="hidden"){
   me.style.visibility="visible";
   }
  else {
   me.style.visibility="hidden";
   }
  }
</script>

<div onclick="toggleVisibility(this)" style="position:relative">
第一行文本将会触发"hidden"和"visible"属性,注意第二行的变化。</div><div>因为visibility会保留元素的位置,所以第二行不会移动.</div>

第一行文本将会触发"hidden"和"visible"属性,注意第二行的变化。

因为visibility会保留元素的位置,所以第二行不会移动.

注意到,当元素被隐藏之后,就不能再接收到其它事件了,所以在第一段代码中,当其被设为"hidden"的时候,就不能再接收响应到事件了,因此也就无法通过鼠标点击第一段文本令其显示出来。另一方面,display属性就有一点不同了。visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征。当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<div>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<div>一样工作。将display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如<div>,它也将会被组合成像<span>那样的输出流。最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。下面看我实例的代码和效果:

例:

<script language="JavaScript">
 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‘.");
    }
   }
  }
</script>

<div>在<span id="blueText" onclick="toggleDisplay(this)" 
style="color:blue;position:relative;cursor:hand;">蓝色</span>文字上点击来查看效果.</div>

效果:

在蓝色文字上点击来查看效果.

时间: 2024-12-04 16:30:08

CSS属性中Display与Visibility的不同的相关文章

DIV中display和visibility属性差别

DIV中display和visibility属性差别 DIV中display和visibility属性差别还是挺大的,虽然Visibility和Display属性都可以达到隐藏页面元素的目的,但它们的区别在于如何回应正常文档流 本节向大家描述一下DIV中display和visibility的差别,visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征,虽然它们都可以达到隐藏页面元素的目的,但它们的区别在于如何回应正常文档流. DIV中display和v

css属性中常见的操作方法

css样式之属性操作 一.文本属性 1.text-align:cnter 文本居中2.line heigth 垂直居中 :行高,和高度对应3.设置图片与文本的距离:vertical-align4.text-decoration:none 去掉超链接下划线5.要是给a标签修改颜色的时候,就定到a标签上,用继承有时候是搞不定的因为继承的级别是很低的,如果a标签设置了样式,是不会继承父亲的6.首行缩进:text-indent:30px7.font-style:oblique 或者italic....(

CSS属性之display

display属性用来设置或检索对象是否及如何显示 默认值:对于HTML文档来说,这取决于你使用的标签 继承性:不继承 支持动画:否 display是一个很重要的CSS属性,设定的值会对一个HTML元素的内部和外部表现造成影响 值列表: none:不显示该元素 给display设置none,浏览器就不会渲染该元素,虽然元素存在DOM中,可以通过JS访问,但是从视觉上,是完全消失. block:块级元素 最常用的值了,设置block会让元素变得如DIV那样,独占一行 inline:内联元素 <sp

CSS属性:display详解

display在w3c上的定义是:display 属性规定元素应该生成的框的类型. display有许多值,这里详细讲block,inline-block,inline,table-cell. block:此元素将显示为块级元素,此元素前后会带有换行符 inline:默认.此元素会被显示为内联元素,元素前后没有换行符. inline-block:行内块元素.(CSS2.1 新增的值) table-cell:此元素会作为一个表格单元格显示(类似 <td> 和 <th>) block元

CSS属性中的阴影属性

CSS3中的阴影属性包括文本阴影属性和盒子阴影属性. 一.文本阴影属性text-shadow 书写方式:text-shadow:x  y   a   c; 1)x代表的是水平方向的距离值(该值必须有,并且支持负值) 2)y代表的是垂直方向的距离值(该值必须有,并且支持负值) 3)a代表的是阴影的模糊程度(不支持负值) 4)c代表的是阴影的颜色 tips:只有水平和垂直方向支持负值 x和y的位置不能互换 可以用逗号分隔的方式进行多阴影设置 <!DOCTYPE html> <html>

CSS属性中cursor:hand

在 IE 下设置鼠标为手型的方法: cursor: hand,但是在 FIREFOX 中是无效的,解决方法是在FIREFOX中设置: cursor: pointer. 而这个pointer 值在IE和FIREFOX 下都是通用的,所以我们使用: cursor:pointer 就可以了. 一般而言,鼠标以斜向上的箭头显示,移到文本上时变为有头的竖线,移到超级链接上变为手型. 但用css可控制鼠标的显示效果,如可使鼠标移到普通文本上也显示成手型. 用css控制的语法如下: html: <!DOCTY

转 opacity() 和 rgba() 的区别?display 和 visibility 有什么不同?

一.背景介绍: 1.大家在写页面时,会用到各种元素,比如div, img等等.有时候一张页面会放好几张图片,图片如果显示效果都一样,看起来很单调,整个页面给人的感觉会很硬.那么,怎么能让页面的元素有一种多样化,甚至有一种朦胧美呢?于是,有了opacity和rgba()这两个属性.其中,opacity属性是css3新提的属性. 2.另外,在看一下display和visibility背景介绍,故名思意,display和visibility是与元素显示有关系的,这两个属性都可以控制元素的显示与隐藏.究

区别CSS中display:box;inline;none以及HTML中 &lt;frame&gt; 标签&lt;table&gt; 标签的 frame 属性

区别display:box:display:inline:display:none三者的不同 display:block的特点是: block是Display默认的值.总是在新行上开始:该对象随后的内容自动换行;行高以及顶和底边距都可控制:宽度缺省是它的容器的100%,除非设定一个宽度:<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子,意思是他们默认显示方式是block: display:inl

[ jquery 效果 show([speed,[easing],[fn]]) hide([speed,[easing],[fn]]) ] 此方法用于显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type=&#39;hidden&#39; 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素)

show()显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type='hidden' 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素): hide() 方法隐藏被选元素: 参数 描述 speed 可选.规定显示效果的速度. 可能的值: 毫秒 "slow" "fast" easing 可选.规定在动画的不同点上元素的速度.默认值为 "swing". 可能的值: &