CSS之Multi-columns的列数和列宽

“Multi-column”译成中文就是“多列”,这个”Multi-column”是W3C给CSS3增加的一个多列布局模块(CSS Multi-column Layout Module)。它主要应用在文本的多列布局方面,对于文本的多列布局我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示

这里写图片描述

1. 列数和列宽:column-count;column-width;columns

2. 列的间距和分列样式:column-gap;column-rule-color;column-rule-style;column-rule-width;column-rule

3. 列的分栏符:break-before;break-after;break-inside

4. 跨越列:column-span

5. 填充列:column-fill

一. column-count

作用:column-count作用主要是用来描述一个Multi元素的列数

语法:column-count: auto || 数字

取值说明:

1. auto:此值为column-count的默认值,当column-count没有设置任何值时,默认的值就是auto,此时的栏数是根据别的参数来确定的,比如说列宽width

2. 数字:这里可以是任何正整数数字,但不可以带有任何单位,用来表示Multi元素分列的列数

HTML:

这里写图片描述

CSS:

这里写图片描述

首先看第一种情况:column-count:auto。前面也说过,当column-count取值为auto时,元素分栏是由其他属性决定的比如说,比如这里的column-width,具体我们来看代码如何实现

这里写图片描述

其实column-count值为auto时,可以不要显式的设置,因为其默认值就是auto,所以上面的代码中大家可以尝试的把column-count:auto这个去掉,看看结果不是不是一样。这里有一点需要说明的就是当只用column-width来控制显示的列数时,其column-width的取值最好不要超过下面公式计算出来的值

这里写图片描述

就拿本例来说,n=2,font-size:14px;那么column-width的值应该是(400-14)/2=193px(Opera下最好再减1个px,当然如果你是中文的话也最好这样做,减1-2px,至于为什么,我也说不清楚。);当你把column-width值大于193px时,只会显示一列

这里写图片描述

上面是column-count取值为auto的使用,现在一起来看其取值为具体数值时的应用,基于前面的实例,把列数换成三列

这里写图片描述

这里写图片描述

二. column-width

作用:column-width属性是用来控制Multi元素的列宽

语法:column-width: <length> || auto

取值说明:

1. auto:此值是其默认值。如果column-width设置值为auto或者没有显式的设置值时,此时Multi元素的列宽将由其他属性来决定,比如前面的实例就是由column-count来决定的(当然column-count的值不能为auto了,不然是无效果的)

2. <length>:此值使用固定值来设置Multi元素的宽度,其单位可以是px或者em;但不能是负值

首先来看一个普通的例子,这里所说的普通就是指元素分列的列宽不指定确定的宽度值,并且其他参数都为默认值

这里写图片描述

从效果中清楚的知道,给Multi元素仅设置auto是没有任何效果的,因为此时的值是需要根据元素的列数来定的,在这里并没有指定列数的值,所以默认为1列

在上面的实例的基础上,变通一下,给他加上一个column-count:2

这里写图片描述

这里写图片描述

注:当column-width为auto时需要配合column-count的设置才能有分列效果

总结:count和width两个属性不能同时都为auto,只能其中一个值为auto

特例:当列的宽度大于元素容器的宽度的情况

这里写图片描述

这里写图片描述

上图效果告诉我们,虽然设置的列宽大于元素容器的宽度,但并不会让元素内容按列的宽度进行布局从而撑破元素容器,而是会把列宽降到与元素容器宽度相等

三. columns

作用:columns是把前面两个属性合并在一起使用

语法:columns: column-width || column-count

取值说明:olumn-width和column-count分别是指列的宽度和列数

这里写图片描述

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux] 修改系统默认编码

locale 命令 locale 命令用以设置程序运行的语言环境。 locale 设置语言环境的命名规则为 Language_area.charset&#xff0c;例如 en_US.utf8 表示语言为英语&#xff0c;地区为美国&#xff0c;字符集为 UTF-8。 查看当前字符映射文件 $ locale charmapUTF-8 查看可用公共语言…

Taro+react开发(44)taro基本使用

Taro.Component Taro.Component 是一个抽象基础类&#xff0c;因此直接引用 Taro.Component 几乎没意义。相反&#xff0c;你通常会继承自它&#xff0c;并至少定义一个 render() 方法。通常你定义一个 Taro 组件相当于一个纯 JavaScript 类&#xff1a;class Welcome extends …

人生的34个好习惯

1.不说“不可能”三个字2.凡事第一反应&#xff1a;&#xff1a;找方法&#xff0c;而不是找借口3.遇到挫折大声对自己说&#xff1a;“太棒了”4&#xff0c;不说消极的话&#xff0c;不落入消极情绪&#xff0c;一旦出现立即正面处理5.凡事先订立目标&#xff0c;并且尽量制作…

homebrew长时间停在Updating Homebrew 这个步骤

在国内的网络环境下使用 Homebrew 安装软件的过程中可能会长时间卡在 Updating Homebrew 这个步骤。 例&#xff1a;执行 brew install composer 命令 ➜ ~ brew install composer Updating Homebrew... # 如果碰到长时间卡在这里&#xff0c;参考以下 2 种处理方法 方法 1&…

bash命令行中带通配符参数何时展开??

在bash中执行的命令&#xff0c;有些参数经常会带个通配符的&#xff0c;但是你知道这个参数是何时展开的吗&#xff1f; 先来看下简单的bash小代码&#xff1a; [zcmdebug #88]$cat del.sh #!/bin/bashif [ $# -lt 2 ]; thenecho "Usage: $0 <separator> <fil…

