1. 概念
block是块级元素,inline是行内元素,而inline-block则是让元素既可以像块级元素那样,可以设置宽度和高度,又能像行内元素那样,让具有宽高的这些元素排列在一行内
ul{
background: red;
margin: 50px;
}
li{
list-style-type: none;
display: inline-block;
background: gray;
color: white;
font-size: 16pt;
width:100px;
}
/*html*/
<ul>
<li>1111</li>
<li>2222</li>
<li>3333</li>
<li>4444</li>
<li>5555</li>
<li>6666</li>
</ul>

应用:
- 可以用在导航栏、菜单上,代替浮动方法带来的父元素高度塌陷
- 可以用在作为按钮的a链接上,使按钮与文档在同一行内
2. 高度特性
2.1
代码与1点相同,给第一个li标签增加css属性:
li:first-child{
background: black;
height: 50px;
}

2.2
ul{
background: red;
margin: 50px;
}
li{
list-style-type: none;
display: inline-block;
background: gray;
color: white;
font-size: 16pt;
width: 300px;
}
/*html*/
<ul>
<li>1111</li>
<li>2222</li>
<li style="height: 50px; background: black;">3333</li>
<li>4444</li>
<li>5555</li>
<li>6666</li>
<li>7777</li>
</ul>
给第三个li标签添加了50px的高度

3. inline-block元素间的换行符产生的间隙
通过上面的例子,可以发现每个li元素之间都会有一个小间隔,而这些间隔是由html代码中的换行产生的

解决办法
3.1
把li标签之间的空格去掉
<ul>
<li>
1111</li><li>
2222</li><li style="height: 50px; background: black;">
3333</li><li>
4444</li><li>
5555</li><li>
6666</li><li>
7777</li>
</ul>
3.2
给父元素添加font-size:0;
(查网上资料,有的说chrome不兼容此方法,但测试是可以的,所以表示疑问?)