溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

css怎么利用負margin技術(shù)實現(xiàn)平均布局

發(fā)布時間:2021-03-22 09:39:09 來源:億速云 閱讀:144 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)css怎么利用負margin技術(shù)實現(xiàn)平均布局的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

我們平常會利用float布局來解決IE瀏覽器CSS的兼容性問題,比如淘寶,就是用float布局來實現(xiàn)的。 我們會在淘寶頁面會看到下圖這樣一種布局。

css怎么利用負margin技術(shù)實現(xiàn)平均布局

這種圖片均勻分布的布局我們叫平均布局,那這種布局又是怎么實現(xiàn)的呢? 有的同學可能覺得,這還不簡單,可以直接設(shè)置父元素div寬度和子元素寬度總和相等就可以了。 真的有這么容易嗎,我們來試一下。

測試

假如我們令每個子元素寬度為100px,一共3個子元素,給每個子元素一個margin-right,設(shè)為50px,那父元素寬度應(yīng)為100x3+50x2=400px。我們設(shè)置一些樣式。html和css代碼如下。

//HTML
<div class="father clearfix">
   <div class="son"></div>
   <div class="son"></div>
   <div class="son"></div>
</div>
//CSS
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.clearfix::after {
  content: '';
  display: block;
  clear: both;
}

.father {
  width: 400px;
  height: 100px;
  margin: 10px;
  background-color: #d5a4cf;
  border: 1px solid black;
}

.son {
  border: 1px solid black;
  background-color: #fff1ac;
  float: left;
  margin-right: 50px;
  width: 100px;
  height: 100px;
}

此時效果如下

css怎么利用負margin技術(shù)實現(xiàn)平均布局

我們發(fā)現(xiàn)最后一個子元素被擠下來了,這是為什么呢。不要問為什么,因為這就是CSS。 那我們該怎么解決呢,有的同學說,是受父元素的1px的border影響,我們把換成outline試一下。

css怎么利用負margin技術(shù)實現(xiàn)平均布局

我們發(fā)現(xiàn)還是沒有起作用,這個時候怎么辦呢。接下來給大家介紹一種“負margin”的方法。 我們給父元素和子元素間加一個中間層,令這個div的margin-right為-50px,我們再來試一下。

//HTML
<div class="father clearfix">
  <div class="middle clearfix">
    <div class="son"></div>
    <div class="son"></div>
    <div class="son"></div>
  </div>
</div>
//CSS
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.clearfix::after {
  content: '';
  display: block;
  clear: both;
}

.father {
  width: 400px;
  height: 100px;
  margin: 10px;
  background-color: #d5a4cf;
  outline: 1px solid black;
}

.son {
  border: 1px solid black;
  background-color: #fff1ac;
  float: left;
  margin-right: 50px;
  width: 100px;
  height: 100px;
}

.middle {
  margin-right: -50px;
}

這個時候我們發(fā)現(xiàn),中間的div通過“延伸”右外邊距把帶三個子元素“包進去”了,從而實現(xiàn)了 平均布局 。

css怎么利用負margin技術(shù)實現(xiàn)平均布局 

感謝各位的閱讀!關(guān)于“css怎么利用負margin技術(shù)實現(xiàn)平均布局”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI