参考链接
块级元素与行内元素
块级元素
块级元素占据其父元素(容器)的整个水平空间,垂直空间等于其内容高度,因此创建了一个“块”。
- 格式
默认情况下,块级元素会新起一行。 - 内容模型
一般块级元素可以包含行内元素和其他块级元素。
行内元素
一个行内元素只占据它对应标签的边框所包含的空间。
- 格式
默认情况下,行内元素不会以新行开始,而块级元素会新起一行。 - 内容模型
一般情况下,行内元素只能包含数据和其他行内元素。
区别
- block是块级元素,能设置宽高,margin/padding都有效前后都有换行符
- inline设置宽高无效,margin在竖直方向无效,padding有效,前后无换行符
- inline-block可以设置宽高,margin/padding都有效,前后无换行符
- 块级元素会独占一行,其宽度自动填满其父元素宽度
行内元素不会独占一行,其宽度随元素的内容而变化 - 块级元素可以设置宽高
行内元素设置宽高无效 - 块级元素可以设置内外边距
行内元素水平方向的内外边距都产生边距效果,但是竖直方向的内外边距都不会产生边距效果。
(padding竖直方向不产生边距效果,但背景颜色存在,margin则只有水平方向才有效) - 块级元素可以包含行内元素和块级元素
行内元素不能包含块级元素
其他补充
常见
常见的块级元素<div> 文档分区<p> 段落<form> 表单<table> 表格<ul> 无序列表<ol> 有序列表<h1-h6> 标题<dd> 定义列表中定义条目描述。<dl> 定义列表
常见的行内元素<a> 锚点<b> 字体加粗<big> 大号字体<br> 换行<em> 强调内容<i> 斜体文本<img> 图像<input> 输入框<label> 标签为input的标注<select> 单选或多选<span> 组合文档的行内元素<small> 小号字体<strong> 强调内容<textarea> 文本域
嵌套
- 行内元素中 a 链接内不能嵌套其他链接
- 块级元素中 p 标签中不能嵌套 div 标签,p 标签不能嵌套 p 标签
(p 标签后跟 div 或 新的 p 标签,可省略 p 标签结束符)
<p>123<p>123</p></p>------------------------<p><div>123</div></p>------------------------<p><div>123</div></p>
浏览器中显示👇(p 标签换行会产生空格)
<p>123 </p><p>123</p><p></p>------------------------<p> </p><div>123</div><p></p>------------------------<p></p><div>123</div><p></p>
