CSS九宮格布局方法

看到微博和朋友圈都實(shí)現(xiàn)了圖片九宮格,曾經(jīng)有次面試也問(wèn)到了九宮格這個(gè)問(wèn)題撮慨,當(dāng)時(shí)想到的是先固定每個(gè)單元格的寬高岸军,然后進(jìn)行浮動(dòng)。今天想折騰一下滞磺,實(shí)現(xiàn)自適應(yīng)父元素寬度的布局。
首先要注意的是九宮格容器是寬高相等的正方形莱褒,并且是自適應(yīng)的击困,這里關(guān)鍵是實(shí)現(xiàn)寬高相等,有些人想到了相對(duì)視口寬度 vw保礼,但是它是相對(duì)于屏幕可見(jiàn)寬度來(lái)設(shè)置的沛励,并且會(huì)忽略滾動(dòng)條的寬度,所以這是不可行的炮障。這里我用一種變通方法目派,看代碼

<!-- html布局 -->
<div class="square">
  <ul class="square-inner flex">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
  </ul>
</div>
/* CSS樣式 */
.square{
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 100%; /* padding百分比是相對(duì)父元素寬度計(jì)算的 */
  margin-bottom: 30px;
}
.square-inner{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; /* 鋪滿父元素容器,這時(shí)候?qū)捀呔褪冀K相等了 */
}
.square-inner>li{
  width: calc(98% / 3);  /* calc里面的運(yùn)算符兩邊要空格 */
  height: calc(98% / 3);
  margin-right: 1%;
  margin-bottom: 1%;
  overflow: hidden;
}

.flex{
  display: flex;
  flex-wrap: wrap;
}
.flex>li{
  flex-grow: 1; /* 子元素按1/n的比例進(jìn)行拉伸 */
  background-color: #4d839c;
  text-align: center;
  color: #fff;
  font-size: 50px;
  line-height: 2;
}
.flex>li:nth-of-type(3n){ /* 選擇個(gè)數(shù)是3的倍數(shù)的元素 */
  margin-right: 0;
}
.flex>li:nth-of-type(n+7){  /* 選擇倒數(shù)的三個(gè)元素胁赢,n可以取0 */
  margin-bottom: 0;
}

參考鏈接:https://www.cnblogs.com/sunshq/p/10118425.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末企蹭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子智末,更是在濱河造成了極大的恐慌谅摄,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件系馆,死亡現(xiàn)場(chǎng)離奇詭異送漠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)由蘑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)闽寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人尼酿,你說(shuō)我怎么就攤上這事爷狈。” “怎么了裳擎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵涎永,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鹿响,道長(zhǎng)羡微,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任惶我,我火速辦了婚禮拷淘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘指孤。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布恃轩。 她就那樣靜靜地躺著结洼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叉跛。 梳的紋絲不亂的頭發(fā)上松忍,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音筷厘,去河邊找鬼鸣峭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛酥艳,可吹牛的內(nèi)容都是我干的摊溶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼充石,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼莫换!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起骤铃,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拉岁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后惰爬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喊暖,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年撕瞧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陵叽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡风范,死狀恐怖咨跌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情硼婿,我是刑警寧澤锌半,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站寇漫,受9級(jí)特大地震影響刊殉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜州胳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一记焊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栓撞,春花似錦遍膜、人聲如沸碗硬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恩尾。三九已至,卻和暖如春挽懦,著一層夾襖步出監(jiān)牢的瞬間翰意,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工信柿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冀偶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓渔嚷,卻偏偏與公主長(zhǎng)得像进鸠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子圃伶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容