區(qū)分display:block;display:inline;display:inline-block的區(qū)別

每一個元素都有默認的display屬性值,對于一些開始學CSS的朋友們,很容易混淆display:block;inline:inline-block這三種用法,下面將具體細說每一種的具體用法和實例相結(jié)合。

一、display:block(塊級元素)

1.一個block元素總是會占據(jù)一行,當有多個block元素就要新起多行對應。
HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div id='div1'>11</div>
<div id='div2'>22</div>
</body>
</html>

CSS:

#div1{
border:1px solid red;
}
#div2{
border:1px solid red;
}

效果圖:


1.png

2、block元素可以設(shè)置width,默認情況下,block元素的寬度自動填滿其父類元素寬度;即使設(shè)置了寬度,block仍然是獨占一行。

#div1{
border:1px solid red;
width:100px;
}
#div2{
border:1px solid red;
width:100px;
}

效果圖:


2.png

3、block元素可以設(shè)置height,默認情況下,block元素的高度會自動拓展包含子元素的內(nèi)容。

#div1{
border:1px solid red;
width:100px;
height:100px;
}
#div2{
border:1px solid red;
width:100px;
height:100px;
}

效果圖:


3.png

4、block元素可以設(shè)置padding和margin屬性

#div1{
border:1px solid red;
width:50px;
height:50px;
padding:20px;
margin:20px
}
#div2{
border:1px solid red;
width:50px;
height:50px;
}

效果圖:只對div1增加了padding和margin屬性,參考div2進行對比。


4.png

5、block元素不能實現(xiàn)vertical-align這個屬性。

總結(jié):

<div>, <p>, <h1>, <form>, <ul> 和 <li>是塊元素常見的例子,我們可以設(shè)置寬度和高度,同時可以控制元素的padding和margin屬性。

二、display:inline(行內(nèi)元素)

1、inline元素不會獨占一行,多個相鄰的行內(nèi)元素會排列在一行內(nèi),直到排不下再新?lián)Q一行。
HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<span id="span1">11</span>
<span id="span2">22</span>
</body>
</html>

CSS:

#span1{
border:1px solid red;
}
#span2{
border:1px solid red;
}

效果圖:


5.png

2、inline元素設(shè)置width和height屬性無效,寬度由元素內(nèi)容決定。非替換行內(nèi)元素(p、label等)的行框高由line-height決定,替換行內(nèi)元素(img、input、textarea等)的行框高由height、margin、padding、border決定。

#span1{
border:1px solid red;
width:100px;
height:100px;
}
#span2{
border:1px solid red;
}

效果圖:只新增span1中寬度和高度,span2作為對比參考


5.png

3、margin和padding 在豎直方向上無效,在水平方向上有效。

#span1{
border:1px solid red;
padding:20px;
margin:20px;  
}
#span2{
border:1px solid red;
}

效果圖:只新增span1中padding和margin,span2作為對比參考


6.png

4、inline元素受vertical-align屬性和white-space屬性控制

總結(jié):

<span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素常見的例子,設(shè)置寬度和高度對inline元素沒有影響,設(shè)置padding和margin在豎直方向上無效,在水平方向上有效。

三、display:inline-block

既具有 block 元素可以設(shè)置寬高的特性,同時又具有 inline 元素默認不換行的特性。當然不僅僅是這些特性,比如 inline-block 元素也可以設(shè)置 vertical-align 屬性。但是不是所有瀏覽器都支持這個屬性,例如IE6和7就不支持這個屬性,要實現(xiàn)這個屬性必須利用其它辦法。
HTML :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div id="div1">11</div>
<span id="span1">22</span>
</body>
</html>

CSS:

#div1{
border:1px solid red;
width:50px;
height:50px;
padding:20px;
margin:20px;
display:inline-block;
}
#span1{
border:1px solid red;
width:50px;
height:50px;
padding:20px;
margin:20px;
display:inline-block;
}

效果圖:div1實現(xiàn)了不分行,span1實現(xiàn)了設(shè)置寬度和高度


7.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容