最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談display:inline-block元素之間空隙的產(chǎn)生原因和解決辦法

  發(fā)布時(shí)間:2023-09-12 15:51:40   作者:Hayley2016   我要評(píng)論
display:inline-block是一種布局方法,它相比于與浮動(dòng)、定位最大的不同就是其沒(méi)有父元素的匿名包裹特性,本文主要介紹了display:inline-block元素之間空隙的產(chǎn)生原因和解決辦法,感興趣的可以了解一下

display:inline-block是一種布局方法,它相比于與浮動(dòng)、定位最大的不同就是其沒(méi)有父元素的匿名包裹特性,這使得display:inline-block屬性的使用非常自由,可與文字,圖片混排,可內(nèi)嵌block屬性元素,可以置身于inline水平的元素中。

在CSS布局中,如果我們想要將一些元素在同一行顯示,其中的一種方法就是把要同行顯示的元素設(shè)置display屬性為inline-block。但是你會(huì)發(fā)現(xiàn)這些同行顯示的inline-block元素之間經(jīng)常會(huì)出現(xiàn)一定的空隙,這就是“換行符/空格間隙問(wèn)題”。

<!DOCTYPE html>
<html>
<head>
  <title>display:inline-block元素之間空隙的產(chǎn)生原因和解決辦法</title>
  <style type="text/css">
  	.parent .child {
      display: inline-block;
      background-color: #fdfd04;
      width: 100px;
      height: 100px;
    }
  </style>
</head>
<body>
  <div class="parent">
    <div class="child">child1</div>
    <div class="child">child2</div>
  </div>
</body>
</html>

頁(yè)面效果:注意被設(shè)置display:inline-block的元素之間的間隙

空隙產(chǎn)生的原因

元素被當(dāng)成行內(nèi)元素排版的時(shí)候,元素之間的空白符(空格、回車換行等)都會(huì)被瀏覽器處理,根據(jù)white-space的處理方式(默認(rèn)是normal,合并多余空白),原來(lái)HTML代碼中的回車換行被轉(zhuǎn)成一個(gè)空白符,在字體不為0的情況下,空白符占據(jù)一定寬度,所以inline-block的元素之間就出現(xiàn)了空隙。這些元素之間的間距會(huì)隨著字體的大小而變化,當(dāng)行內(nèi)元素font-size:16px時(shí),間距為8px。

解決空隙的辦法

辦法一:解決元素之間的空白符

<!-- 將前一個(gè)標(biāo)簽結(jié)束符和后一個(gè)標(biāo)簽開始符寫在同一行 -->
<div class="parent">
  <div class="child">child1
  </div><div class="child">child2
  </div>
</div>
<!-- 將所有子元素寫在同一行 -->
<div class="parent">
  <div class="child">child1</div><div class="child">child2</div>
</div>

缺點(diǎn):代碼的可讀性變差。

方法二:為父元素中設(shè)置font-size: 0,在子元素上重置正確的font-size

<div class="parent" style="font-size: 0px">
  <div class="child" style="font-size: 16px">child1</div>
  <div class="child" style="font-size: 16px">child2</div>
</div>

缺點(diǎn):inline-block元素必須設(shè)定字體,不然行內(nèi)元素中的字體不會(huì)顯示。 增加了代碼量。

方法三:為inline-block元素添加樣式float:left

缺點(diǎn):float布局會(huì)有高度塌陷問(wèn)題,點(diǎn)我獲取解決辦法

方法四:設(shè)置子元素margin值為負(fù)數(shù)

.parent .child + .child {
  margin-left: -2px
}

缺點(diǎn):元素之間間距的大小與上下文字體大小相關(guān);并且同一大小的字體,元素之間的間距在不同瀏覽器下是不一樣的,如:font-size:16px時(shí),Chrome下元素之間的間距為8px,而Firefox下元素之間的間距為4px。所以不同瀏覽器下margin-right的負(fù)值是不一樣的,因此這個(gè)方法不通用。

注意:當(dāng)marigin-right使用相對(duì)單位em來(lái)表示時(shí),Chrome下可以正常去除間距,而Firefox下元素之間有重疊。

方法五:最優(yōu)解在這,設(shè)置父元素,display:table和word-spacing

.parent{
  display: table;
  word-spacing:-1em; /*兼容其他瀏覽器,題主還未驗(yàn)證*/
}

點(diǎn)我了解,幾個(gè)關(guān)于diaplay:table布局神器的絕妙應(yīng)用場(chǎng)景 

解決空隙問(wèn)題之后的頁(yè)面效果:

到此這篇關(guān)于淺談display:inline-block元素之間空隙的產(chǎn)生原因和解決辦法的文章就介紹到這了,更多相關(guān)display:inline-block空隙內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

扶绥县| 龙门县| 桃江县| 丽江市| 汝州市| 阿荣旗| 三河市| 凌云县| 张家川| 县级市| 乌鲁木齐市| 呼玛县| 江都市| 泸西县| 阿荣旗| 麦盖提县| 射阳县| 临泉县| 茶陵县| 新安县| 鱼台县| 潜江市| 邵阳县| 章丘市| 凌海市| 四平市| 中卫市| 南澳县| 东台市| 馆陶县| 孝感市| 文水县| 郴州市| 措美县| 来凤县| 张家口市| 乐至县| 长岭县| 天等县| 新源县| 西华县|