好的,我已经从事HTML/CSS工作将近十年了,但就是无法弄清为什么这个不起作用。
最初,我遇到了一些问题,即在页面加载时,我无法使两个独立的div
具有display: none
和其他属性。经过排查后,我得出结论是Bootstrap文件中存在问题,因此我花了一个多小时来简化它,以消除所有可能的错误源:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style>
#first {
display: none;
}
#second {
display: none;
}
</style>
</head>
<body>
<div id="first" >abc</div>
<div id="second">123</div>
</body>
</html>
我将这个文件保存为test.html
,然后通过火狐浏览器打开,却看到了如下内容:
123
我用“检查元素”的方式进行了检查,果然,#first具有“display: none”属性,但#second没有。
随后我在Chrome和Edge中进行了检查,得到了相同的结果。
我发现可以使用
#first, #second {
display: none;
}
程序按预期运作。然而,我仍需要向 #second 添加其他属性,因此认为自己很聪明:
#first, #second {
display: none; <!--Awesome!-->
}
#second {
height: 100px; <!--nope-->
width: 100px; <!--nope-->
}
在努力尝试获得任何不同结果的重复之后,我尝试了一些绝对没有理由能够起作用的东西,但此时我已经不再在意。
我开始打开一个新文档,输入整个原始<style>...</style>
(来自上面第一个代码块),从未保存的文档中复制它,并将其粘贴到有问题的文件中。
刷新页面,什么也没看到。检查“检查元素”,确实,所有内容都在那里,只是被隐藏了“display:none”。
所以,在近3小时的疑难解答后,我的问题是:
- 发生了什么?
- 为什么会这样?
额外信息:
Windows 10 Home 64-bit
应用程序:
Visual Studio Code
<!--Awesome!-->
,而是/* Awesome! */
。在样式中无法使用HTML注释。 - c-smile#first
代码块后似乎有一个红点。尝试将其粘贴到jsfiddle中,您会看到。删除它可以使代码按预期工作。 - ishaan