)探索了当时的新闻多柱布局模块以来,已经过去了近二十年。 更新的,可自由使用的在线版本,超越CSS的重新访问,提供了当代的观点。我的印刷背景很可能激发了我对此CSS功能的最初热情,从而使柱状内容无需多余标记。 尽管在我的工作中使用了持续的使用,但CSS列仍然令人惊讶的是未被充分利用。 为什么?
规范差距这仍然是正确的。 选择性样式,例如使用
的交替背景颜色,是不可能的。虽然列规则允许变化(虚线,虚线,固体,凹槽,山脊),但鉴于他们的近乎相似的引入,缺乏支持令人困惑。 这些缺陷存在,但它们并没有完全解释这种有价值工具的广泛忽视。
:nth-column()
历史浏览器不一致border-style
border-image
较旧的浏览器通常会忽略不支持的列属性。 但是,多列布局的早期采用与跨浏览器一致性并不是许多开发人员关注的时期。 虽然最初的浏览器支持不一致,尤其是关于内容中断,但现代浏览器现在提供了广泛的兼容性。然而,我与之交谈的开发人员之间对CSS列的感知仍然存在。 尽管需要改进,但这不应阻碍其当前功能性方面的使用。
仔细考虑至关重要,但这不应该是威慑。 真正的罪魁祸首是糟糕的设计选择,例如不适当地将列应用于没有结构元素的大量文本。 标题,图像和引号可以有效地跨越列,从而提高可读性。 结合容器查询和现代文本尺寸单元,几乎没有理由避免多列布局。
>创建列存在两个主要方法:指定column-count
或定义column-width
,让浏览器确定列计数。 我更喜欢column-width
,设置一个宽度(例如18rem),并让浏览器优化列的数量。
column-gap
(沟口)控制列之间的间距,理想情况下,使用rem
添加了可自定义厚度和column-rule
的视觉分离。 这种简单的语法有助于其易用性。
border-style
在现代CSS
>,容器查询,媒体查询,响应式设计的媒体查询,,,rem
,:has()
,CSS GRID GRID和FLEXBOX。 这些进步增强了多列布局的功能。calc()
clamp()
>和rem
,在列内启用响应式文本尺寸。 calc()
>允许根据内容创建有条件的列。 仅当有足够的容器空间可用时,容器查询才能实现列。 与CSS网格或Flexbox集成更具创意的布局。clamp()
>
:has()
实用应用:响应迅速的文章布局
html很简单:a<figure></figure>
元素,包含标题和段落,以及可选的是
<main></main>
>多列布局样式用于使用<figure></figure>
(40CH),
<main><h1>About Patty</h1> <p>…</p></main><img alt="重新访问CSS多列布局" >
flexbox仅在包含一个<main></main>
> column-width
的情况下应用于max-width
>
main { margin-inline: auto; max-width: 100ch; column-width: 40ch; column-gap: 3rem; column-rule: .5px solid #98838F; }
>这消除了对媒体查询的需求。 文本大小使用容器查询(<section></section>
)和<figure></figure>
适应响应缩放:
section:has(> figure) { display: flex; flex-wrap: wrap; gap: 0 3rem; }
结果是一种灵活的布局,可适应屏幕尺寸和内容,并有效地利用多列布局。min-width: min(100%, 30rem)
>
>许多文章突出显示了多列布局的缺陷,尤其是滚动问题。 column-span
属性(对于标题,图像,引号跨度列)会大大减轻此功能,并仔细的内容设计以最大程度地减少滚动。
使用
对多列布局的更新视角break-after: column;
以上是重新访问CSS多列布局的详细内容。更多信息请关注PHP中文网其他相关文章!