目录
>

快速审查属性和值

超越CSS的时候,许多现代CSS功能都不存在:
>我的挑战是创建一个灵活的,无媒体的文章布局,以适应屏幕尺寸以及存在/不存在
About Patty
解决过去的限制
>
首页 web前端 css教程 重新访问CSS多列布局

重新访问CSS多列布局

Mar 07, 2025 pm 04:58 PM

Revisiting CSS Multi-Column Layout

自从我的第一本书《超越CSS

)探索了当时的新闻多柱布局模块以来,已经过去了近二十年。 更新的,可自由使用的在线版本,超越CSS的重新访问,提供了当代的观点。我的印刷背景很可能激发了我对此CSS功能的最初热情,从而使柱状内容无需多余标记。 尽管在我的工作中使用了持续的使用,但CSS列仍然令人惊讶的是未被充分利用。 为什么?

规范差距

多列布局长期以来一直遭受并继续存在重大局限性。 正如雷切尔·安德鲁(Rachel Andrew)(现在是规格编辑者)在五年前强调的那样:不可能直接造型。 JavaScript操纵或对背景,填充和边缘的调整不可用;并且所有柱保持均匀尺寸。 只有列规则提供样式选项。

这仍然是正确的。 选择性样式,例如使用

的交替背景颜色,是不可能的。虽然列规则允许变化(虚线,虚线,固体,凹槽,山脊),但鉴于他们的近乎相似的引入,缺乏

支持令人困惑。 这些缺陷存在,但它们并没有完全解释这种有价值工具的广泛忽视。 :nth-column()历史浏览器不一致border-style border-image较旧的浏览器通常会忽略不支持的列属性。 但是,多列布局的早期采用与跨浏览器一致性并不是许多开发人员关注的时期。 虽然最初的浏览器支持不一致,尤其是关于内容中断,但现代浏览器现在提供了广泛的兼容性。然而,我与之交谈的开发人员之间对CSS列的感知仍然存在。 尽管需要改进,但这不应阻碍其当前功能性方面的使用。>

>可读性和滚动问题

多柱布局的缺乏实用性可能不是源于规范缺陷或实施问题,而是源于可用性挑战。雷切尔·安德鲁(Rachel Andrew)正确地指出了由于长期含量过多的垂直滚动而导致可读性差的潜力。 毫无疑问,这是一种负面的阅读体验。

仔细考虑至关重要,但这不应该是威慑。 真正的罪魁祸首是糟糕的设计选择,例如不适当地将列应用于没有结构元素的大量文本。 标题,图像和引号可以有效地跨越列,从而提高可读性。 结合容器查询和现代文本尺寸单元,几乎没有理由避免多列布局。

>

快速审查属性和值

>

>创建列存在两个主要方法:指定column-count或定义column-width,让浏览器确定列计数。 我更喜欢column-width,设置一个宽度(例如18rem),并让浏览器优化列的数量。

column-gap(沟口)控制列之间的间距,理想情况下,使用单元用于文本大小比例。 rem添加了可自定义厚度和column-rule的视觉分离。 这种简单的语法有助于其易用性。 border-style在现代CSS

中增强了相关性 在超越CSS

超越CSS的时候,许多现代CSS功能都不存在:

和视口单元,高级选择器,例如

>,容器查询,媒体查询,响应式设计的媒体查询,rem:has(),CSS GRID GRID和FLEXBOX。 这些进步增强了多列布局的功能。calc() clamp()

和视口单元,再加上

>和rem,在列内启用响应式文本尺寸。 calc()>允许根据内容创建有条件的列。 仅当有足够的容器空间可用时,容器查询才能实现列。 与CSS网格或Flexbox集成更具创意的布局。clamp()> :has()实用应用:响应迅速的文章布局

>我的挑战是创建一个灵活的,无媒体的文章布局,以适应屏幕尺寸以及存在/不存在

>。 柱状文本可提高可读性,文本大小调整到容器宽度,而不是视口宽度。

html很简单:a<figure></figure>元素,包含标题和段落,以及可选的是

<main></main>>多列布局样式用于使用<figure></figure>(40CH),

(100CH)和自动余量:
<main><h1 id="About-Patty">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工具了。

>

以上是重新访问CSS多列布局的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

使用Redwood.js和Fauna构建以太坊应用 使用Redwood.js和Fauna构建以太坊应用 Mar 28, 2025 am 09:18 AM

随着最近比特币价格超过20k美元的攀升,最近打破了3万美元,我认为值得深入研究创建以太坊

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? 为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? Apr 05, 2025 pm 05:51 PM

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

See all articles