css全總結(jié)之布局

  1. 首先咱們最簡單的就是 居中
    這是一個很重要的基礎(chǔ),在很多時候會用到。
  • 塊級水平居中可以使用margin:0 auto
  • text-align: center的作用是什么,作用在什么元素上?能讓什么元素水平居中
    • 作用:水平居中;
    • 作用在塊級元素上;
    • 能夠使inline元素和inline-block元素水平居中。

上面兩個是相對用的比較多,還可以用flex布局,定位等等

  1. 定位 position
屬性
inherit 規(guī)定應(yīng)該從父元素繼承 position 屬性的值
static 默認值,沒有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)
relative 生成相對定位的元素,相對于元素本身正常位置進行定位,因此,left:20px會向元素的 left 位置添加20px
absolute 生成絕對定位的元素,相對于static定位以外的第一個祖先元素(offset parent)進行定位,元素的位置通過 left, top, right以及 bottom屬性進行規(guī)定
fixed 生成絕對定位的元素,相對于瀏覽器窗口進行定位。元素的位置通過 left, top,right以及 bottom屬性進行規(guī)定
sticky CSS3新屬性,表現(xiàn)類似position:relative和position:fixed的合體,在目標區(qū)域在屏幕中可見時,它為就像position:relative; 而當頁面滾動超出目標區(qū)域時,它的表現(xiàn)就像position:fixed,它會固定在目標位置

普通流與相對定位

  • CSS有三種基本的定位機制:普通流,相對定位和絕對定位

  • 普通流是默認定位方式,在普通流中元素框的位置由元素在html中的位置決定,元素position屬性為static或繼承來的static時就會按照普通流定位,這也是我們最常見的方式

  • 相對定位比較簡單,對應(yīng)position屬性的relative值,如果對一個元素進行相對定位,它將出現(xiàn)在他所在的位置上,然后可以通過設(shè)置垂直或水平位置,讓這個元素相對于它自己移動,在使用相對定位時,無論元素是否移動,元素在文檔流中占據(jù)原來空間,只是表現(xiàn)出來的位置會改變

  • 絕對定位與固定定位

  • 相對定位可以看作特殊的普通流定位,元素位置是相對于它在普通流中位置發(fā)生變化,而絕對定位使元素的位置與文檔流無關(guān),也不占據(jù)文檔流空間,普通流中的元素布局就像絕對定位元素不存在一樣

  • 絕對定位的元素的位置是相對于距離最近的非static祖先元素位置決定的。如果元素沒有已定位的祖先元素,那么他的位置就相對于初始包含塊兒(body或html神馬的)元素。

  • 因為絕對定位與文檔流無關(guān),所以絕對定位的元素可以覆蓋頁面上的其他元素,可以通過z-index屬性控制疊放順序,z-index越高,元素位置越靠上。

  • 最后要說的就是fixed屬性了,應(yīng)用fixed也叫固定定位,固定定位是絕對定位的一種,固定定位的元素也不包含在普通文檔流中,差異是固定元素的包含塊兒是視口(viewport)

    總結(jié):

    • absolute偏移的參考點是具有position屬性(除了static屬性)的最近的祖先元素。
    • relative偏移的參考點是元素本身的初始位置。(不脫離文檔流)
    • fixed偏移的參考點是瀏覽器窗口。

浮動 float(脫離文檔流)

浮動元素的特征

  • 浮動元素將脫離文檔流,不會再占據(jù)空間;

  • 無論是塊元素還是內(nèi)聯(lián)元素,沒有寬度時默認內(nèi)容撐開寬度;

  • 內(nèi)聯(lián)元素支持寬高;

  • 設(shè)置寬高和float后,相當于懸浮的inline-block。

浮動元素對其他元素的影響

  • 對其他浮動元素的影響:后浮動的元素永不會超過先浮動元素;

  • 對普通元素的影響,普通元素會占據(jù)浮動元素原來所在的文檔位置;

  • 對文字而言,除了自身的文字外,其他元素中的文字一律環(huán)繞浮動元素周圍;

