CSS inline、block和inline-block的区别
类型 | 常见元素 |
---|---|
inline | <span> <a> <em> <i> <strong> … |
block | <div> <ul> <li> <p> <h1> <table> … |
inline-block | <img> <button> <input> … |
行内元素 inline
行内元素特点:
- 不会独占一行,相邻的行内元素会同行排列,直到一行排不下才会换行,宽度随元素的内容而变化;
- 设置宽高无效
- 设置外边距(margin)内边距(padding)仅左右有效 上下无效(设置背景颜色可以看到有效但是是不占空间的)
- 可以设置行高(line-height)
- 行内元素只能容纳文本或则其他行内元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
span{
padding: 20px;
margin: 20px;
width: 500px;
height: 500px;
}
</style>
</head>
<body>
<span style="background: chartreuse">span1</span>
<span style="background: aquamarine">span2</span>
<span style="background: cadetblue">span3</span>
<span style="background: brown">span4</span>
<span style="background: lawngreen">span5</span>
<div style="height: 20px;background: red"></div>
</body>
</html>
块级元素
- 每个块级元素都是独占一行
- 可以设置宽高
- margin、padding都是可以控制的
- 多个块级元素写在一起,默认从上到下排列
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{margin: 0}
div{
padding: 20px;
margin: 20px;
width: 100px;
height: 100px;
box-sizing: border-box;
}
</style>
</head>
<body>
<div style="background: chartreuse">div1</div>
<div style="background: aquamarine">div2</div>
<div style="background: cadetblue">div3</div>
<div style="background: brown">div4</div>
<div style="background: lawngreen">div5</div>
<div style="height: 20px;background: red;width: calc(100% - 40px);"></div>
</body>
</html>
行内块元素
- 高度、行高、margin、padding都可以控制
- 默认宽度就是它本身内容的宽度,不独占一行,但是之间会有空白缝隙,设置它上一级的 font-size 为 0,才会消除间隙
三者转换
- display:inline 将元素转为行内元素
- display:block 将元素转为块级元素
- display:inline-block 将元素转为行内块元素
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joker's Blog!
评论