精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用 CSS Columns 布局來實現自動分組布局

開發 前端
Columns布局,又稱“多列”布局(或者“分欄”布局),這是一個使用場景比較有限,但是幾乎無法被替代的一種布局。

最近在項目中碰到這樣一個布局,有一個列表,先按照 4 * 2 的正常順序排列,當超過 8 個后,會橫向重新開始 4 * 2 的布局,有點像一個個獨立的分組,然后水平排列,如下

圖中序號是 dom 序列,所以其實這這樣的一個順序。

很多同學可能會想到給子元素分組(通過 JS將原數組拆分組合成一個二維數組),每 8 個套一層容器,然后水平排列就行了

是不是有點麻煩呢?

其實,無需單獨嵌套容器也能實現類似分組的效果,這就需要借助本文要介紹的 column 布局了,一起看看吧~

一、簡單介紹一下 columns

平時接觸較多的都是flex或者grid,但還有一個columns布局往往被忽視了。

https://developer.mozilla.org/zh-CN/docs/Web/CSS/columns

columns布局,又稱“多列”布局(或者“分欄”布局),這是一個使用場景比較有限,但是幾乎無法被替代的一種布局。

使用非常簡單,直接看一個例子,假設有這樣一段文本

p{
  width: 500px;
}
<p>歡迎關注前端偵探,這里有一些有趣的、你可能不知道的HTML、CSS、JS小技巧技巧,比如這篇文章,如何使用 CSS columns 布局來實現自動分組布局,一起看看吧</p>

默認是這樣的。

下面我們將段文本分成3列。

p{
  columns: 3;
}

看,自動就分成了3列。

并且閱讀順序是從左到右,從下到下,直到整列閱讀完成,非常類似以前的報刊讀物閱讀習慣。

除了指定列數,還可以根據指定寬度自動去計算列數,比如:

p{
  columns: 100px;
}

效果如下:

這個表示按照最小100px去分段,看最多可以分成多少列,并不是說每列就一定是 100,應該是大于等于 100,直到剩余空間可以再放下一列。

那為啥設置的是100,總寬度是500,卻只分成了4列?原因是有「默認列間距」,如果去除這個間距。

p{
  column-gap: 0px;
}

這樣就剛好被分成了5列。

看不清楚?加個分割線試試。

p{
	column-rule: 1px solid red;
}

是不是剛好分成了 5 列?(注意,這里的分割線是不占空間的)。

簡單了解columns多列布局后,下面來看另外的用途。

二、columns 實現橫向分組布局

可能你已經發現了,上面的文本分列布局和我們文章開頭所需要的效果非常類似,都是一列一列的,因此我們可以嘗試用columns布局來實現這樣的效果。

假設html是這樣的。

<div class="wrap">
  <div class="list">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div>
    <div class="item">7</div>
    <div class="item">8</div>
    <div class="item">9</div>
    <div class="item">10</div>
    <div class="item">11</div>
    <div class="item">12</div>
    <div class="item">13</div>
    <div class="item">14</div>
  </div>
</div>

這里多了一層wrap是用來做滾動容器的,簡單修飾一下。

.wrap{
  display: flex;
  width: 400px;
  overflow: auto;
  outline: 1px dashed #9747FF;
}
.item{
  display: inline-flex;
  width: 80px;
  margin: 10px;
  aspect-ratio: 1/1;
  background: #FFE8A3;
  color: #333;
  font-size: 30px;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
}

效果如下,很正常的一個布局。

現在,我們希望縱向高度是固定的,然后橫向滾動,先加一個高度試試。

.list{
  height: 200px;
}

這樣就變成了縱向滾動的布局了。

那么,如何讓它橫向分欄并且滾動呢?其實非常簡單,只需要添加一行。

.list{
  height: 200px;
  column-width: 400px;
}

設置分欄寬度為滾動容器寬度之后,就自動將整個列表分成多組了,相當于每個滾動屏幕作為一組,從左到右排列,由于空間不足,所以可以橫向滾動。

是不是非常神奇?僅需一個屬性就實現了縱向滾動到橫向滾動的切換。

三、借助 scroll-snap 實現輪播效果

