天天看點

負值之美:負margin在頁面布局中的應用一、左右列固定,中間列自适應布局二、去除清單右邊框三、負邊距+定位:水準垂直居中四、去除清單最後一個li元素的border-bottom五、多列等高

  負數給人總是一種消極、否定、拒絕之感,不過有時利用負margin可以達到奇妙的效果,今天就表一表負值在頁面布局中的應用。這裡說的負值主要指的是負margin。

  本文不講原理,主要展示幾個應用。

  此例适用于左右欄寬度固定,中間欄寬度自适應的布局。由于網頁的主體部分一般在中間,很多網頁都需要中間列優先加載,而這種布局剛好滿足此需求。

  HTML:

  CSS:

  效果:

負值之美:負margin在頁面布局中的應用一、左右列固定,中間列自适應布局二、去除清單右邊框三、負邊距+定位:水準垂直居中四、去除清單最後一個li元素的border-bottom五、多列等高

  項目中經常會使用浮動清單展示資訊,為了美觀通常為每個清單之間設定一定的間距(margin-right),當父元素的寬度固定式,每一行的最右端的li元素的右邊距就多餘了,去除的方法通常是為最右端的li添加class,設定margin-right:0; 這種方法需要動态判斷為哪些li元素添加class,麻煩!!!利用負margin就可以實作下面這種效果:

負值之美:負margin在頁面布局中的應用一、左右列固定,中間列自适應布局二、去除清單右邊框三、負邊距+定位:水準垂直居中四、去除清單最後一個li元素的border-bottom五、多列等高

  使用絕對定位将div定位到body的中心,然後使用負margin(content寬高的一半),将div的中心拉回到body的中心,已到達水準垂直居中的效果。

負值之美:負margin在頁面布局中的應用一、左右列固定,中間列自适應布局二、去除清單右邊框三、負邊距+定位:水準垂直居中四、去除清單最後一個li元素的border-bottom五、多列等高

  清單中我們經常會添加border-bottom值,最後一個li的border-bottom往往會與外邊框重合,視覺上不雅觀,往往要移除。

負值之美:負margin在頁面布局中的應用一、左右列固定,中間列自适應布局二、去除清單右邊框三、負邊距+定位:水準垂直居中四、去除清單最後一個li元素的border-bottom五、多列等高

  此例關鍵是給每個框設定大的底部内邊距,然後用數值相似的負外邊距消除這個高度。這會導緻每一列溢出容器元素,如果把外包容器的overflow屬性設為hidden,列就在最高點被裁切。

負值之美:負margin在頁面布局中的應用一、左右列固定,中間列自适應布局二、去除清單右邊框三、負邊距+定位:水準垂直居中四、去除清單最後一個li元素的border-bottom五、多列等高

繼續閱讀