非常教程

CSS参考手册

多列布局 | Multi-column Layout

CSS 列 | CSS Columns

CSS列标准是一个CSS模块,增加了对多列布局的CSS支持。通过CSS Columns引入的属性,无需手动编码复杂而脆弱的结构,生成这些柱状布局变得更加容易和可靠。支持包括建立一个布局的列数,以及内容应该如何流动列,间隙大小,列分隔线(称为列规则),等等。

css多列布局基础

用于生产CSS列布局的三个关键特性是column-countcolumn-widthcolumn-gap。其他属性提供了一些方法来微调在使用这些属性构建的布局结构中如何组织和渲染事物的细节,但是要弄清楚这四者通常处理的地方的工作。

表示列数及其宽度

前两个特性,column-count并且column-width,都是最重要的,最有可能产生误导。理解这一点很重要:

  • column-count属性指定用于呈现文本的最大列数。浏览器会考虑可用的水平空间量,值的大小column-width和值column-gap,然后绘制可以放入可用空间的最大列数。
  • column-width属性指定了一个给定值的最小列宽<length>。浏览器创建的每一列至少是这个宽,但可能更宽。在确定了要绘制的列数之后,剩余的水平空间可以由列中的浏览器划分并且添加到它们的宽度。

那么,在某种程度上,它们更像是建议而不是硬性规定。一旦你考虑它的逻辑,这是有道理的。

这使得CSS多列布局能够响应和适应屏幕宽度,同时也支持页面的整体布局和作者的意图。当包含空间(或屏幕)的宽度缩小时,浏览器将减少它创建的列数,调整剩余列的宽度以确保整个宽度与预期的一致。

另一件你可以控制的是柱列之间的距离,也就是列间隙。列间隙可以使用column-gap属性来控制。按照惯例,默认的差距是1em,但是在任何给定的浏览器中,这可能是也可能不是这样,所以如果对你很重要,明确地设置它。与列数和宽度不同,列间距不会被浏览器调整,因为它会尝试将内容放入可用空间。

看看下面的例子,你可以使用顶部的范围控件来调整包含元素的列的宽度。

多列布局中的文本包装

column-fill属性也影响布局。默认情况下,浏览器将尽可能多地创建适当大小的列,然后平衡它们之间的内容,使每列大致相同。但是,如果您希望浏览器将第一列填充到最大高度,然后再转到下一列,则可以设置column-fillauto(而不是默认值balance)。

但是,如果对列高没有限制,则只会创建一个列,因为它永远不会达到其最大高度以触发包装到第二列,所以请确保将列放置在限制其列的容器中高度,通过使用heightmax-height

虽然CSS规范定义的break-beforebreak-afterbreak-inside属性来帮助跨区域,列或页面边界元素的控制包装纸,这些属性一般不会广泛实施而此时在现实世界中的代码使用。

列外观

您可以指定使用在每列间隙可以在布局的渲染输出每列之间绘制的中心绘制的列规则分界线column-rule-stylecolumn-rule-widthcolumn-rule-color性能,或简写属性column-rule

参照系

CSS属性

  • break-after
  • break-before
  • break-inside
  • column-count
  • column-fill
  • column-gap
  • column-rule
  • column-rule-color
  • column-rule-style
  • column-rule-width
  • column-span
  • column-width
  • columns

指导

使用CSS多列布局关于如何使用多列构建布局的详细教程。

规范

Specification

Status

Comment

CSS Multi-column Layout Module

Candidate Recommendation

Initial definition

浏览器兼容性

Feature

Chrome

Firefox (Gecko)

Internet Explorer

Opera

Safari (WebKit)

Basic support

(Yes) -webkit

9 (9)-moz 52 (52)

10

11.10 15-webkit

3.0 (522)-webkit

Feature

Android

Firefox Mobile (Gecko)

IE Phone

Opera Mobile

Safari Mobile

Basic support

2.1-webkit

22.0 (22)-moz 52.0 (52)

10

11.5 32-webkit

3.2-webkit

CSS

层叠样式表( Cascading Style Sheets )是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS目录

1.动画和转换 | Animations & Transitions
2.背景和边框 | Backgrounds & Borders
3.基本框模型 | Basic Box Model
4.基本用户界面 | Basic User Interface
5.框对齐 | Box Alignment
6. 级联和继承 | Cascading & Inheritance
7.颜色 | Color
8. 合成与混合 | Compositing & Blending
9.条件和规则 | Conditional Rules
10.计数器样式 | Counter Styles
11.设备适配 | Device Adaptation
12.扩展 | Extensions
13.滤镜效果 | Filter Effects
14.灵活的框布局 | Flexible Box Layout
15.字体 | Fonts
16.片段模块 | Fragmentation
17.全屏 API | Fullscreen API
18. 生成内容 | Generated Content
19.网格布局 | Grid Layout
20.图像值 | Image Values
21.初始线格局 | Inline Layout
22.列表和计数器 | Lists & Counters
23.逻辑属性 | Logical Properties
24.面具 | Masking
25.媒体查询 | Media Queries
26.杂项 | Miscellaneous
27.Miscellaneous Level 1
28.Miscellaneous Level 2
29.运动路径 | Motion Path
30. 多列布局 | Multi-column Layout
31.命名空间 | Namespaces
32.项目模型 | Object Model View
33.网页媒体 | Paged Media
34.定位布局 | Positioned Layout
35.伪元素 | Pseudo-
36.节奏大小 | Rhythmic Sizing
37. Ruby布局 | Ruby Layout
38.可缩放矢量图形 | Scalable Vector Graphics
39.滚动快照 | Scroll Snap
40.选择 | Selectors
41.形状 | Shapes
42.文本 | Text
43.文字装饰 | Text Decoration
44.变换 | Transforms
45.值和单位 | Values & Units
46.变量 | Variables
47.写入模型 | Writing Modes
48.CSS 教程
49.CSS 创建
50.CSS Id 和 Class选择器
51.CSS 简介
52.CSS 盒子模型
53.CSS Table(表格)
54.CSS 列表样式(ul)
55.CSS 链接(link)
56.CSS Fonts(字体)
57.CSS Text(文本)
58.CSS Backgrounds(背景)
59.CSS Display(显示) 与 Visibility(可见性)
60.CSS 尺寸 (Dimension)
61.CSS 分组和嵌套
62.CSS 轮廓(outline)属性
63.CSS Border(边框)
64.CSS 图像透明/不透明
65.CSS 导航栏
66.CSS 伪元素
67.CSS 伪类
68.CSS Float(浮动)
69.CSS Position(定位)
70.CSS 总结
71.CSS 属性选择器
72.CSS 媒体类型
73.CSS 图像拼合技术
74.CSS 实例
75.CSS 组合选择符
76.响应式 Web 设计 – 框架
77.响应式 Web 设计 – 视频(Video)
78.CSS 提示工具(Tooltip)
79.CSS 布局 Overflow
80.CSS 计数器
81.CSS 表单