通常碰到這種橫向滾動的效果,你可能會想到一個swiper組件,也就是那種一屏一屏切換的效果,沒錯,我們這里也可以借助scroll-snap輕易實現。

關于scroll-snap,網上教程非常多,MDN 官網也有非常清晰的 demo,如果不熟悉的可以先去了解一下:https://developer.mozilla.org/zh-CN/docs/Web/CSS/scroll-snap-type。

這里就不詳細介紹了。

回到這里,由于整個列表下面只有一層子元素,好像并沒有辦法區分每一屏的臨界點。其實不然,可以想一下,這里每一屏有 8 個元素,也就是第1、9、17...個分別是每一屏的第一個元素,是不是可以以這些元素為標識(吸附對象)呢?

首先要在滾動容器下定義一下。

.wrap{
  scroll-snap-type: x mandatory;
}

然后給第1、9、17...個元素添加吸附對象,這里可以用nth-child選擇器。

.item:nth-child(8n+1){
  scroll-snap-align: start;
}

效果如下(為了區分,把每一屏的第一個元素背景做了高亮)。

還可以多添加點元素,多切幾屏看看效果:

完整代碼可以參考:

  • CSS columns (juejin.cn)[1]
  • CSS column (codepen.io)[2]

四、CSS 實現的優勢和總結

相對于傳統的 JS實現來說,有哪些好處呢?

  • 少了一層嵌套容器,業務邏輯會根據干凈。
  • 自適應強,可以根據需求選擇固定列數或者固定寬度,JS往往只能根據數量去分組。
  • 不會報錯,想想看,JS中的數組經常會出現xxx.slice is not function這樣的錯誤,輕則警告,總則整個頁面白屏。
  • 布局足夠靈活,想橫向滾動就橫向滾動,想縱向滾動就縱向滾動,而JS方式往往還需要改變數組形態。

有這么多好處還不趕緊用起來?下面再來回顧一下columns布局。

  • columns布局,又稱“多列”布局(或者“分欄”布局),可以將默認的文本流輕易分成多欄,非常類似以前的報刊讀物排版。
  • column可以通過寬度(column-width)去自動分割,或者通過指定數量(column-count)將布局分成多少欄。
  • column-gap可以設置分欄之間的空隙,默認是有間隔的。
  • column-rule可以設置分隔線,這種分割線是不占據空間的。
  • columns布局使用場景比較有限,但是幾乎無法被替代。

多想象一下,其實可以有更多的使用場景,雖然本來并不是做這個事情的。

[1]CSS columns (juejin.cn): https://code.juejin.cn/pen/7293927297596260379。

[2]CSS column (codepen.io): https://codepen.io/xboxyan/pen/RwvPLEM。

責任編輯:姜華 來源: 前端偵探
相關推薦

2020-03-26 10:43:57

CSS Grid Ge Grid代碼

2010-08-24 11:00:55

DIV CSS

2017-10-10 15:52:17

前端FlexboxCSS Grid

2010-08-17 11:12:18

DIV CSS

2010-09-14 17:07:26

DIV浮動定位CSS

2023-02-07 09:01:22

CSS

2022-10-13 09:01:24

GridCSS二維布局

2019-04-03 13:00:27

CSSBFC前端

2010-08-23 15:22:56

CSSfloat

2024-04-09 10:10:23

GridCSS網格

2022-10-08 00:02:00

CSS工具系統

2021-12-01 09:53:46

CSS 技巧代碼重構

2010-09-09 13:12:54

CSSfloatDIV

2010-09-02 13:53:58

CSS Sprites

2020-07-01 08:36:43

CSS規范web

2010-09-13 16:22:19

ulliCSS

2010-08-30 14:03:59

CSS

2022-05-26 00:06:19

CSSFirefoxElectron

2010-09-02 11:18:46

CSSfloatposition

2010-09-09 10:56:56

CSS
點贊
收藏

51CTO技術棧公眾號