BFC清理浮動

  • BFC的全稱是 Block Format Content,有三個特性

  • BFC會阻止垂直外邊距(margin-top、margin-bottom)折疊

    • 按照BFC的定義,只有同屬于一個BFC時,兩個元素才有可能發(fā)生垂直Margin的重疊,這個包括相鄰元素,嵌套元素,只要他們之間沒有阻擋(例如邊框,非空內(nèi)容,padding等)就會發(fā)生margin重疊。 因此要解決margin重疊問題,只要讓它們不在同一個BFC就行了,但是對于兩個相鄰元素來說,意義不大,沒有必要給它們加個外殼,但是對于嵌套元素來說就很有必要了,只要把父元素設(shè)為BFC就可以了。這樣子元素的margin就不會和父元素的margin發(fā)生重疊
  • BFC不會重疊浮動元素

  • BFC可以包含浮動

我們可以利用BFC的第三條特性來“清浮動”,這里其實說清浮動已經(jīng)不再合適,應(yīng)該說包含浮動。也就是說只要父容器形成BFC就可以,簡單看看如何形成BFC

  • float為 left|right
  • overflow為 hidden|auto|scroll
  • display為 table-cell|table-caption|inline-block
  • position為 absolute|fixed
    我們可以對父容器添加這些屬性來形成BFC達到“清浮動”效果

通用的清除浮動法案

  • 總而言之清除浮動兩種方式:
    • 利用 clear屬性,清除浮動
    • 使父容器形成BFC
plan1:
.clearfix:after{ /*在class屬性名是clearfix的元素的子元素的最后再添加一個子元素*/
       content: ''; /*內(nèi)容是空*/
       display: block; /*設(shè)置為塊級元素*/ 
       clear: both; /*這個元素左右兩邊不允許有浮動元素*/
}
.clearfix{ /*設(shè)置class屬性是clearfix的元素*/ 
       *zoom: 1; /*設(shè)置縮放比例為1。這是IE專有屬性?;鸷屠习姹镜膚ebkit核心的瀏覽器都不支持這個屬性。*/}

plan2:
.clearfix{
    *zoom:1;
}
.clearfix:after{
    content:".";
    display:block;
    height:0;
    visibility:hidden;
    clear:left;
}

plan3
.clearfix{
    *zoom:1;
}
.clearfix:after{
    content:"";
    display:table;
    clear:both;
}

負margin

負邊距即margin屬性的值設(shè)為負值,在CSS布局中是一個很有用的技巧。值為正的場景很常見,大家都很熟悉其表現(xiàn)

  • 當margin-top、margin-left為負值的時候,會把元素上移、左移,同時文檔流中的位置也發(fā)生相應(yīng)變化,這點與position:relative的元素設(shè)置top、left后元素還占據(jù)原來位置不同
  • 當margin-bottom、margin-right設(shè)為負值的時候,元素本身沒有位置變化,后面的元素會上移、左移

position:relative和負margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
區(qū)別:

  1. 負margin會使元素在文檔流中的位置發(fā)生偏移,它會放棄偏移之前占據(jù)的空間,緊挨其后的元素會填充這部分空間;

  2. 相對定位后元素位置發(fā)生偏移,它仍會堅守原來占據(jù)的空間,不會讓文檔流的其他元素流入。

z-index 有什么作用

z-index用于設(shè)置元素的堆疊順序,z-index的值越高,則其堆疊順序越前,則是顯示在較低z-index的值的前面。

  1. z-index僅對定位元素有效(position:relative||absolute||fixed)
  2. z-index只可比較同級元素

布局

感覺自己還是沒能理解透,沒法自己寫,只能復(fù)制這篇先放著
http://www.itdecent.cn/p/be7a452bf707

還有flex布局

還有bootstrap

還有。。。

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 14,150評論 1 92
  • 一,浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 1,002評論 0 4
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,075評論 0 2
  • 1.浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 何謂浮動元素?有什么特征?所謂浮動...
    草鞋弟閱讀 928評論 0 1
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表,主要用...
    寥寥十一閱讀 2,059評論 0 6

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