区别:
1)默认情况下块级元素会新起一行,一个块级元素独占一行,默认情况下宽度自动填满父元素宽度;行内元素不会以新行开始,多个行内元素可以存在于同一行,每个行内元素只占据它对应的标签的边框所对应的空间;
<style type="text/css">
#myp1 {
background: #8FBC8F;
}
#myp2 {
background: #BC8F8F;
}
#myp3 {
background: #BC1717;
}
#mySpan1 {
background: #D9D919;
}
#mySpan2 {
background: #C0D9D9;
}
</style>
<p class="blackEle" id="myp1">我最近在看偶像练习生我最近在看偶像练习生我最近在看偶像练习生</p>
<p class="blackEle" id="myp2">我超级超级喜欢蔡徐坤我超级超级喜欢蔡徐坤我超级超级喜欢蔡徐坤</p>
<span class="inlineEle" id="mySpan1">笔芯</span>
<span class="inlineEle" id="mySpan2">biu biu biu</span>
<p class="blackEle" id="myp3">我感觉我仿佛一个zz~</p>
如上图所示,<p>块级元素每次都是新起一行,对<p>设置的背景色填充了整个屏幕宽度;而<span>元素自动显示在一行,背景色填充也只在标签所占的位置。
2) 块级元素可以包含行内元素和其他块级元素;行内元素只能包含数据或者其他行内元素。
3) 块级元素设置其外边距、内边距都可以起作用;行内元素只有margin-left\margin-right和padding-left\padding-right起作用,padding-top\padding-bottom虽然可以使上下范围变大,但是对周围元素并没有影响。
当在myp2和mySpan1的css样式中都加入如下内容:
border: solid 2px black;
height: 100px;
left: 30px;
margin-left: 20px;
margin-top: 30px;
margin-bottom: 30px;
margin-right: 20px;
padding-top: 10px;
padding-left: 10px;
padding-bottom: 30px;
padding-right: 20px;
图2为修改css后的图片效果,可以发现块级元素myp2和行内元素mySpan1都发生了左右偏移。图3图4中橙色为margin,绿色为padding,蓝色为context。可以看出块级元素的margin和padding功能都正常,而行内元素的margin-top和margin-bottom并没有起作用,虽然padding-top和padding-bottom使得标签范围扩大,但是并没有影响到上下元素,这也就是为什么黄色覆盖了红色区域的原因。
3) 块级元素:display: block;
行内元素:display: inline;
通过修改display可以实现行内元素和块级元素的转换。
当我把myp1和myp2的display修改为inline把mySpan1的display修改为block后的效果如下:
补充:
常见的块级元素:
address – 地址
blockquote – 块引用
center – 举中对齐块
dir – 目录列表
div – 常用块级容易,也是CSS layout的主要标签
dl – 定义列表
fieldset – form控制组
form – 交互表单
h1 – 大标题
h2 – 副标题
h3 – 3级标题
h4 – 4级标题
h5 – 5级标题
h6 – 6级标题
hr – 水平分隔线
isindex – input prompt
menu – 菜单列表
noframes – frames可选内容,(对于不支持frame的浏览器显示此区块内容
noscript – 可选脚本内容(对于不支持script的浏览器显示此内容)
ol – 有序表单
p – 段落
pre – 格式化文本
table – 表格
ul – 无序列表
常见的行内元素:
a – 锚点
abbr – 缩写
acronym – 首字
b – 粗体(不推荐)
bdo – bidi override
big – 大字体
br – 换行
cite – 引用
code – 计算机代码(在引用源码的时候需要)
dfn – 定义字段
em – 强调
font – 字体设定(不推荐)
i – 斜体
img – 图片
input – 输入框
kbd – 定义键盘文本
label – 表格标签
q – 短引用
s – 中划线(不推荐)
samp – 定义范例计算机代码
select – 项目选择
small – 小字体文本
span – 常用内联容器,定义文本内区块
strike – 中划线
strong – 粗体强调
sub – 下标
sup – 上标
textarea – 多行文本输入框
tt – 电传文本
u – 下划线
可变元素:根据上下文语境决定该元素为块元素或者内联元素。
applet - java applet
button - 按钮
del - 删除文本
iframe - inline frame
ins - 插入的文本
map - 图片区块(map)
object - object对象
script - 客户端脚本
参考:
CSS块级元素和行内元素