成人免费三级在线| 亚洲性人人天天夜夜摸| 91精品久久久久久久91蜜桃| 青青草原网站在线观看| 欧美一级特黄aaaaaa大片在线观看| aa亚洲婷婷| 中文综合在线观看| 伦伦影院午夜理论片| xxx欧美xxx| 亚洲欧美日韩国产综合| 久久波多野结衣| 97久久人国产精品婷婷| 在线亚洲激情| 久久亚洲私人国产精品va| 日本一级片在线播放| 精品日韩视频| 亚洲综合一区二区| 亚洲乱码国产乱码精品天美传媒| 亚洲av色香蕉一区二区三区| 日本不卡中文字幕| 午夜欧美不卡精品aaaaa| 一级在线观看视频| 日本午夜精品| 日韩视频永久免费| 色啦啦av综合| 少妇一区视频| 富二代精品短视频| 97干在线视频| 黄色小网站在线观看| 久久免费视频一区| 国产精品乱码| 国产黄色免费大片| 麻豆精品精品国产自在97香蕉 | 日本中文字幕在线观看| 91在线码无精品| 91中文字精品一区二区| 国产精品久久欧美久久一区| 久久经典综合| 97在线视频观看| 欧美成人三级在线观看| 天天操夜夜操国产精品| 色妞久久福利网| 娇妻被老王脔到高潮失禁视频| 日本妇女一区| 亚洲黄色www网站| 免费啪视频在线观看| 精品视频在线观看免费观看| 欧美日韩夫妻久久| 午夜免费福利在线| 粉嫩91精品久久久久久久99蜜桃| 日韩欧美在线看| 久久美女福利视频| 中国色在线日|韩| 欧美日韩亚洲网| 91视频最新入口| 伊人久久视频| 91福利社在线观看| 国产一级做a爰片久久| 91久久久久久白丝白浆欲热蜜臀| 欧美中文字幕一区二区三区| 欧美日韩怡红院| 99精品在免费线偷拍| 欧美性欧美巨大黑白大战| 欧美三级午夜理伦三级富婆| 九七影院97影院理论片久久 | 亚洲丝袜美腿综合| 视频一区二区视频| 日本成人不卡| 精品国产乱码久久久久久婷婷| av日韩一区二区三区| 17videosex性欧美| 精品久久香蕉国产线看观看亚洲 | 国产一区在线精品| 91亚色免费| 蜜臀av免费在线观看| 91在线视频免费91| 日韩影视精品| 国产三区在线观看| 亚洲大型综合色站| 丁香婷婷激情网| 国产欧美视频在线| 亚洲成人xxx| 性欧美一区二区| 一区二区三区午夜视频| 国外成人性视频| 国产又黄又猛又粗又爽| 麻豆国产精品777777在线| 97久久精品午夜一区二区| 无码国产精品96久久久久| 国产欧美日韩精品a在线观看| 亚洲一区三区| 91在线三级| 欧美性生活影院| 稀缺呦国内精品呦| 欧美理论电影大全| 欧美黄色性视频| 黄色片中文字幕| 久久99国产精品成人| 国产麻豆日韩| 91社区在线观看播放| 亚洲制服欧美中文字幕中文字幕| 精品久久久久久久免费人妻| 国产aa精品| 亚洲色图第一页| 九九精品在线观看视频| 免费精品视频在线| 极品尤物一区二区三区| 动漫一区在线| 在线影院国内精品| 国产高清成人久久| 欧美一区二区三区久久精品茉莉花| 欧美亚洲国产视频小说| va婷婷在线免费观看| 久久久久久久久久电影| 青青青在线视频播放| 欧美成人三级| 亚洲精品一区av在线播放| 欧美日韩精品一区二区三区视频播放| 日韩黄色在线观看| 国产区欧美区日韩区| 精品国产丝袜高跟鞋| 色88888久久久久久影院野外 | 国产精品久久无码一三区| 91在线看国产| 无码av天堂一区二区三区| 国产日韩欧美中文在线| 最近2019免费中文字幕视频三| 99精品视频99| 成人性色生活片| 国产91porn| 成人精品视频在线观看| 一区二区中文字幕| 91在线视频在线观看| www.欧美精品一二区| 97在线国产视频| 日韩一区二区三区高清在线观看| 日韩在线观看免费全集电视剧网站| 亚洲天堂视频网站| 99r精品视频| 国产av麻豆mag剧集| 8x国产一区二区三区精品推荐| 欧美成人免费网| 91中文字幕在线视频| 国产精品免费丝袜| 黄色永久免费网站| 色小子综合网| 91精品国产综合久久香蕉最新版 | 在线观看免费视频国产| 午夜久久99| 99视频在线| 久草在线视频资源| 亚洲国产精品福利| 久久久久久久久影院| 91一区二区在线观看| 日本精品免费在线观看| 国产毛片一区二区三区| 国产精品偷伦一区二区| 亚乱亚乱亚洲乱妇| 欧美一区二区三区白人| 免费视频一二三区| 播五月开心婷婷综合| 国产精品无码一区二区在线| 亚洲动漫在线观看| 国产精品国产福利国产秒拍 | 亚洲精品456| 国产高清在线不卡| 免费大片在线观看www| 日韩天堂在线观看| 1级黄色大片儿| 国产亚洲va综合人人澡精品| 中文字幕66页| 欧美日韩国产综合网| 久久久人人爽| 最新日韩一区| 九九热这里只有精品免费看| 色窝窝无码一区二区三区| 色综合天天综合网国产成人综合天 | 国产免费一级视频| 国产精品二三区| 香蕉视频1024| 久久国产一二区| 亚洲欧洲国产日韩精品| 超碰一区二区三区| 国产精品成人国产乱一区| av网址在线| 日韩高清免费在线| 中文字幕在线观看视频一区| 一区二区在线观看不卡| 香蕉视频黄色在线观看| 韩国av一区二区三区在线观看| 亚洲 欧美 综合 另类 中字| 神马久久一区二区三区| 91丨九色丨国产| 蜜桃视频成人m3u8| 久久久欧美一区二区| 国产一级二级三级在线观看| 欧美一级欧美三级| 五月婷婷激情视频| 夜夜嗨av一区二区三区四季av| 在线观看福利片| 国产成人精品午夜视频免费| 欧美性猛交久久久乱大交小说| 综合精品一区| 三级三级久久三级久久18| 中文字幕一区二区三区中文字幕 | 极品美女扒开粉嫩小泬| 国产精品久久久久久久久久10秀| 九色91视频| 亚州一区二区| 国产在线观看精品一区二区三区| 极品av在线| 美女福利视频一区| 成年女人的天堂在线| 亚洲国产成人精品电影| 99久久国产热无码精品免费| 在线观看区一区二| 日韩精品一区二区在线播放| 亚洲天天做日日做天天谢日日欢| www.久久av| jlzzjlzz亚洲日本少妇| 亚洲18在线看污www麻豆| 日韩在线播放一区二区| 国产视频一视频二| 欧美日韩亚洲三区| 欧美 国产 精品| 天天综合网网欲色| 午夜精品一区二区在线观看的| 欧美日韩麻豆| 国产精品有限公司| 中文字幕久久精品一区二区| 亚洲综合精品伊人久久| 日韩精品第二页| 国产精品高潮呻吟久久av黑人| 在线最新版中文在线| 午夜精品一区二区三区av| 男人天堂亚洲天堂| 欧美激情高清视频| 久操av在线| 国内精品国产三级国产在线专| 26uuu亚洲电影在线观看| 久久影院免费观看| 欧美另类极品| 久久精品电影网站| 国内精品久久久久久野外| 精品国内亚洲在观看18黄| 欧美私人网站| 日韩中文娱乐网| 老司机在线视频二区| 久久亚洲精品成人| 成码无人av片在线观看网站| 欧美精品在线观看91| 日本无删减在线| 久久久久久国产免费 | 国产精品午夜视频| 福利一区和二区| 国产欧美日韩精品在线观看 | 欧美一区欧美二区| 精品黑人一区二区三区国语馆| 日韩一区二区三区三四区视频在线观看 | 免费在线午夜视频| 久久这里只有精品99| 性欧美videos高清hd4k| 久久欧美在线电影| gay欧美网站| 国产精品综合不卡av| 日韩精品成人在线观看| 国产一区二区三区四区五区在线 | swag国产精品一区二区| 国产一区二区三区四区五区在线 | 成人免费视频国产免费| 欧洲一区二区三区在线| 91女人18毛片水多国产| 日韩精品一区二区三区视频| 午夜影院免费体验区| 亚洲人高潮女人毛茸茸| 欧美高清视频| 国内精品免费午夜毛片| 91tv亚洲精品香蕉国产一区| 成人黄色av免费在线观看| 9999久久久久| 欧美一区二视频在线免费观看| 99久久www免费| 欧美精品卡一卡二| 全部av―极品视觉盛宴亚洲| 色哟哟在线观看视频| 久久在线观看免费| 精品国产视频在线观看| 粉嫩老牛aⅴ一区二区三区| 亚洲天堂国产精品| 亚洲第一色在线| 91亚洲精选| 欧美亚洲在线视频| 免费看日产一区二区三区| 欧美极品jizzhd欧美| 中文字幕一区二区三三| 北条麻妃av高潮尖叫在线观看| 国产一区二区三区免费播放| 白丝女仆被免费网站| 一区二区三区视频在线观看| 免费看一级视频| 精品福利av导航| 毛片在线看网站| 日本成熟性欧美| 亚洲视频一起| 亚洲一区在线直播| 久久久久国产精品一区二区 | 国产精品久久久久久久久毛片 | 日本一区二区中文字幕| 精品在线一区| 欧美三级乱码| 亚洲精品综合在线观看| 国产日韩成人精品| 国产香蕉视频在线| 欧美成人伊人久久综合网| 91社区在线| 日本亚洲欧洲色α| 欧美色资源站| 日韩极品视频在线观看 | 国产精品无码在线| 夜夜嗨av一区二区三区| 国产精品一级二级| 永久免费精品影视网站| 亚洲最大网站| 国产一区二区三区高清| 国内精品福利| 无码人妻一区二区三区在线视频| 国产精品进线69影院| 探花国产精品一区二区| 亚洲深夜福利网站| 精品91久久| 鲁丝一区二区三区免费| 国产欧美一区二区三区国产幕精品| 黄色片子免费看| 亚洲欧美电影一区二区| 国产精品欧美激情在线| 中文字幕免费精品一区高清| 欧美日韩五码| 日本在线视频不卡| 国产一级一区二区| 亚洲av无码国产精品久久| 欧美日韩亚洲成人| 亚洲色图 校园春色| 69视频在线免费观看| 看全色黄大色大片免费久久久| 久艹在线免费观看| aaa欧美日韩| 日韩av大片在线观看| 精品亚洲一区二区| 成人av免费电影网站| 欧美精品亚洲| 日本视频一区二区三区| 长河落日免费高清观看| 欧美丝袜第三区| 久草资源在线| 国产精品精品软件视频| 亚洲承认在线| 日韩无码精品一区二区| 精品女厕一区二区三区| 国产最新视频在线观看| 国产精品人成电影在线观看| 久久久影院免费| 亚洲精品一二三四| 香蕉加勒比综合久久| 日韩二区三区| 国产精品久久久久久久久久99 | 欧美成人精品xxx| 成人资源在线| 欧美一级片中文字幕| 中文字幕视频一区| 亚洲精品成av人片天堂无码| 91成人免费观看网站| 欧美综合视频| 妖精视频在线观看| 欧美日韩精品国产| 98在线视频| 国产精品一区二区三区不卡| 天堂成人免费av电影一区| 91香蕉一区二区三区在线观看| 精品国产一区二区三区忘忧草| 欧美13videosex性极品| 性欧美大战久久久久久久免费观看| 激情国产一区二区| www.av麻豆| 色视频www在线播放国产成人| 成人高潮a毛片免费观看网站| 色诱视频在线观看| 亚洲人成电影网站色mp4| 午夜在线视频免费| 国产日韩av高清| 99伊人成综合| 美国黄色片视频| 亚洲激情视频在线观看| 久久av影院| 亚洲熟妇国产熟妇肥婆| 中文字幕在线免费不卡| 欧美亚洲日本| 成人羞羞视频免费| 日产国产欧美视频一区精品| 久久久久久久久久久久国产| 一本大道亚洲视频|