Html-行内元素、块级元素和空元素是什么?分别有哪些?

144 阅读2分钟

一、核心分类对比表(必背)

分类特点常见元素CSS默认display值
块级元素独占一行,可设置宽高div, h1-h6, p, ul, ol, li, section, article, tableblock
行内元素同行显示,内容决定宽度,不可设宽高span, a, strong, em, b, i, code, img(特殊), input(特殊)inline
空元素无闭合标签,不能包含内容br, hr, img, input, link, meta, area, base-

二、特殊元素说明(易错点)

1. 行内元素中的替换元素

<img>, <input>, <select>, <textarea>, <button>

特点
✅ 可设置宽高(表现类似inline-block
✅ 内容由外部资源或用户输入决定

三、代码示例验证

<!-- 块级元素 -->
<div style="background: #eee">块级元素独占一行</div>
<p>段落也是块级</p>

<!-- 行内元素 -->
<span style="width: 100px">设置宽度无效</span>
<a href="#">链接同行显示</a>

<!-- 替换元素特例 -->
<img src="logo.png" style="width: 100px"> <!-- 可设宽高 -->
<input type="text" style="height: 30px"> <!-- 可设高度 -->

<!-- 空元素正确写法 -->
<br> <!-- 正确,无需闭合标签 -->
<img src="test.jpg"> <!-- 正确 -->
<link rel="stylesheet" href="style.css"> <!-- 正确 -->

四、高频面试题精讲

1. 如何让行内元素支持宽高?

.inline-block {
  display: inline-block; /* 转换为行内块 */
  width: 200px;
  height: 50px;
}

2. <div>放在<a>标签里合法吗?

<!-- HTML5允许,但需正确结构 -->
<a href="#">
  <div>块级内容</div>
</a>

注意:<a>不能嵌套另一个<a>或其他交互元素(如<button>

3. 空元素能否添加内容?

<br>内容</br> ❌ 错误写法,浏览器会忽略内容
<input>文本</input> ❌ 输入框内容应通过value属性设置

五、记忆口诀

"块级独占撑满行,行内同行不设宽
空元素无闭合标签,替换元素特例存"

面试时如果被问到,可以这样回答:
"块级元素如div会独占一行且可设宽高,行内元素如span同行显示但默认不能设宽高。空元素像img没有闭合标签,而替换元素如input虽然属于行内但可以设置尺寸。"