亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

CSS深入學(xué)習(xí)之讓你認(rèn)識不一樣的margin

  發(fā)布時間:2017-06-28 15:20:29   作者:valar_cC   我要評論
這篇文章主要給大家介紹了CSS中margin的用法和常見問題的分析,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。

一、簡介

margin我們一般習(xí)慣的叫它外邊距,分別可以設(shè)置四個方向的外邊距,這里不再贅述賦值語法。

實際上,我們通常設(shè)置的margin是物理級別的設(shè)置,而margin還有start、end、before、after等,這些主要是邏輯級別的設(shè)置,如果你感興趣的話,自行Google吧。

在設(shè)置margin時,我們必須要知道:

  • 對于塊級元素,margin在四個方向是多有效;
  • 對于內(nèi)聯(lián)元素,margin只在水平方向有效。
     

二、盒子模型

說到margin,不得不說一下盒子模型:

1、從內(nèi)之外content => padding => border => margin
 

盒子模型之所以要終點理解,主要是盒子模型的標(biāo)準(zhǔn)不一樣,也就決定我們在CSS中設(shè)置的width到底是什么,這時大家多會想起那幾個計算公式,實際上CSS3的到來,我們可以通過box-sizing來設(shè)置盒子模型的標(biāo)準(zhǔn):

2、border-box: width從border開始計算;
 

3、content-box: width從content開始計算;
 

4、padding-box: 已經(jīng)從標(biāo)準(zhǔn)中去除。

再來一張圖,是不是已經(jīng)了然于胸了
 

三、margin重疊問題

這種問題主要發(fā)生在block元素上并且不是浮動元素(這里并沒有描述清楚,在后面會詳細講),下面我們來看發(fā)生的情況。

1、發(fā)生在相鄰的兄弟元素

    .a {
        margin: 50px 0;
    }
    .b {
        margin: 100px 0;
    }

相鄰的兄弟元素發(fā)生的margin重疊
 

這種情況發(fā)生margin重疊,相鄰兄弟節(jié)點之間的距離為最大margin值,避免這種情況的最佳方式,在垂直方向上,只設(shè)置margin-top或者margin-bottom。

2、發(fā)生在父子節(jié)點

    div(class="b")
    div(class="a")
        div(class="c") C
    .a {
        margin: 20px 0;
    }
    .b {
        margin: 100px 0;
    }

父子節(jié)點發(fā)生margin重疊
 

這里按照我們的理解應(yīng)該是a距離b是20像素,c距離a是100像素。但是事實卻不是這樣,這里我們可以通過以下方法解決重疊的問題:

  • 父元素設(shè)置border;
  • 父元素設(shè)置padding;
  • 父元素設(shè)置overflow為hidden或者scroll,其他的不適用;
  • 父元素設(shè)置position為fixed或者absolute,其他的不適用。

四、神奇的margin負(fù)值

我們給一個block元素設(shè)置四個方向上的margin會發(fā)生什么:

  • top和left設(shè)置負(fù)值,會將元素向上或者左移動對應(yīng)的像素距離;
  • bottom和right設(shè)置負(fù)值,則會將相鄰的元素向上或者左移動。

這里還有一點,查資料的時候,發(fā)現(xiàn)很多人多說margin負(fù)值可以改變元素的寬度,這里我想更正一下,這并不是margin負(fù)值的特性,而是margin的特性,比如下面這段CSS,完全可以設(shè)置塊級元素的寬度。

    .item {
        margin: 0 200px;
        height: 200px;
    }

對于margin賦值在布局的應(yīng)用很廣泛,比如我們已知一個元素的寬高,你可以通過margin負(fù)值居中。

    .item {
        position: absolute;
        background: red;
        width: 200px;
        height: 200px;
        top: 50%;
        left: 50%;
        margin-top: -100px;
        margin-left: -100px;
    }

五、margin與float

對于這兩個讓人頭疼的屬性混到一起,我只想說,真的很爆炸。上面我說過“這種問題主要發(fā)生在block元素上并且不是浮動元素”,這里要再補充兩點:

  • 相鄰兄弟元素,如果兩者多是浮動元素,則不發(fā)生margin重疊;
  • 父子元素,如果其中一個是浮動元素,則不會發(fā)生margin重疊;
     

主要還是由于浮動元素不在正常的文檔流中,所以還是用上清除浮動的方法比較好。(一下為bootstrap的實現(xiàn)方式)

    .clearfix::before, .clearfix::after {
        content: " ";
        display: table;
    }

    .clearfix::after {
        clear: both;
    }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
 

相關(guān)文章

  • CSS中margin邊界疊加問題及解決方案

    本文主要介紹了CSS中margin邊界疊加問題及解決方案。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-27
  • CSS margin全面了解

    下面小編就為大家?guī)硪黄狢SS margin全面了解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-07-21
  • 淺談css margin重疊

    下面小編就為大家?guī)硪黄獪\談css margin重疊。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-19
  • CSS 之margin知識點(必看)

    下面小編就為大家?guī)硪黄狢SS 之margin知識點(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-10
  • css布局之負(fù)margin妙用及其他實現(xiàn)

    這篇文章主要為大家詳細介紹了css布局之負(fù)margin妙用及其他實現(xiàn)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 細說CSS中margin屬性的使用

    這篇文章和大家詳細說一說CSS中margin屬性的使用,重點描述了關(guān)于margin,我們?nèi)粘2惶菀装l(fā)現(xiàn)的“坑,感興趣的小伙伴們可以參考一下
    2016-02-25
  • 深入解析CSS中margin屬性的使用

    這篇文章主要介紹了CSS中的margin屬性的使用,margin是元素盒模型(box model)的基礎(chǔ)屬性,常被用來設(shè)置外邊距,實際用途非常廣泛,需要的朋友可以參考下
    2016-02-02
  • CSS中使用負(fù)margin值來調(diào)整居中位置

    這篇文章主要介紹了CSS中使用負(fù)margin值來調(diào)整居中位置的方法,文中同時提到了這種常用方法的一些值得注意的地方,需要的朋友可以參考下
    2015-07-15
  • CSS屬性探秘系列(六):margin

    margin 簡寫屬性在一個聲明中設(shè)置所有外邊距屬性。該屬性可以有 1 到 4 個值。這個簡寫屬性設(shè)置一個元素所有外邊距的寬度,或者設(shè)置各邊上外邊距的寬度。塊級元素的垂直相
    2014-10-22
  • 通過css屬性margin:auto讓Div中的Table居中

    在div標(biāo)簽中加入text-align:center里面的Table是不會居中的,在Table中加上 margin:auto就可以實現(xiàn)居中效果,下面有個示例,大家可以參考下
    2014-03-19

最新評論