CSS之Multi-columns的column-gap和column-rule

column-gap就相当于两列之间的空白处&#xff0c;而column-rule就相当于一条分隔线&#xff0c;换句话说呢&#xff1f;column-gap就像我们web页面中的margin一样&#xff0c;而column-rule就类似于border&#xff0c;不过他们只是存在相邻两列之间 另外column-gap和column-ru…

Redis多机功能介绍

Redis多机功能目的&#xff1a;以单台Redis服务器过渡到多台Redis服务器 Redis单机在生产环境中存在的问题 1、内存容量不足 Redis使用内存来存书数据库中的数据&#xff0c;但是对于一台机器来说&#xff0c;硬件的内存容量是有限的&#xff0c;当我们需要存储的数据量超过机器…

Taro+react开发(43)重新渲染置空

changeTab type > {this.setState({curType: type,pageIndex: 1,getStauList: []},() > {this.getStatusList();});};

C#设计模式

C#设计模式 (1) .NET设计模式系列文章 作者&#xff1a;TerryLee 出处&#xff1a;http://terrylee.cnblogs.com/ (2) 设计模式 作者&#xff1a;吕震宇出处&#xff1a;http://www.cnblogs.com/zhenyulu/ (3) Design & Pattern 作者&#xff1a;张逸:晴窗笔记 - (张逸)…

watch命令

watch是一个非常实用的命令&#xff0c;基本所有的Linux发行版都带有这个小工具&#xff0c;如同名字一样&#xff0c;watch可以帮你监测一个命令的运行结果&#xff0c;省得你一遍遍的手动运行。在Linux下&#xff0c;watch是周期性的执行下个程序&#xff0c;并全屏显示执行结…

CSS之Multi-columns的跨列

column-span主要用来定义一个分列元素中的子元素能跨列多少列。前面大家都知道column-width&#xff0c;column-count等属性让一元素分成多列&#xff0c;不管里面元素如何排放顺序&#xff0c;他们都是从左向右的放置内容&#xff0c;但有时我们需要基中一段内容或一个标题不进…

详解Microsoft Office Communication Server (OCS) 2007 标准版部署(上)

详解Microsoft Office Communication Server (OCS) 2007 标准版部署&#xff08;上&#xff09;前几篇博文中介绍了LCS今天我们来部署ocs&#xff0c;它是lcs的升级版&#xff0c;功能比lcs多个很多&#xff0c;可以视频&#xff0c;多人会议&#xff0c;等多项功能。但是安装起…

awk按分隔符的不同取出不同的列

看下bash代码&#xff1a; #!/bin/bash# get "orderno" and "order_money" from datafile of thisside or otherside, save the result to file xxx.bak# 把金额的单位全部化为&#xff1a;元function get_orderNo_orderMoney(){if [ $1 "|" ];…

Taro+react开发(45)taro中组件生命周期

组件生命周期# 每一个组件都有几个你可以重写以让代码在处理环节的特定时期运行的“生命周期方法”。方法中带有前缀 will 的在特定环节之前被调用&#xff0c;而带有前缀 did 的方法则会在特定环节之后被调用。装载(Mounting)# 这些方法会在组件实例被创建和插入 DOM 中时被调…

Linux命令 - watch

watch命令 功能 execute a program periodically, showing output fullscreen 周期性执行命令并全屏显示结果安装 brew install watch (mac os) 用法 watch command - 基础用法 $ watch date "%Y-%m-%dT%H:%M:%S[%Z]" Every 2.0s: date "%Y-%m-%dT%H:%M:%…

CSS之浮动(一)

1. 浮动出现的意义其实只是用来让文字环绕图片而已&#xff0c;仅此而已。而我们目前用浮动实现页面布局本不是浮动该干的事情 2. 浮动的包裹性 撇开浮动的“破坏性”&#xff0c;浮动就是个带有方位的display:inline-block属性 display:inline-block某种意义上的作用就是包…

一个怎样得到treeView值的小例子

阅读全文&#xff1a;http://www.cckan.net/forum.php?modviewthread&tid40 private void treeViewMenu_MouseDown(object sender, MouseEventArgs e) { if (e.Button MouseButtons.Right) { Point ClickPoint new Poi…

jquery miniui , 普加甘特图,流程管理

http://www.miniui.com/docs/quickstart/index.html 普加 甘特图 流程管理 http://www.plusgantt.com/project/demo/Project.html转载于:https://www.cnblogs.com/qq-757617012/p/4021130.html

Taro+react开发(46)taro中环境判断

环境判断 Taro.ENV_TYPE# ENV_TYPE.WEAPP 微信小程序环境ENV_TYPE.SWAN 百度小程序环境ENV_TYPE.ALIPAY 支付宝小程序环境ENV_TYPE.TT 字节跳动小程序环境ENV_TYPE.WEB WEB(H5)环境ENV_TYPE.RN ReactNative 环境ENV_TYPE.QUICKAPP 快应用环境ENV_TYPE.QQ QQ小程序 环境ENV_TYPE…

Linux shell重复执行某命令n次

方法一 for i in {1..10}; do echo "Hello"; done方法二 在~/.bashrc文件中创建一个run函数&#xff08;函数名字随意&#xff09;&#xff1a; function my_repeat() {number$1shiftfor n in $(seq $number); do$done }使./bashrc生效 souce ~/./bashrc示例 run…