搜索
首页web前端css教程重新访问CSS多列布局

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
模拟鼠标运动模拟鼠标运动Apr 22, 2025 am 11:45 AM

如果您曾经在现场演讲或课程中必须显示一个互动动画,那么您可能知道它并不总是那么容易与您的幻灯片进行互动

通过Astro Action和Fuse.js为搜索提供动力通过Astro Action和Fuse.js为搜索提供动力Apr 22, 2025 am 11:41 AM

对于Astro,我们可以在构建过程中生成大部分网站,但是有一小部分服务器端代码可以使用Fuse.js之类的搜索功能来处理搜索功能。在此演示中,我们将使用保险丝搜索一组个人“书签”

未定义:第三个布尔值未定义:第三个布尔值Apr 22, 2025 am 11:38 AM

我想在我的一个项目中实现一条通知消息,类似于您在保存文档时在Google文档中看到的信息。换句话说,一个

捍卫三元声明捍卫三元声明Apr 22, 2025 am 11:25 AM

几个月前,我正在使用黑客新闻(就像一个人一样),并且遇到了一篇(现已删除的)文章,内容涉及不使用if语句。如果您是这个想法的新手(就像我

使用网络语音API进行多语言翻译使用网络语音API进行多语言翻译Apr 22, 2025 am 11:23 AM

自科幻小说以来,我们就幻想着与我们交谈的机器。今天这很普遍。即便如此,制造的技术

JetPack Gutenberg块JetPack Gutenberg块Apr 22, 2025 am 11:20 AM

我记得当古腾堡被释放到核心时,因为那天我在WordCamp我们。现在已经过去了几个月,所以我想我们越来越多的人

在VUE中创建可重复使用的分页组件在VUE中创建可重复使用的分页组件Apr 22, 2025 am 11:17 AM

大多数Web应用程序背后的想法是从数据库中获取数据,并以最佳方式将其呈现给用户。当我们处理数据时

使用'盒子阴影”和剪辑路径一起使用'盒子阴影”和剪辑路径一起Apr 22, 2025 am 11:13 AM

让我们对您可以做一些有意义的事情做一些逐步的情况,但是您仍然可以用CSS欺骗来完成它。在这个

See all articles

热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

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

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版