• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > CSS属性中Display与Visibility区别分析

CSS属性中Display与Visibility区别分析

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含Display,Visibility等相关知识,佚名 希望在学习及工作中可以帮助到您
visibility属性用来确定元素是显示还是隐藏,这用visibility="visible|hidden"来表示,

visible表示显示,

hidden表示(仅)隐藏,不可恢复。

当visibility被设置为"hidden"的时候,元素虽然被隐藏了,

1、仍然占据它原来所在的位置。visibility会保留元素的位置.

2、元素被隐藏之后,就不能再接收到其它事件了,当其被设为"hidden"的时候,就不能再接收响应到事件了,因此也就无法通过JS令其显示出来。

display属性就有一点不同了。
none隐藏(元素消失),可恢复
inline,block显示

1、display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<div>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<div>一样工作。
2、display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如<div>,它也将会被组合成像<span>那样的输出流。最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。

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


<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>
提示:您可以先修改部分代码再运行
最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填。(此时应用display: none;的元素相当于消失,而visibility: hidden;则只表示隐藏,位置还在。)
display 属性分别为block, inline, none 值及使用visibility: hidden;的情况调试示例:


<h1>display 属性分别为block, inline, none 值及使用visibility: hidden;的情况调试</h1> <P><SPAN id="oSpan" style="background-color: #CFCFCF;">This is a SPAN</SPAN> in a sentence.</P> <P> <input type=button value="Inline" onclick="oSpan.style.display='inline'"> <input type=button value="Block" onclick="oSpan.style.display='block'"> <input type=button value="None" onclick="oSpan.style.display='none'"> <input type=button value="Hidden" onclick="oSpan.style.visibility='hidden'"><input type=button value="Visible" onclick="oSpan.style.visibility='visible'"> </P> <UL> <LI>将元素设为 block,会在该元素后换行。</LI> <LI>将元素设为 inline,会消除元素换行。</LI> <LI>将元素设为 none,隐藏该元素内容。</LI> </UL>
提示:您可以先修改部分代码再运行
同时,关于display:inline;和float:left;两者的区别可以参看该篇文章:
(display是指显示状态,inline表示内联,特点是紧贴着前一个内联元素,通常默认的内联元素有span,a,em,strong等。而float表示的是浮动,float:left,是针对块级元素的浮动形式,是不同形式的两种状态。)
http://www.andymao.com/andy/post/42.html
http://bbs.blueidea.com/thread-2596793-1-1.html


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>float &inline</title> <style> *{text-align:center;padding:4px;} div,p{text-align:left;} span{/*float:right;*/ background:#f5f5f5;border-left:1px #eee solid;border-top:1px #eee solid;border-right:1px #ccc solid;border-bottom:1px #ccc solid;} ul#inline li{ display:inline; list-style:none;border-left:1px #ccc solid;width:300px; background:#f5f5f5;/* float:left*/;} ul#float li{ float:left;display:inline; list-style:none;border-left:1px #666 solid;width:300px; background:#f5f5f5; } </style> </head> <body> <span style="width:300px;">span为内联/inline元素,给他宽度赋值是没有效果的。</span> <span style="width:100px; float:right;">span为内联/inline元素,给他宽度赋值100px+float:right;可以看到有了宽度。</span> <div> <p>这个li被定义为内联/inline,设置宽度没有效果</p> <ul id="inline"> <li>test</li> <li>test</li> </ul> </div> <div> <p>这个li被定义为内联/inline+float:left,设置宽度有效果</p> <ul id="float"> <li>test</li> <li>test</li> </ul> </div> </body> </html>
提示:您可以先修改部分代码再运行

您可能想查找下面的文章:

  • display和visibility的区别
  • 浅谈CSS中display/float/position属性值的相互影响
  • css(display,float,position)深入理解
  • 浅谈CSS的Display属性可能的值
  • CSS display属性的table表格布局
  • css display inline block 兼容性问题写法
  • 深入浅析css3 中display box使用方法
  • CSS3 display知识详解
  • 详解css中的display属性
  • 实现div垂直居中的display:table-cell方法示例介绍

相关文章

  • 2017-08-06css3 transform及原生js实现鼠标拖动3D立方体旋转
  • 2017-08-06css3 中的新特性加强记忆详解
  • 2017-08-06css3学习心得分享
  • 2017-08-06实例讲解如何使用CSS保持页面内容宽高比
  • 2017-08-06详细解读CSS的预编译器PostCSS
  • 2017-08-06Div设置最小宽度(有浮动元素或浏览器宽度小于1350之后)
  • 2017-08-06css3 条纹化和透明化表格Firefox下测试成功
  • 2017-08-06IE6常见bug附解决方法
  • 2017-08-06浅谈css和@import区别及用法
  • 2017-08-06纯css实现3D图像轮转效果

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • css3使网页、图片变成灰色兼容大多数浏览器
    • 图片与文字同排垂直居中的CSS样式
    • 绝对定位(absolute)和浮动定位(float)分析
    • css 细线表格 css制作table细线表格常用属性
    • css按钮自适应实现原理及代码
    • 纯css3显示隐藏一个div特效的具体实现
    • CSS常用浏览器兼容调整小结
    • 纯css3实现鼠标经过图片显示描述的动画效果
    • css教程制作八卦镜代码分享
    • 背景半透明最佳实践

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有