一、作用不同
1、js style.display = “”:是清除display样式,display将使用默认值,块元素会变成block,内联元素会变成inline。
2、style.display=“none”:“none”是一个值,表示元素将隐藏。
二、使用场景不同
1、js style.display = “”:元素大多是"内联"或"块"元素:一个内联元素,在其左侧和右侧都是浮动内容。一个块元素填满整个行。
2、style.display=“none”:允许作者显示或隐藏一个元素。与 visibility 属性类似。然而,如果您设置 display:none,将隐藏整个元素。
三、语法不同
1、js style.display = “”:Object.style.display="value"元素呈现为块级元素或内联元素,取决于上下文。
2、style.display=“none”:document.getElementById(“p1”).style.display=“none”;元素呈现为内联表格(类似
),表格前后没有换行符。
有时候js中style.display=""无效的解决方法
一、问题描述:
在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果。
看下面一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ```javascript 一、问题描述: 一、问题描述: <style> #name { display:none; } </style> </head> <body> <div id="name" > My name is smile. </div> </body> </html> <script> window.onload=function(){ document.getElementById('name').style.display=""; alert("test"); } </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | css定义了id为name的div为隐藏,而我们在页面加载完成之后用js控制该id显示出来 二、解决方法: 记得还有一个用法是xxx.style.display="block" 那我们试试吧, 呜呼,竟然显示了!!! 那我们查看一下style.display=""和style.display="block"用法有什么不同吧。 其实,这两个的最大区别是block是块显示的,所以会换行,那么既然就这么点区别,为什么在本例子中一个可以显示,一个不行呢?困扰。 好吧,这个问题先放开,我们先看现在这个问题中我们如何解决,除了用style.display="block"可以解决外,还有另外一种办法就是: ```javascript <div id="name" style="display:none" > My name is smile. </div> <script> document.getElementById('name').style.display=""; </script> |
就是把id为name的样式用style这样内置到标签内,这样不管用display=""还是display="block"就都可以正常显示啦!