列属性
学习 CSS 的列属性。
CSS 列布局
CSS 列布局是一种简单而灵活的方式,用于在页面中添加多栏文本。这在使用响应式设计时特别有用,因为容器元素的宽度可能会随屏幕变化而改变。传统的手动实现方式需要人为控制文本长度,并将其固定在一个元素中,通过空格位置来强行拆分文本为多个标签,这种方式并不基于内容本身。而 CSS 列布局则能自动将内容按需拆分为多列,无需关心列之间的分割点,使布局更加灵活和响应式。
末日列布局
column-count:设置期望的列数。虽然具体应用场景不同,但建议最多使用三列,除非屏幕特别宽或有明确的设计需求。较短的行宽通常更利于阅读,但如果过短,读者视线在行间跳跃频繁,容易疲劳。列数过多也会增加视觉干扰,影响注意力集中。
1.horde-layout-columns { 2 column-count: 3; 3}
可尝试的实验:
- 将列数改为 2。
- 现在尝试设为 7。
- 它是否接受 0 或负数值?试试 100 会怎样?
No configuration found for ID: 007d9fdf36e8e47043af263905d60a2619bbc80fc802d24acf661e65fd585b9c
亡灵列:间距、宽度、分隔线与跨列
column-gap:设置列之间的间距。确保间距足够大,避免读者因未读到的列而分心。分心的读者会让僵尸得逞。
1.horde-layout-columns { 2 column-gap: 1em; 3}
column-rule:在列之间设置一条类似边框的分隔线。其用法与边框类似,包含三个属性值:颜色、样式和宽度。也可以分别使用 column-rule-color、column-rule-style 和 column-rule-width 单独设置。可用的样式与边框一致。虽然可以设计得非常花哨,但简洁清晰通常是最佳选择。过于复杂的分隔线反而会降低可读性,当然,这也意味着让僵尸赢了。
1.horde-layout-columns { 2 column-rule: #0DEAD0 3px solid; 3}
column-span:允许某个元素跨越多列(要么跨全部列,要么不跨)。这在需要让图片、标题、图表、表格或“对抗僵尸”的图示标签跨越多列时非常有用,可以创建新的区块,增强主题清晰度和视觉重点。
1.undead-column-item { 2 column-span: all; 3}
> __活尸之夜小贴士:__ > > 在 Safari 浏览器中使用 `column-span` 时存在一个严重问题:有时会重复显示跨列元素上方和下方的内容。例如,代码中位于跨列元素之后的段落或标题,可能同时出现在该元素的上下方。说实话,有时候真感觉浏览器开发者是希望僵尸赢!

column-width:设置多列的最小宽度。浏览器会尽可能多地排列列,每列至少达到设定宽度,并将剩余空间均匀分配给现有各列。
1.horde-layout-columns { 2 column-width: 5em; 3}
可尝试的实验:
- 改变
column-gap的单位,尝试10%、5vw、10px等。 - 如果分隔线比间距还宽,会发生什么?
- 尝试不同的分隔线样式,如
dotted、dashed、inset。 - 改变
column-width后观察内容如何重新分布。 - 当将
.undead-column-item的column-span改为none时,内容又会如何变化?
No configuration found for ID: 1f2ef4ced920f6bf750e23811cd412c76a20b40e04f1f198a80300d55cac3569
亡灵列群
columns:是 column-count 与 column-width 的快捷属性。
1.horde-layout-columns { 2 columns: 3 400px; 3}
可尝试的实验:
- 如果省略列数,会发生什么?
- 如果省略列宽,又会怎样?
- 尝试不同的数值和单位组合。
No configuration found for ID: af41ed05c01f0d233b3b0389eccf22b23a93fe9f5384fa4013bbf47266cfa1cd
Quiz
哪个属性设置僵尸……嗯……列之间的距离?