CSS頁面布局與網格(上)

2021-09-24 20:28:43 字數 2472 閱讀 6742

網格系統是設計師在切分布局時作為參照的一組行和列。

類名用於為布局新增樣式。為了讓樣式可以重用,讓類名表達其意圖。

.column 

.column-half

.row

另一種做法:

.thing,

.other-thing,

.third-thing,

.fourth-thing

命名規範是高質量**的重要組成部分。

如果設計很複雜,那麼最好選擇乙個現成的css布局框架

到底是該選擇現成的框架還是自己寫呢?視情況而定。如果你要快速做乙個原型以驗證某個想法,當然要選現成的框架。如果你的**複雜到要修改已有框架的很多**,那可能還不如自己寫更好。

包裝元素是頁面布局中常用的乙個盛放內容的元素。

body 

width: 95%;

max-width: 76em;

margin: 0 auto;

}

通過自動外邊距,將包裝元素設定為在頁面上居中。

.media-block 

.media-fig

.media-body

浮動的元素會被拿出文件流,因此類名為.media-blockdiv不會占用空間:它只包含浮動的內容,因此無法在文件流中為它生成高度。在類名為.media-blockdiv內部某處應用clear,從而在使用了clear的元素上方創造出足夠的垂直外邊距,從而為包住浮動元素創造出空間。

.clear
有時候可能會有現成的元素用於清除,但這裡為了實現我們想要的布局而引入了空div。雖然我們可以通過overflow屬性來包含浮動元素,但是比較大的區塊很可能會有定位內容被擺放到行容器之外。因此,比較好做法是使用設定了清除的偽元素。

.media-block:after

/* 使用浮動把行分成列 */

.col

/* 使用通用選擇符,降低規則特殊性,後面可以用乙個特殊的類名來覆蓋這個寬度。 */

.row-quartet > *

.subcategory-featured

給列間新增一些空距(gutter)。使用外邊距作為空距,保證空距與列寬相協調。

外邊距相對包含塊來計算,空距與總寬度的比例再除以2就是每一列左右兩邊的外邊距。(假設在一般的螢幕尺寸中,空距等於文字的行高,兩個行之間的距離等於行高。)

.row 

.col

設定空距的替代方案:

.col
用行內塊包裝行與列:font-size: 0; /* 去掉行內塊之間的間隙 */

margin: 0 -11px; /* 考慮到先後相容的後備規則 */

margin: 0 -.6875rem;

} float: none;

vertical-align: top;

display: inline-block; /* 行內塊 */

font-size: 16px; /* 考慮到先後相容的後備規則 */

font-size: 1rem;

}使用flexbox實現等高的列:

.flexbox .row
這樣,我們就已經建立了等高的列,其實這也是可伸縮項會拉伸以填充父元素的預設行為。

.flexbox .col 

.flexbox .col > *

/* 對包裝行進行增強 */

display: flex;

flex-wrap: wrap; /* 允許折行 */

}

flexbox是一種強大的設計工具,可以實現精細而又靈活的內容布局。

基於浮動的布局基礎上又應用了flexbox,做到了最大限度的向後相容。

現代flexbox效能一般都比浮動要優越。

使用**實現二維布局,**中的單元可通過colspanrowspan實現複雜的布局。

css 網格布局 CSS網格布局簡介

css 網格布局 css在不斷發展。目前正在談論的某些功能可能會在不久的將來成為主流,而其他功能可能會逐漸淡出人們的視線。無論哪種方式,了解將來考慮使用哪些css選擇器,布局模組和過濾器都將使您成為更強大的前端開發人員。網格布局是一種很快就會被廣泛接受的選擇。您可以想象,css的這一子集可以簡化內容...

CSS網格布局

網格分析 n行n列組成網格 拐來拐去又變為 在css布局中我們只需要實現一行n列效果,然後組成多行多列 必須調整全域性盒模型 響應式網格檢視通常是 每行12 列,行寬度為100 行 列在瀏覽器視窗大小調整時會自動伸縮 由此我們可以計算出每列的百分比 100 12 列 8.33 在每列中指定 clas...

CSS 網格布局

css網格布局引入了二維網格布局系統,可用於布局頁面主要的區域布局或小型元件。本文介紹了css網格布局 與 css網格布局規範 level 1 中的新術語。css網格布局和彈性盒布局的主要區別在於彈性盒布局是為一維布局服務的 沿橫向或縱向的 而網格布局是為二維布局服務的 同時沿著橫向和縱向 這兩個規...