display幾種樣式的理解

display幾種樣式的理解

在HTML標(biāo)簽中,存在著兩種標(biāo)簽類型,即行內(nèi)元素(或者說(shuō)行內(nèi)標(biāo)簽)和 塊內(nèi)元素(或者塊級(jí)標(biāo)簽)。 這兩種標(biāo)簽的特點(diǎn)分別是:
行內(nèi)元素: 元素結(jié)束默認(rèn)不換行。內(nèi)部只能包含行內(nèi)元素 或者 文本內(nèi)容,不能由塊 級(jí)元素。
塊級(jí)元素:從新的一行開(kāi)始,結(jié)束時(shí)接著一個(gè)斷行。元素內(nèi)部可以包含塊級(jí)元素,行內(nèi)元素,文本內(nèi)容等。

下面來(lái)個(gè)簡(jiǎn)單例子來(lái)看一下:

<body>
    <p> Hello! 我是塊級(jí)元素。 你知道我兄弟們都有<strong>誰(shuí)嗎?</strong></p>
    <p> Hello! 我是塊級(jí)元素。 你知道我兄弟們都有<strong>誰(shuí)嗎?</strong></p>
</body>

結(jié)果:

Hello! 我是塊級(jí)元素。 你知道我兄弟們都有誰(shuí)嗎?
Hello! 我是塊級(jí)元素。 你知道我兄弟們都有誰(shuí)嗎?

可以看到,每個(gè)< p> 標(biāo)簽輸出的內(nèi)容占一行,而每個(gè)< strong>標(biāo)簽,并沒(méi)有換行。

在CSS中,我們有個(gè)屬性設(shè)置,即display, 可以用來(lái)設(shè)置元素的展示類型。其常用的主要有block,none,inline,inline-block;

1. display:none;

其實(shí),可以簡(jiǎn)單從字面上理解,即不顯示,因此 該元素會(huì)被隱藏,而且其隱藏后,頁(yè)面上不會(huì)保留其物理空間。

<html>
<head>
<meta charset="utf-8">
<style>
#p1{
  display: none;
}
</style>
</head>
<body>
    <p id="p1"> Hello! 我是塊級(jí)元素。 你知道我兄弟們都有<strong>誰(shuí)嗎?</strong></p>
    <p> Hello! 我是塊級(jí)元素。 你知道我兄弟們都有<strong>誰(shuí)嗎?</strong></p>
</body>
</html>

結(jié)果是:

Hello! 我是塊級(jí)元素。 你知道我兄弟們都有誰(shuí)嗎
這里只顯示一句話,也就是說(shuō),第一個(gè)< p >標(biāo)簽被隱藏了。

2 . display:block;

這個(gè)的意思是,以塊級(jí)元素的形式來(lái)展示該元素。而且,塊級(jí)元素默認(rèn)是此屬性。

如果我們想把一個(gè) 行內(nèi)元素 以塊級(jí)元素的形式展示,那么就可以通過(guò)此方法

<span>你好,我是shandamengcheng.</span><span>你好,我是shandamengcheng.</span>

結(jié)果為:

你好,我是shandamengcheng.你好,我是shandamengcheng.
如果我們把第一個(gè)< span>標(biāo)簽設(shè)置以塊級(jí)元素方式展示:

<head>
<meta charset="utf-8">
<style>
#span1{
  display: block;
}
</style>
</head>
<body>
    <span id="span1">你好,我是shandamengcheng.</span><span>你好,我是shandamengcheng.</span>
</body>

結(jié)果為:

你好,我是shandamengcheng.
你好,我是shandamengcheng.
可以看到,結(jié)果為兩行。

3. display:inline;

這個(gè)的意思是 以行內(nèi)元素的方式展示該元素。且它是行內(nèi)元素的默認(rèn)屬性。
如果我們想把一個(gè)塊級(jí)元素以行內(nèi)元素的方式展示,那么可以通過(guò)此方法。

<style>
/*#span1{
  display: block;
}*/
</style>
</head>
<body>
    
    <p id="p1">你好,我是shandamengcheng.</p>
    <p>你好,我是shandamengcheng.</p>
</body>

結(jié)果為:

你好,我是shandamengcheng.
你好,我是shandamengcheng.
若加上屬性設(shè)置:

<style>
#p1{
  display: inline;
}
</style>
</head>
<body>  
    <p id="p1">你好,我是shandamengcheng.</p>
    <p>你好,我是shandamengcheng.</p>
</body> 

結(jié)果為:

你好,我是shandamengcheng.

你好,我是shandamengcheng.

奇怪,為什么會(huì)出現(xiàn)這種情況?按理說(shuō)應(yīng)該是在同一行才對(duì)?。。?/p>

這是因?yàn)?,第一個(gè)< p>元素 確實(shí)是稱為行內(nèi)元素,但是第二個(gè)仍為塊級(jí)元素。塊級(jí)元素的特性之一就是 ------以新的以新的一行開(kāi)始。
所以,我們可以做一些修改:

<style>
#p1{
  display: inline;
}
</style>
</head>
<body>
    <p id="p1">你好,我是shandamengcheng.</p>
    <span>你好,我是shandamengcheng.</span>
</body>

結(jié)果為:

你好,我是shandamengcheng. 你好,我是shandamengcheng.

4. display:inline-block;

這種設(shè)置方法可以說(shuō)是兼具上面的2,3的功能,可以實(shí)現(xiàn)以行內(nèi)元素的形式展示元素,又可以對(duì)該元素進(jìn)行寬高,內(nèi)外邊距的設(shè)置。

行內(nèi)元素和塊級(jí)元素的主要區(qū)別是盒子模型:即 行內(nèi)元素不能設(shè)置寬高,上下位置的內(nèi)外邊距。

<style>
#p1{
  display: inline-block;
  width:200px;
  height:200px;
  background: pink;
}
</style>
</head>
<body>
    <p id='p1'>你好,我是shandamengcheng.</p>
    <span>你好,我是shandamengcheng.</span>
</body>

結(jié)果為:


result.png

其他地方也有用到此屬性,比如說(shuō),設(shè)置一個(gè)橫屏的目錄。

<html>
<head>
<meta charset="utf-8">
<style>
ul li{
  display: inline-block;
  width:80px;
  height:20px;
  background: pink;
}
</style>
</head>
<body>
    <ul>
        <li>主頁(yè)</li>
        <li>新聞</li>
        <li>個(gè)人</li>
    </ul>
</body>
</html>

結(jié)果為:


content.png


以上內(nèi)容是個(gè)人的理解,也是個(gè)人筆記,如果感到有問(wèn)題,歡迎隨時(shí)交流。 :)

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

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

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