摘要:布局是年提出的,目前已經被所有瀏覽器支持,也是我現在布局的首選方案。實踐用來實現圣杯布局圣杯布局指的是一種最常見的網站布局。一般情況下,這種布局要求固定高度,固定寬度,自適應。
Flex 布局是 W3C 2009年提出的,目前已經被所有瀏覽器支持,也是我現在布局的首選方案。Flex 布局使用起來是非常簡單的,本文談一談平時使用可能需要注意的問題。
align-content平時使用 justify-content 屬性比較多,用它來表示主軸的對齊方式。align-content 用來處理多個軸線的對齊方式,這說明布局產生換行!
flex-growflex-grow 屬性定義項目的放大比例,默認為0,即如果存在剩余空間,也不放大。如果所有項目的 flex-grow 屬性都為1,則它們將等分剩余空間(如果有的話)。如果一個項目的 flex-grow 屬性為2,其他項目都為1,則前者占據的剩余空間將比其他項多一倍。
flex-shrinkflex-shrink 屬性定義了項目的縮小比例,默認為1,即如果空間不足,該項目將縮小。如果所有項目的 flex-shrink 屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的 flex-shrink 屬性為0,其他項目都為1,則空間不足時,前者不縮小。
flex-basisflex-basis 屬性定義了在分配多余空間之前,項目占據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多余空間。它的默認值為 auto,即項目的本來大小。它可以設為跟 width 或 height 屬性一樣的值(比如350px),則項目將占據固定空間。
flex平時很少直接使用 flex-grow、flex-shrink、flex-basis,一般使用的是 flex。flex屬性是 flex-grow, flex-shrink 和 flex-basis 的簡寫,默認值為0 1 auto。后兩個屬性可選。該屬性有兩個快捷值:auto (1 1 auto) 和 none (0 0 auto)。auto 表示放大、縮小,none 表示不放大,不縮小。
建議優先使用這個屬性,而不是多帶帶寫三個分離的屬性,因為瀏覽器會推算相關值。
查看 demo,通過放大和縮小瀏覽器大小動態改變 container 長度,當 container 長度不夠時,flex-shrink、flex-basis 產生作用,長度足夠 flex-grow、flex-basis 產生作用。
align-selfalign-self 屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋 align-items 屬性。默認值為 auto,表示繼承父元素的 align-items 屬性,如果沒有父元素,則等同于 stretch。
實踐:用 Flex 來實現圣杯布局圣杯布局指的是一種最常見的網站布局。頁面從上到下,分成三個部分:頭部(header),軀干(body),尾部(footer)。其中軀干又水平分成三欄,從左到右為:導航(nav)、主欄(main)、副欄(aside)。一般情況下,這種布局要求:
header,footer固定高度,nav,aside固定寬度,body,main自適應。
main 優先加載
用 Flex 來實現圣杯布局,Flex實現圣杯布局效果
DOM 結構CSSFlex 實現圣杯布局 header main
html, body { display: flex; flex-direction: column; min-height: 600px; height: 100%; font-size: 28px; font-weight: bolder; } header, footer { height: 150px; background-color: #666; display: flex; justify-content: center; align-items: center; flex: none; } .content { flex: 1; /* 高度自適應 */ display: flex; } nav, aside { background-color: #eb6f43; flex: 0 1 200px; display: flex; justify-content: center; align-items: center; } main { display: flex; justify-content: center; align-items: center; flex: 1; /* 寬度自適應 */ background-color: #d6d6d6; } nav { order: -1; /* 調整順序在main前面 */ }參考
CSS Flex
Flex 布局教程:語法篇
Flex 布局教程:實例篇
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/93284.html
摘要:本文由云社區發表本文將通過三個簡單的實例,實際應用上篇文章的基礎理論知識,展示下布局是如何解決布局問題。通過對比其他的實現方式,可以看出使用布局可以優雅地實現相同的布局問題。 本文由云+社區發表 本文將通過三個簡單的實例,實際應用上篇文章的基礎理論知識,展示下Flex布局是如何解決CSS布局問題。 一.垂直居中 這里同時用非flex布局和flex布局兩種方式來實現,可以對比兩種實現方式...
摘要:本文由云社區發表本文將通過三個簡單的實例,實際應用上篇文章的基礎理論知識,展示下布局是如何解決布局問題。通過對比其他的實現方式,可以看出使用布局可以優雅地實現相同的布局問題。 本文由云+社區發表 本文將通過三個簡單的實例,實際應用上篇文章的基礎理論知識,展示下Flex布局是如何解決CSS布局問題。 一.垂直居中 這里同時用非flex布局和flex布局兩種方式來實現,可...
摘要:本文由云社區發表本文將通過三個簡單的實例,實際應用上篇文章的基礎理論知識,展示下布局是如何解決布局問題。通過對比其他的實現方式,可以看出使用布局可以優雅地實現相同的布局問題。 本文由云+社區發表 本文將通過三個簡單的實例,實際應用上篇文章的基礎理論知識,展示下Flex布局是如何解決CSS布局問題。 一.垂直居中 這里同時用非flex布局和flex布局兩種方式來實現,可以對比兩種實現方式...
摘要:圣杯布局雙飛翼布局所謂圣杯布局和雙飛翼布局其實解決的問題是相同的,都是解決左右兩欄固定寬度,中間部分自適應,其中某部分內容比其他內容高的時候,保證三者元素等高。雙飛翼用在外層多加了一個然后改用。 前言 我曾一度覺得總寫css的前端很low,有了這種思想以后我便遠離網頁布局,H5的工作更不想接,沉迷于頁面邏輯和封裝組件。直到最近我面試,面試官說我css3理解的不熟,我起初很不屑,但后來靜...
摘要:清單一些說明注意文檔的書寫順序,先寫兩側欄,再寫主面板,更換后則側欄會被擠到下一列圣杯布局和雙飛翼布局都會用到。可以通過設置的屬性或使用雙飛翼布局避免問題。雙飛翼布局不用設置相對布局,以及對應的和值。 本文首發于知乎專欄:前端指南 CSS布局 布局是CSS中一個重要部分,本文總結了CSS布局中的常用技巧,包括常用的水平居中、垂直居中方法,以及單列布局、多列布局的多種實現方式(包括傳統的...
閱讀 2034·2023-04-26 00:16
閱讀 3486·2021-11-15 11:38
閱讀 3177·2019-08-30 12:50
閱讀 3188·2019-08-29 13:59
閱讀 759·2019-08-29 13:54
閱讀 2509·2019-08-29 13:42
閱讀 3313·2019-08-26 11:45
閱讀 2195·2019-08-26 11:36