display和visibility的用法和区别
display和visibility的用法和区别
display和visibility的用法和区别一、Display的属性值
block:
/*表现为一个块级元素(一般情况下独占一行)*/
当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<li>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<li>一样工作。
inline:
/*表现为一个行级元素(一般情况下不独占一行)*/
将display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如<li>,它也将会被组合成像<span>那样的输出流。
none:
/*元素不可见,并且不为其保留相应的位置*/
最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。
二、Display的使用
1、display默认属性值为块级的元素:
adress,quote,body,xmp,center,col,colgroup,dd,dtr,li,
dl,dt,fieldset,form,hn,hr,iframe,legend,listing,marquee,
menu,ol,p,plaintext,pre,table,td,th,tr,ul
2、display默认属性值为none的元素:
br,frame,nextid,tbody,tfoot,thead
3、li元素的display属性默认值为:list-item
4、其他元素display属性默认值都为inline
三、Display的特性
改变元素的display属性将对周围元素造成的影响有:
1、在属性值设为block的元素后面添加新行
2、从属性值设为inline的元素所在行中删除一行
3、隐藏属性值设为none的元素并且释放该元素在文档中所占的物理空间,对于其他元素来说,相当于该元素不存在,因此,该元素的位置被其他元素顶替
四、visibility的属性值
visibility:visible
/*元素可见,默认值*/
visibility:hidden
/*元素不可见,但仍然为其保留相应的空间*/
visibility:collapse
/*只对table对象起作用,能移除行或列但不会影响表格的布局。如果这个值用在table以外的对象上则表现为hidden。*/
visibility:inherit
/*继承上级元素的visibility值。*/
五、visibility特性
用来确定元素是显示还是隐藏,这用visibility="visible|hidden"来表示,visible表示显示,hidden表示隐藏。当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。
六、由以上可以了解到 Visibility:none 和 Display:hidden 的区别
display:none;
使用该属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”;
visibility:hidden;
使用该属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在,也即是说它仍具有高度、宽度等属性值。
七、什么时候使用Visibility或者Display属性?
Visibility和Display属性虽然都可以达到隐藏页面元素的目的,但它们的区别在于如何回应正常文档流。
如果你想隐藏某元素,但在页面上保留该元素的空间的话,你应该使用visibility:hidden。如果你想在隐藏某元素的同时让其它内容填充空白的话应该使用display:none。
在现实中我(作者)更多的倾向于使用display属性(相信这也是大多数人的习惯,bolo注)。当你决定用display:none来隐藏一个元素时,你必须知道其它内容将填充到该元素留下的空白位置,从而改变页面的布局。
八、使用Visibility或者Display属性的注意事项
display:none:
1、JS读取元素属性值
如果在样式文件或页面文件代码中直接用display:none对元素进行了隐藏,载入页面后,在没有通过js设置样式使元素显示的前提下,使用js代码会无法正确获得该元素的一些属性,比如offSetTop,offSetLeft等,返回的值会为0,通过js设置style.display来使元素显示后才能正确获得这些值。
2、SEO优化时需要注意
使用display:none隐藏的元素不会被百度等搜索网站检索,会影响到网站的SEO,某些情况下可以使用left:-100000px来达到同样效果。
3、样式文件
如果是通过样式文件或<style>css</style>方式来设置元素的display:none样式,用js设置style.display=""并不能使元素显示,可以使用block或inline等值来代替。通过style="display:none"直接在元素上进行的设置不会有这个问题
4、有些情况下可以使用style.visibility来代替style.display,但是要注意的是style.visibility隐藏元素时会保留元素在页面上所占的空间,而style.display隐藏元素且让出所占页面空间。
visibility:hidden:
如果想让某一段代码在前台不显示,最简单的方法是用css的display:none,这样,下边的内容就自动填补这个空隙。但是在一些特殊的情况下,我们只需要隐藏这个元素,但它的位置不能被占用了,那么,visibility:hidden就可以实现这个要求。
- css3动画时间(css3实现的天气图标动画效果)
- css用什么设置透明度(详解css透明度之rgba和opacity的区别及兼容)
- css3引导动画教程(详解Css3新特性应用之过渡与动画)
- css中设置flex布局浮动是否会生效(深入理解CSS系列之flex兼容)
- css3 3d动画效果(CSS3实现任意图片lowpoly动画效果实例)
- css3过渡技巧视频(css3过渡_动力节点Java学院整理)
- jq控制css样式(css3模拟jq点击事件的实例代码)
- css浮动小例子教程(使用css transition属性实现一个带动画显隐的微信小程序部件)
- cssanimation效果(使用CSS transition和animation改变渐变状态的实现方法)
- css3实用指南(css3截图_动力节点Java学院整理)
- css3结合js制作(CSS3截取字符串实例代码推荐)
- css3最新特效(CSS3实现的文字弹出特效)
- css圆角边框设置教程(css效果之边框内圆角)
- css导航条怎么做(CSS实现导航条Tab切换的三种方法介绍)
- border和background区别(css中background-origin属性的使用解析)
- css3中一些常用的特效果(CSS3 制作的书本翻页特效)
- 车友的选择| 轮毂该如何选(车友的选择轮毂该如何选)
- 秦海璐炫耀和王新军热恋蜜事,不料对方吐槽她吃饱后肚子撅老高(秦海璐炫耀和王新军热恋蜜事)
- 秦海璐一袭旗袍惹人倾心,将高级与淡雅展现的游刃有余(秦海璐一袭旗袍惹人倾心)
- 门外之见 海蛎子味 的表演,能走多远(门外之见海蛎子味)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
- 《金陵秘事》的剧情跌宕起伏 给观众带来的怎样的感官体验(金陵秘事的剧情跌宕起伏)
热门推荐
- 云主机越来越受欢迎吗(云主机的发展前景怎样?会成为主流吗?)
- vue动态路由实现权限控制(vue2/vue3路由权限管理的方法实例)
- php支付接口(PHP实现的支付宝支付功能示例)
- MVC中JavaScriptResult
- 如何重新配置mysql的端口(如何快速修改MySQL用户的host属性)
- iis服务器如何搭建一个网站(配置IIS网站web服务器的安全策略配置解决方案)
- vue统计代码行数(vue实现计数器简单制作)
- phpstorm 菜单如何添加和修改(phpstorm 配置xdebug的示例代码)
- SQL SERVER书签查找
- python numpy 安装(python3.6下Numpy库下载与安装图文教程)