×

display:none

前端技术网 前端技术网 发表于2024-01-21 15:59:43 浏览663 评论0

抢沙发发表评论

一、display hidden 和none 的区别

来源:知乎

HTML5

display:none

hidden="hidden"

和CSS的

display:none有什么区别?

于江水

不管什么情况,你知道一个原则就

display:none

OK

了:

HTML

是内容展示带有语义,CSS

是界面样式相关。

那么

hidden

这个属性,就表示与浏览者不相关、不重要,浏览器在解析的时候,既然不相关就直接隐藏掉了。如果你有些东西与用户不相关,比如

提交信息的

input

等,就可以用

hidden。

display

none

就是从界面、视觉上的隐藏。如果你需要临时隐藏一些东西后面会再切换出来,比如

下拉菜单

等,就可以用

display

none。因为它不是跟用户不相关,只是目前还不能展示出来。

编辑于

2015-09-26

Boringer

7

人赞同了该回答

效果上没有什么不同,但是只要是写在

CSS

里面的都只是纯展现,可以不遵循任何道理(比如

display,狗都可以伪装成猴的样子),而

HTML

则可能带有语义。

hidden

表示该元素是不相关的、不需要的,这个含义是主要内容,“隐藏”的效果只是附带。也许看上去跟

display:

none

没有任何区别,但是在我们不知道的地方,比如屏幕阅读器或其他一切依赖语义的地方,可能就有它的价值体现。

二、style="display:none;"

这是一个根据下拉列表的选项来决定显示什么隐藏的函数

<script language="javascript">

function pysjzx_change(){

var leaseObj= document.all.id_lease;//把id为"id_lease"的元素名保存在leaseObj

var saleObj= document.all.id_sale;//把id为"id_sale"的元素名保存在saleObj

var hhObj= document.all.id_hh;//把id为"id_hh"的元素名保存在hhObj

var pysjzx_type= document.pysjzxform.pysjzx_type.value;//这是工作把表单控件pysjzx_type的值保存到Pysjzx_type,估计很有可能是一个下拉列表

//以下是根据Pysjzx_type来决定显示哪个要显示,哪个要隐藏

//style.display="block"为显示,display="none"为隐藏

if(pysjzx_type=="sale"){saleObj.style.display="block";leaseObj.style.display="none";}

if(pysjzx_type=="buy"){saleObj.style.display="block";leaseObj.style.display="none";}

if(pysjzx_type=="lease"){leaseObj.style.display="block";saleObj.style.display="none";}

if(pysjzx_type=="hire"){leaseObj.style.display="block";saleObj.style.display="none";}

if(pysjzx_type=="cotenancy"){hhObj.style.display="block";saleObj.style.display="none";}

}

}

三、为什么display:none css代码无用

为什么display:none css代码无用,首先我们需要理解就是display的意思,它代表css的块与行元素的处理,如将块元素,转化成行元素,都是通过这个来实现,如display:block就代表这个元素变成了块级元素,拥有width和height的属性,问题中的display:none没效的原因可能就是因为这个元素并不是一个块级元素,因而设置none对它是没影响的,具体看下代码:

<html>

<head>

<style>

span{

widht:220px;

height:300px;

display:none;//因为span是行级元素,所有width和height都是没有用的,因此display的属性也是不会执行的

}

</style>

</head>

<body>

<span>我是测试文字</span>

</body>

</html>

四、标签设置成style="display:none"后其余的元素跟着隐藏了

因为(div

style="display:none")这串代码意思是把这个层设置成隐藏的。如果你想让它显示的话可以设置为(style="display:block")。

display的属性值:

1.

none

此元素不会被显示;

2.

block

此元素将显示为块级元素,此元素前后会带有换行符;

3.

inline

默认。此元素会被显示为内联元素,元素前后没有换行符;

4.

inline-block

行内块元素(CSS2.1

新增的值);

5.

list-item

此元素会作为列表显示;

6.

run-in

此元素会根据上下文作为块级元素或内联元素显示;

7.

compact

CSS

中有值

compact,不过由于缺乏广泛支持,已经从

CSS2.1

中删除;

8.

marker

CSS

中有值

marker,不过由于缺乏广泛支持,已经从

CSS2.1

中删除;

9.

table

此元素会作为块级表格来显示(类似

<table>),表格前后带有换行符;

10.

inline-table

此元素会作为内联表格来显示(类似

<table>),表格前后没有换行符。

display:none和style="display:none;"的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!