display 和 visibility 的异同

一、

相同点:都可以使元素隐藏。屏幕阅读设备无法读取到被隐藏的元素

不同点:

  display,隐藏后不参与页面布局。

  visibility,隐藏后仍参与页面布局。优点,可以在不妨碍元素显示角色的情况下显示或隐藏他们。

二、例子

CSS:

 <style type="text/css">
        .hide {
            display: none;
        }

        .hide2 {
            visibility: hidden;
        }
</style>

页面:

<body>
  我们是<span id=‘mySpan‘ class="hide">共产主义接班人</span>...测试中间部分是否占位
  <br />
  我们是<span class="hide2">共产主义接班人</span>...测试中间部分是否占位
</body>

显示结果:

可以看到两者的区别,使用了visibility属性的部分,虽然隐藏了文字但仍参与了页面布局。

三、JS的一些操作

js操作dispaly属性的两种方式:

1.display设置为none或‘‘(空字符串)隐藏或显示

2.通过操作一个class隐藏或显示

 var obj = document.getElementById(‘mySpan‘);

 //第一种方法:display设置为none或‘‘
 obj.style.display = ‘none‘;
 obj.style.display = ‘‘;

 //第二种方法:通过操作一个class隐藏、显示
 $("#mySpan").addClass("hide");
 $("#mySpan").removeClass("hide");

四、

如果将元素移出屏幕,又想让屏幕阅读器发现元素,怎么做?

可以使用绝对定位,将元素偏离出屏幕,如下示例:

css:

.hide {
            position: absolute;
            top: -10000em;
            left: -10000em;
        }

html:

    <p>第一句话:Three years ago, if these two quarterbacks met in this game</p>
    <p class="hide" id="p2">第二句话:Three years ago, if these two quarterbacks met in this game</p>
    <p>第三句话:Three years ago, if these two quarterbacks met in this game</p>

显示结果:

第二个p元素部分已经不可见。

如果要将元素显示回来的话,有三种方法:

第一种方法:绝对定位,将偏移量设置为0即可,如下

.show {
            top: 0;
            left: 0;
        }

第二种方法:将position属性设置为默认值“static”,在静态定位中top、left属性会被忽略掉,所以此时不用再指定top、left属性

.show2 {
            position: static;
        }

第三种方法:将一个元素移回到正常的文档流中,但是还需要让它作为一个包含块来包含其他元素,就可用这种方式。(当要绝对定位一些元素,并且这些元素还包含在你想移回屏幕元素的内部时可参考这用方法)

 .show3 {
            position: relative;
            top: 0;
            left: 0;
        }
时间: 2024-10-24 23:53:54

display 和 visibility 的异同的相关文章

display 与 visibility

项目开发中经常会遇到需要显示和隐藏DOM元素.常用的两个是display,visibility属性,高级点的会用到angularJS的ng-show,ng-if指令. W3标准对这个两个属性的解释如下: 1. display 设置元素如何显示. 2. visibility 设置元素是否可见. ```dispaly: none|inline|block - none: 此元素不会被显示. - inline: 默认.此元素会被显示为内联元素,元素前后没有换行符. - block: 此元素将显示为块级

DIV中display和visibility属性差别

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

个人笔记1:display与visibility用法

有人会将CSS中的属性display和visibility混淆,他们看似没什么不同,其实区别是很大的. visibility属性控制定位的元素是否可见,取值包括:visible(可见).hidden(隐藏).inherit(继承),默认值是inherit.visibility属性与display属性的不同之处在于:当元素被隐藏时,visibility属性定义的元素任然为保留原有的显示空间. 例如以下代码: <html>   <head>       <title>dis

CSS属性中Display与Visibility的不同

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

一段代码弄清楚CSS属性display和visibility的差别

CSS如果想要将DOM元素隐藏,有2种做法:将display属性设置成none,或者将visibility属性设置成hidden.下面的html代码没有设置display和visibility属性. <div id="outA" style="width:400px; height:400px; background:#CDC9C9;position:relative;"> <div id="outB" style="

display和visibility的用法和区别

display和visibility的用法和区别 更多 2013/11/17 来源:css学习浏览量:892 学习标签: css display visibility 本文导读:大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的.visibility和display两个属性都有隐藏元素的功能.visibility属性所控制的元素虽然不在浏览器里面显示出来,但他在浏览区里是存在的,只是不显示而已.而display属性设置为none,这

display,opacity,visibility,position隐藏元素的实质

(1)display:设置属性display:none:,该元素被隐藏,而且该元素的子孙后代也被同时隐藏,此时被隐藏的元素不占据任何空间,用户的交互操作在此元素上不能生效,但是通过js语句操作dom可以来操作该隐藏元素. 实例: .display-hide {   display: none;   transition: all ease 0.8s; } .display-hide:hover { /* 当鼠标悬浮在该元素时,设置为block,此时元素也不会出现 ,因为被display隐藏的元素

display、visibility、visible区别

标签的隐藏可以有三种:display.visibility.服务器控件的visible. 显然,这三者都能起到隐藏与显示的效果,但是用途确完全不一样,请看用法与区别: <div style="display:">显示</div> <div style="display:none;">隐藏不占位</div> <div style="visibility:">显示</div> &

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

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