css 分栏布局 columns

简介: css 分栏布局 columns

分栏布局 – 简介

将子元素拆分为列,使用场景并不多,重点掌握 columns 和 column-gap,其他用得少,简单了解下即可。

优点:

不会改变元素原本的display计算值

<ul style = "columns: 2;"> 
    <li>重庆市</li>
    <li>哈尔滨市</li>
    <li>长春市</li>
    <li>兰州市</li>
    <li>北京市</li>
    <li>杭州市</li>
    <li>长沙市</li>
    <li>沈阳市</li>
    <li>成都市</li>
    <li>合肥市</li>
    <li>天津市</li>
    <li>西安市</li>
</ul>

以下为相关属性详解:

columns 列宽和列数

columns是column-width和 column-count的缩写

/* 栏目宽度 */
columns: 18em;

/* 栏目数目 */
columns: auto;
columns: 2;

/* 同时定义宽度和数目,顺序任意 */
columns: 2 auto;
columns: auto 2;

column-width和 column-count都是期望值,最终的分栏表现规则为:统一转换column-count值,哪个值小就使用哪一个。

/* 最终2栏显示 */
.container-1 {
    width: 360px;
    column-count: 2;
    column-width: 100px;
}
/* 最终3栏显示 */
.container-2 {
    width: 360px;
    column-count: 4;
    column-width: 100px;
}

column-width 不支持百分比值

column-gap 分栏间隙

/* 关键字属性值 */
column-gap: normal; 

/* 长度值 */
column-gap: 3px;
column-gap: 3em;

/* 百分比值 */
column-gap: 3%;

gap属性实际上是column-gap属性和row-gap属性的缩写,所以也可以用gap来简化代码(IE暂不支持)

.container {
    columns: 2;
    gap: 1rem;
}

column-rule 分栏分割线

column-rule属性是column-rule-width、column-rule-style和column-rule-color这3个CSS属性的缩写,和border类似。

column-rule: dashed deepskyblue;

效果见 https://demo.cssworld.cn/new/6/1-3.php

column-span 跨栏

  • none表示不横跨多栏,默认值。
  • all表示横跨所有垂直列。

效果见 https://demo.cssworld.cn/new/6/1-4.php

常用于在分栏布局中插入广告

column-fill 分栏填充方式

  • auto的作用是按顺序填充每一列,内容只占用它需要的空间,需配合容器元素的height属性一起使用。
  • balance是默认值,作用是尽可能在列之间平衡内容。在分隔断开的上下文中,只有最后一个片段是平衡的。例如,有多个<p>元素,正好最后一个<p>换行了,那这个<p>元素的内容前后等分,保持平衡。这会造成最后一栏内容较少的问题。
  • balance-all的作用是尽可能在列之间平衡内容。在分隔断开的上下文中,所有片段都是平衡的。该属性值目前没有任何浏览器支持,可以忽略。

效果见 https://demo.cssworld.cn/new/6/1-5.php

break-inside 控制内容中断

  • auto表示元素可以中断。
  • avoid表示元素不能中断。

还可以在页面打印时控制某个元素不跨页。

效果见 https://demo.cssworld.cn/new/6/1-7.php

box-decoration-break 控制装饰中断

兼容性不佳,了解即可。

  • slice为默认值,表示各个元素断开的部分如同被切开一般。
  • clone表示断开的各个元素的样式独自渲染。

【用Firefox浏览器查看】效果见 https://demo.cssworld.cn/new/6/1-8.php

经典应用——两端对齐

只适用于单行的两端对齐

 column-count: 3;
 column-gap: 5%;

效果见 https://demo.cssworld.cn/new/6/1-6.php


经典应用——电子书水平翻页阅读效果

详见 https://www.zhangxinxu.com/wordpress/2017/02/css3-multiple-column-layout-read-horizontal/

目录
相关文章
|
前端开发
CSS3 columns
CSS3 columns
97 0
|
5月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
5月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
5月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
5月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
5月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
5月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示
|
10月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
488 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
9月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
274 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布