摘要:效果如圖響應(yīng)式布局例子實(shí)現(xiàn)如圖效果結(jié)構(gòu)布局使用屬性創(chuàng)建一個(gè)列的網(wǎng)格,每個(gè)列都是一個(gè)單位寬度總寬度的。嘗試其它布局把移到右邊實(shí)現(xiàn)后的效果使用點(diǎn)來創(chuàng)建空白的網(wǎng)格單元格實(shí)現(xiàn)效果真正的響應(yīng)式布局假設(shè)你想在移動(dòng)設(shè)備上查看的是標(biāo)題旁邊是菜單。
為了使其成為二維的網(wǎng)格容器,我們需要定義列和行。讓我們創(chuàng)建3列和2行。我們將使用grid-template-row
和grid-template-column
屬性。
.wrapper {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 50px 50px;
}
grid-template-columns
的3個(gè)值表示三列,相應(yīng)的數(shù)值表示列寬
即都為100px。grid-template-rows
的2個(gè)值表示兩行,相應(yīng)的數(shù)值表示行高
即都為50px
可以變化一下行高跟列寬的值看下效果,代碼:
.wrapper {
display: grid;
grid-template-columns: 200px 50px 100px;
grid-template-rows: 100px 30px;
}
我們使用與之前相同的 HTML 標(biāo)記,為了幫助我們更好的理解,我們?cè)诿總€(gè) items(子元素) 加上了多帶帶的 class :
class="wrapper">
class="item1">1
class="item2">2
class="item3">3
class="item4">4
class="item5">5
class="item6">6
創(chuàng)建一個(gè) 3×3 的 grid(網(wǎng)格):
.wrapper {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 100px 100px 100px;
}
在頁面上看到 3×2 的 grid(網(wǎng)格),而我們定義的是 3×3 的 grid(網(wǎng)格)。這是因?yàn)槲覀冎挥?6 個(gè) items(子元素) 來填滿這個(gè)網(wǎng)格。如果我們?cè)偌?個(gè) items(子元素),那么最后一行也會(huì)被填滿。
定位和調(diào)整(item)子元素大小
要定位和調(diào)整 items(子元素) 大小,我們將使用?grid-column
?和?grid-row
?屬性來設(shè)置:
.item1 {
grid-column-start: 1;
grid-column-end: 4;
}
當(dāng)然可以有簡寫方式:
.item1 {
grid-column: 1 / 4;
}
上面代碼意思就是: item1 占據(jù)從第一條網(wǎng)格線開始,到第四條網(wǎng)格線結(jié)束。顯示效果如下:
如果你不明白我們?cè)O(shè)置的只有 3 列,為什么有4條網(wǎng)格線呢?看看下面這個(gè)圖像,黑色的列網(wǎng)格線你就明白了:
如果上面的看懂了,來個(gè)復(fù)雜點(diǎn)的鞏固下。
.item1 {
grid-column-start: 1;
grid-column-end: 3;
}
.item3 {
grid-row-start: 2;
grid-row-end: 4;
}
.item4 {
grid-column-start: 2;
grid-column-end: 4;
}
效果如圖:
實(shí)現(xiàn)如圖效果:
<style>
.container {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-template-rows: 50px 350px 50px;
grid-gap: 5px;
}
style>
<div class="container">
<div class="header">HEADERdiv>
<div class="menu">MENUdiv>
<div class="content">CONTENTdiv>
<div class="footer">FOOTERdiv>
div>
使用?grid-template-columns
?屬性創(chuàng)建一個(gè) 12 列的網(wǎng)格,每個(gè)列都是一個(gè)單位寬度(總寬度的 1/12 )。(愚人碼頭注:其中,?repeat(12, 1fr)
?意思是 12 個(gè)重復(fù)的 1fr 值。?fr
?是網(wǎng)格容器剩余空間的等分單位。)
使用?grid-template-rows
?屬性創(chuàng)建 3 行,第一行高度是 50px ,第二行高度是 350px 和第三行高度是 50px。
使用?grid-gap
?屬性在網(wǎng)格中的網(wǎng)格項(xiàng)之間添加一個(gè)間隙
。
這個(gè)屬性被稱為網(wǎng)格區(qū)域
,也叫模板區(qū)域
,能夠讓我們輕松地進(jìn)行布局實(shí)驗(yàn)。
要將它添加到網(wǎng)格中,我們只需給網(wǎng)格容器加一個(gè)?grid-template-areas?
屬性即可。 語法可能有點(diǎn)奇怪,因?yàn)樗幌衿渌?CSS 語法。例如:
.container {
display: grid;
grid-gap: 5px;
grid-template-columns: repeat(12, 1fr);
grid-template-rows: 50px 350px 50px;
grid-template-areas:
"h h h h h h h h h h h h"
"m m c c c c c c c c c c"
"f f f f f f f f f f f f";
}
上面代碼創(chuàng)建3行12列,上面grid-template-areas
屬性中的值,每行代表一行,用網(wǎng)格術(shù)語來說是 網(wǎng)格軌道(Grid Track) ,每個(gè)字符(?h,m,c,f
)代表一個(gè)網(wǎng)格單元格。愚人碼頭注:其實(shí)是 網(wǎng)格區(qū)域(Grid Area) 名稱,你可以使用任意名稱
。
你可能已經(jīng)猜到,我選擇了字符 h,m,c,f,是因?yàn)樗麄兪?header, menu, content 和 footer 的首字母。 當(dāng)然,我可以把它們叫做任何想要的名稱,但是使用他們所描述的東西的第一個(gè)字符更加容易讓人理解。
現(xiàn)在我們需要將這些字符與網(wǎng)格中的網(wǎng)格項(xiàng)建立對(duì)應(yīng)的連接。 要做到這一點(diǎn),我們將在網(wǎng)格項(xiàng)使用?grid-area?
屬性:
.header {
grid-area: h;
}
.menu {
grid-area: m;
}
.content {
grid-area: c;
}
.footer {
grid-area: f;
}
這樣就實(shí)現(xiàn)了上面的布局效果。
1.把 menu 移到右邊
grid-template-areas: “h h h h h h h h h h h h” "c c c c c c c c c c m m” “f f f f f f f f f f f f”;
實(shí)現(xiàn)后的效果:
2.使用點(diǎn)?.?
來創(chuàng)建空白的網(wǎng)格單元格
grid-template-areas: “. h h h h h h h h h h .” "c c c c c c c c c c m m” “. f f f f f f f f f f .”;
實(shí)現(xiàn)效果:
3.真正的響應(yīng)式布局
假設(shè)你想在移動(dòng)設(shè)備上查看的是:標(biāo)題旁邊是菜單。那么你可以簡單地這樣做:
@media screen and (max-width: 640px) {
.container {
grid-template-areas:
"m m m m m m h h h h h h"
"c c c c c c c c c c c c"
"f f f f f f f f f f f f";
}
}
可以看到如下效果:
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/1076.html
摘要:繼續(xù)響應(yīng)式網(wǎng)頁布局的實(shí)現(xiàn),今日講的是方案。就是為二維布局設(shè)計(jì)的,最適合用來做網(wǎng)頁布局。其中是最小寬度單位,等于六個(gè)等于三個(gè)等于兩個(gè)而則等于五個(gè)。 繼續(xù)W3Schools響應(yīng)式網(wǎng)頁布局的實(shí)現(xiàn),今日講的是CSS Grid方案。CSS Grid就是為二維布局設(shè)計(jì)的,最適合用來做網(wǎng)頁布局。目前主流的瀏覽器都已經(jīng)支持CSS Grid,除非你很確定你的用戶常使用較舊的瀏覽器,不然的話,建議使用CS...
摘要:繼續(xù)響應(yīng)式網(wǎng)頁布局的實(shí)現(xiàn),今日講的是方案。就是為二維布局設(shè)計(jì)的,最適合用來做網(wǎng)頁布局。其中是最小寬度單位,等于六個(gè)等于三個(gè)等于兩個(gè)而則等于五個(gè)。 繼續(xù)W3Schools響應(yīng)式網(wǎng)頁布局的實(shí)現(xiàn),今日講的是CSS Grid方案。CSS Grid就是為二維布局設(shè)計(jì)的,最適合用來做網(wǎng)頁布局。目前主流的瀏覽器都已經(jīng)支持CSS Grid,除非你很確定你的用戶常使用較舊的瀏覽器,不然的話,建議使用CS...
摘要:的個(gè)值表示三列,相應(yīng)的數(shù)值表示列寬即都為。嘗試其它布局把移到右邊實(shí)現(xiàn)后的效果使用點(diǎn)來創(chuàng)建空白的網(wǎng)格單元格實(shí)現(xiàn)效果真正的響應(yīng)式布局假設(shè)你想在移動(dòng)設(shè)備上查看的是標(biāo)題旁邊是菜單。 常用Grid布局屬性介紹 下面從一個(gè)簡單Grid布局例子說起。 CSS Grid 布局由兩個(gè)核心組成部分是 wrapper(父元素)和 items(子元素)。 wrapper 是實(shí)際的 grid(網(wǎng)格),items...
摘要:但是,從字體上來說雪碧圖制作,使用以及相關(guān),圖文。由于采用了編譯,所以能夠保證在瀏覽器不支持標(biāo)準(zhǔn)布局的情況下,回滾到舊版本的,保證移動(dòng)設(shè)備中能呈現(xiàn)出一樣的布局效果。我不想陷入和的紛爭,但是有一件事是確定的極大的提升了移動(dòng)端 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問題:怎樣通過 CSS 簡單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開始學(xué)習(xí) CSS 的時(shí)候,看到 ...
閱讀 3215·2021-09-22 15:50
閱讀 3466·2021-09-10 10:51
閱讀 3231·2019-08-29 17:10
閱讀 2991·2019-08-26 12:14
閱讀 1896·2019-08-26 12:00
閱讀 1099·2019-08-26 11:44
閱讀 717·2019-08-26 11:44
閱讀 2879·2019-08-26 11:41