CSS 布局 - display 属性 详解
CSS 布局 - display 属性
display
属性是用于控制布局的最重要的 CSS 属性。
display 属性
display
属性规定是否/如何显示元素。
每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block
或 inline
。
此面板包含一个 <div> 元素,它默认是隐藏的。(display: none
)
它由 CSS 设置样式,我们使用 JavaScript 显示它。(更改为 display: block
)
块级元素(block element)
块级元素总是从新行开始,并占据可用的全部宽度(尽可能向左和向右伸展)。
块级元素的一些例子:
- <div>
- <h1> - <h6>
- <p>
- <form>
- <header>
- <footer>
- <section>
行内元素(inline element)
内联元素不从新行开始,仅占用所需的宽度。
这是段落中的行内 <span> 元素。
行内元素的一些例子:
- <span>
- <a>
- <img>
Display: none;
display: none;
通常与 JavaScript 一起使用,以隐藏和显示元素,而无需删除和重新创建它们。如果您想知道如何实现此目标,请查看本页面上的最后一个实例。
默认情况下,<script>
元素使用 display: none;
。
覆盖默认的 Display 值
如前所述,每个元素都有一个默认 display 值。但是,您可以覆盖它。
将行内元素更改为块元素,反之亦然,对于使页面以特定方式显示同时仍遵循 Web 标准很有用。
一个常见的例子是为实现水平菜单而生成行内的 <li>
元素:
示例代码:
li {
display: inline;
}
完整实例【亲自试一试】:
<!DOCTYPE html>
<html>
<head>
<style>
li {
display: inline;
}
</style>
</head>
<body>
<p>把链接列表显示为水平导航栏:</p>
<ul>
<li><a href="http://www.phpcodeweb.com/news/653.html" target="_blank">HTML</a></li>
<li><a href="http://www.phpcodeweb.com/news/741.html" target="_blank">CSS</a></li>
<li><a href="http://www.phpcodeweb.com/news/1.html" target="_blank">JavaScript</a></li>
</ul>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
注意:设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类。因此,带有 display: block;
的行内元素不允许在其中包含其他块元素。
下例将 <span> 元素显示为块元素:
示例代码:
span {
display: block;
}
完整实例【亲自试一试】:
<!DOCTYPE html>
<html>
<head>
<style>
span {
display: block;
}
</style>
</head>
<body>
<span>值为 "block" 的 display 属性会导致</span><span>两元素间的换行。</span>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
下例将 <a> 元素显示为块元素:
示例代码:
a {
display: block;
}
完整实例【亲自试一试】:
<!DOCTYPE html>
<html>
<head>
<style>
a {
display: block;
}
</style>
</head>
<body>
<p>把链接显示为块元素:</p>
<a href="http://www.phpcodeweb.com/news/653.html" target="_blank">HTML</a>
<a href="http://www.phpcodeweb.com/news/741.html" target="_blank">CSS</a>
<a href="http://www.phpcodeweb.com/news/1.html" target="_blank">JavaScript</a>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
隐藏元素 - display:none 还是 visibility:hidden?
display:none
visibility:hidden
Reset
通过将 display
属性设置为 none
可以隐藏元素。该元素将被隐藏,并且页面将显示为好像该元素不在其中:
示例代码:
h1.hidden {
display: none;
}
完整实例【亲自试一试】:
<!DOCTYPE html>
<html>
<head>
<style>
h1.hidden {
display: none;
}
</style>
</head>
<body>
<h1>这是一个可见的标题</h1>
<h1 class="hidden">这是一个隐藏的标题</h1>
<p>请注意, display: none; 的标题不会占用任何空间。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
visibility:hidden;
也可以隐藏元素。
但是,该元素仍将占用与之前相同的空间。元素将被隐藏,但仍会影响布局:
示例代码:
h1.hidden {
visibility: hidden;
}
完整实例【亲自试一试】:
<!DOCTYPE html>
<html>
<head>
<style>
h1.hidden {
visibility: hidden;
}
</style>
</head>
<body>
<h1>这是可见的标题</h1>
<h1 class="hidden">这是隐藏的标题</h1>
<p>请注意,隐藏的标题仍然占据空间。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
更多实例
完整实例【display: none; 与 visibility: hidden; 之间的差异】:
<!DOCTYPE html>
<html>
<head>
<style>
.imgbox {
float: left;
text-align: center;
width: 185px;
border: 1px solid gray;
margin: 4px;
padding: 6px;
}
button {
width: 100%;
}
</style>
</head>
<body>
<h1>display:none 与 visiblity: hidden 的区别</h1>
<p><b>visibility:hidden</b> 隐藏元素,但仍占据布局中的空间。</p>
<p><b>display:none</b> 从文档中删除元素。它不会占据任何空间。</p>
<div class="imgbox" id="imgbox1">Box 1<br>
<img src="/i/css/imgbox-1.gif" alt="Box 1" style="width:100%">
<button onclick="removeElement()">删除</button>
</div>
<div class="imgbox" id="imgbox2">Box 2<br>
<img src="/i/css/imgbox-2.gif" alt="Box 2" style="width:100%">
<button onclick="changeVisibility()">隐藏</button>
</div>
<div class="imgbox">Box 3<br>
<img src="/i/css/imgbox-3.gif" alt="Box 3" style="width:100%">
<button onclick="resetElement()">重置所有</button>
</div>
<script>
function removeElement() {
document.getElementById("imgbox1").style.display = "none";
}
function changeVisibility() {
document.getElementById("imgbox2").style.visibility = "hidden";
}
function resetElement() {
document.getElementById("imgbox1").style.display = "block";
document.getElementById("imgbox2").style.visibility = "visible";
}
</script>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
本例演示 display: none; VS visibility: hidden;
完整实例【结合使用 CSS 和 JavaScript 来显示内容】:
<!DOCTYPE html>
<html>
<head>
<style>
#panel, .flip {
font-size: 16px;
padding: 10px;
text-align: center;
background-color: #4CAF50;
color: white;
border: solid 1px #a6d8a8;
margin: auto;
}
#panel {
display: none;
}
</style>
</head>
<body>
<p class="flip" onclick="myFunction()">点击这里来显示面板</p>
<div id="panel">
<p>该面板包含一个 div 元素,默认情况下该元素是隐藏的(display: none)。</p>
<p>它使用 CSS 进行样式设置,我们使用 JavaScript 来显示它(display: block)。</p>
<p>工作原理:请注意,带有 class="flip" 的 p 元素有 onclick 属性。当用户单击 p 元素时,将执行一个名为 myFunction() 的函数,该函数将 id="panel" 的 div 样式从 display:none(隐藏)更改为 display:block(可见)。</p>
<p>您将在我们的 JavaScript 教程中学到有关 JavaScript 的更多知识。</p>
</div>
<script>
function myFunction() {
document.getElementById("panel").style.display = "block";
}
</script>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
本例演示如何使用 CSS 和 JavaScript 在单击时显示元素。
CSS Display/Visibility 属性
属性 | 描述 |
---|---|
display | 指定应如何显示元素。 |
visibility | 指定元素是否应该可见。 |
相关阅读
-
无相关信息