display
none
不显示元素,脱离文档流
inline 行内元素
不能设置宽高、不换行
水平 padding、margin 有效
垂直方向 padding、margin 无效
line-block
可以设置宽高、不换行
block
块级元素,可以设置宽高,独占一行
flex
弹性布局
table
元素作为块级表格元素使用
inherit
继承父元素 display 值
常见的问题
line-block、inline 都会有空格问题
因为浏览器会将换行符当空格字符处理
解决方案:
- 使用 font-size 时,可通过设置 font-size: 0、letter-spacing、word-spacing 解决
- 使用弹性布局
- 使用 margin 负值
浏览器对于空格的默认表现
- 元素的头尾的空白符会直接忽略
- 内容中间有多个空格,会被合并成一个空格
js
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.inline-block {
display: inline-block;
width: 50px;
height: 50px;
background-color: aqua;
}
</style>
</head>
<body>
<h2>inline-block的空格问题</h2>
<p>-------------------------------------------------------</p>
<p class="inline-block">我我</p>
<p class="inline-block">我我</p>
<p>-------------------------------------------------------</p>
<h2>inline的空格问题</h2>
<span>我我我我</span>
<span>我我我我</span>
<span>我我我我</span>
<h3>原因</h3>
<ul>
<li>换行符会被当做空格字符处理</li>
</ul>
<h3>解决方案</h3>
<ul>
<li>使用font-size时,可通过设置font-size:0、letter-spacing、word-spacing解决</li>
<li>使用弹性布局</li>
<li>使用margin负值</li>
</ul>
<p>-------------------------------------------------------</p>
<p>-------------------------------------------------------</p>
<h2>浏览器对于空格的默认表现</h2>
<ul>
<li>元素的头尾的空白符会直接忽略</li>
<li>内容中间有多个空格,会被合并成一个空格</li>
</ul>
</body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.inline-block {
display: inline-block;
width: 50px;
height: 50px;
background-color: aqua;
}
</style>
</head>
<body>
<h2>inline-block的空格问题</h2>
<p>-------------------------------------------------------</p>
<p class="inline-block">我我</p>
<p class="inline-block">我我</p>
<p>-------------------------------------------------------</p>
<h2>inline的空格问题</h2>
<span>我我我我</span>
<span>我我我我</span>
<span>我我我我</span>
<h3>原因</h3>
<ul>
<li>换行符会被当做空格字符处理</li>
</ul>
<h3>解决方案</h3>
<ul>
<li>使用font-size时,可通过设置font-size:0、letter-spacing、word-spacing解决</li>
<li>使用弹性布局</li>
<li>使用margin负值</li>
</ul>
<p>-------------------------------------------------------</p>
<p>-------------------------------------------------------</p>
<h2>浏览器对于空格的默认表现</h2>
<ul>
<li>元素的头尾的空白符会直接忽略</li>
<li>内容中间有多个空格,会被合并成一个空格</li>
</ul>
</body>