display 属性用于控制元素的显示方式:是否显示/如何显示元素。大多数元素的 display 属性有两种状态:块级元素(Block)和 内联元素(Inline)。
除了这两种常见的状态外,还有一些其他的 display 属性取值,如 inline-block、flex、grid 等,用于实现更灵活的布局和样式效果。
因为,对于新手,其他属性相对复杂,本次呢,我们么主要来介绍 display 的 3 个基础常用的属性值。
display 属性的常见取值包括:
常见的块级元素包括 <div>、<p>、<h1> 到 <h6>、<ul>、<ol>、<li> 等。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Block Elements Example</title>
<style></style>
</head>
<body>
<!-- div 块级元素 -->
<div>This is a div block element.</div>
<!-- p 段落元素 -->
<p>This is a paragraph block element.</p>
<!-- h1-h6 标题元素 -->
<h1>Heading 1 Block Element</h1>
<h2>Heading 2 Block Element</h2>
<!-- ul 和 li 列表元素 -->
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>

常见的内联元素包括 <span>、<a>、<strong>、<em>、<img>、<input> 等。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Inline Elements Example</title>
</head>
<body>
<!-- span 内联元素 -->
<span>This is a span inline element.</span>
<!-- a 锚点元素 -->
<a href="#">This is an anchor inline element.</a>
<!-- strong 加粗元素 -->
<strong>This is a strong inline element.</strong>
<!-- em 斜体元素 -->
<em>This is an em inline element.</em>
<!-- img 图片元素 -->
<img src="img/heart-fill.png" alt="Example Image" />
<!-- input 输入框元素 -->
<input type="text" placeholder="Enter text" />
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Display None Example</title>
<style>
/* 隐藏元素 */
.hidden {
display: none;
}
/* 普通元素 */
.normal {
background-color: #ec4a4a;
padding: 10px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<!-- 隐藏元素 -->
<div class="hidden">这是一个隐藏的元素。</div>
<!-- 普通块级元素 -->
<div class="normal">这是一个普通的块级元素。</div>
</body>
</html>
效果如图:

它的主要实际应用场景包括:
总的来说,display: none; 是 CSS 中常用的属性之一,在实际开发中具有广泛的应用场景,可以实现页面元素的动态显示和隐藏,提升用户体验和页面交互性。
延伸:
那如果只希望元素不可见,但仍占据位置,可以怎么做?
那就可以用 visibility: hidden; 了。visibility 属性值用于控制元素的可见性,与 display 属性值类似,也有 visible 和 hidden 两个取值。
visibility: visible; 表示元素可见,visibility: hidden; 表示元素不可见,但仍然占据页面空间,这个你可以自己试一下~
更改 display 属性值意味着改变元素在页面中的显示方式,可以将元素从一个类型变换成另一个类型,比如从块级元素变为内联元素或反之。更改 display 属性值的主要场景包括但不限于:
以下是代码,展示如何使用 CSS 更改元素的 display 属性。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Display Property Example</title>
<style>
.convert-block-element {
display: block;
width: 200px;
height: 30px;
background-color: #ccc;
margin-bottom: 10px;
}
.convert-inline-element {
display: inline;
color: blue;
}
</style>
</head>
<body>
<!-- 转为块级元素 -->
<h3>转换前的a标签</h3>
<a href="#">这是链接</a>
<a href="#">这是链接</a>
<a href="#">这是链接</a>
<h3>看,a标签换行了。</h3>
<a href="#" class="convert-block-element">这是链接</a>
<a href="#" class="convert-block-element">这是链接</a>
<a href="#" class="convert-block-element">这是链接</a>
<hr />
<!-- 转换为内联元素 -->
<h3>转换前的div标签</h3>
<div>这是普通div</div>
<div>这是普通div2</div>
<div>这是普通div3</div>
<div>这是普通div4</div>
<h3>看,div在一行了。</h3>
<div class="convert-inline-element">转为了内联元素</div>
<div class="convert-inline-element">转为了内联元素2</div>
<div class="convert-inline-element">转为了内联元素3</div>
<div class="convert-inline-element">转为了内联元素4</div>
</body>
</html>
效果如下:


