最近忙得不可开交,有段时间没发表文章了,再不发,网站都要降权了,(⊙o⊙)...。OK,跟大家一起来聊聊老生常谈的话题:HTML中的块级元素和行级元素。为什么要聊这么陈旧的话题,其实原因很简单:不忘初心。
我们学习前端一般都是从HTML开始的,基础永远是核心,细节决定成败。
行内元素和块级元素的定义
任何HTML (超文本标记语言) 元素都有其默认的display属性,大多数都是行内元素(inline)或块级元素(block)。
一个行内元素只占据它对应标签的边框所包含的空间,而一个块级元素占据其父元素(容器)的整个空间,因此创建了一个"块"。
行内元素和块级元素的列表
行内元素有哪些?
a 标签可定义锚
abbr 表示一个缩写形式
acronym 定义只取首字母缩写
b 字体加粗
bdo 可覆盖默认的文本方向
big 大号字体加粗
br 换行
cite 引用进行定义
code 定义计算机代码文本
dfn 定义一个定义项目
em 定义为强调的内容
i 斜体文本效果
img 向网页中嵌入一幅图像
input 输入框
kbd 定义键盘文本
label 标签为 input 元素定义标注(标记)
q 定义短的引用
samp 定义样本文本
select 创建单选或多选菜单
small>呈现小号字体效果
span 组合文档中的行内元素
strong 语气更强的强调的内容
sub 定义下标文本
sup>定义上标文本
textarea 多行的文本输入控件
tt 打字机或者等宽的文本效果
var 定义变量
块级元素有哪些?
address 定义地址
caption 定义表格标题
dd 定义列表中定义条目
div 定义文档中的分区或节
dl 定义列表
dt 定义列表中的项目
fieldset 定义一个框架集
form 创建 HTML 表单
h1 定义最大的标题
h2 定义副标题
h3 定义标题
h4>定义标题
h5定义标题
h6定义最小的标题
hr 创建一条水平线
legend 元素为 fieldset 元素定义标题
li 标签定义列表项目
noframes 为那些不支持框架的浏览器显示文本,于 frameset 元素内部
noscript 定义在脚本未被执行时的替代内容
ol 定义有序列表
ul 定义无序列表
p 标签定义段落
pre 定义预格式化的文本
table 标签定义 HTML 表格
tbody 标签表格主体(正文)
td 表格中的标准单元格
tfoot 定义表格的页脚(脚注或表注)
th 定义表头单元格
thead 标签定义表格的表头
tr 定义表格中的行
行内元素和块级元素的区别
它们之间的区别,总结为四点,如下:
1、行内元素与块级函数可以相互转换,通过修改display属性值来切换块级元素和行内元素,行内元素display:inline,块级元素display:block。
2、行内元素和其他行内元素都会在一条水平线上排列,都是在同一行的;块级元素却总是会在新的一行开始排列,各个块级元素独占一行,垂直向下排列,若想使其水平方向排序,可使用左右浮动(float:left/right)让其水平方向排列。
3、行内元素不可以设置宽高,宽度高度随文本内容的变化而变化,但是可以设置行高(line-height),同时在设置外边距margin上下无效,左右有效,内填充padding上下无效,左右有效;块级元素可以设置宽高,并且宽度高度以及外边距,内填充都可随意控制。
4、块级元素可以包含行内元素和块级元素,还可以容纳内联元素和其他元素;行内元素不能包含块级元素,只能容纳文本或者其他行内元素。
行内元素和块级元素的相互转化
display: none; 不显示该元素
display: block; 可将行内元素转化为块级元素
display: inline; 可将块级元素转化为行内元素
display: inline-block; 转化为行内块级元素(即不默认换行,但是可以设置width、height、margin、padding等属性)
此外,还可以通过给行内元素设置float:left/right、positon:absolute/fixed属性,也可以使行内元素转化为块级元素,但是不默认继承父级元素的宽度,可以设置width、height、margin、padding等属性。但是替换时,还需要注意这个方法转换为块级元素只是float与position的副作用,他们本身的作用还会干扰布局效果。
<div class="child">
<span class="test">行内元素</span>
</div>
<div class="child">块级元素</div>
.test{
background-color: #000000;
color: #FFFFFF;
float:left;
width:90px;
}.child{
background-color: #125645;
width: 150px;
height: 40px;
color: #FFFFFF;
margin: 10px;
overflow: hidden;
display: inline-block;
}
预览效果:
可变元素
可变元素为根据上下文语境决定该元素为块元素或者内联元素。
button 按钮
del 定义文档中已被删除的文本
iframe 创建包含另外一个文档的内联框架(即行内框架)
ins 标签定义已经被插入文档中的文本
map 客户端图像映射(即热区)
object object对象
注意:块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素。
总结
不忘初心,方得始终!