前言

关于什么是行内元素、块级元素、行内块级元素,请移步

display:block

display:block就是将元素显示为块级元素。

block元素的特点是:

  • 总是在新行上开始;
  • 高度,行高以及顶和底边距都可控制;
  • 宽度是它的容器的100%,除非设定一个宽度;
  • <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

display:inline

display:inline就是将元素显示为内联行内元素。

inline元素的特点是:

  • 和其他元素都在一行上;
  • 高,行高及顶和底边距不可改变;
  • 宽度就是它的文字或图片的宽度,不可改变。
  • <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

display:inline-block

display:inline-block将对象呈递为内联块级对象。

display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

inline-block的元素特点:
将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

code

举个栗子:

<!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">
    <title>display:inline、block、inline-block的区别</title>
</head>
<style>
    div,
    span {
        background-color: green;
        margin: 5px;
        border: 1px solid #333;
        padding: 5px;
        height: 52px;
        color: #fff;
    }
    
    .b {
        display: block;
    }
    
    .i {
        display: inline;
    }
    
    div.ib {
        display: inline-block;
    }
    
    div.ib {
        display: inline;
    }
    
    span,
    a.ib {
        display: block;
    }
</style>

<body>
    <div>div display:block</div>
    <div class="i">div display:inline</div>
    <div class="ib">div display:inline-block</div>
    <span>span display:inline</span>
    <span class="b">span display:block</span>
    <span><a class="ib" href="#">a display:block</a></span><br />
</body>

</html>

如图:

参考链接

display:inline、display:block、display:inline-block三者真实用途及含义是什么?