Skip to main content

如何使用CSS列进行多列网站布局

为初学者准备的:CSS 速成 (六月 2025)

为初学者准备的:CSS 速成 (六月 2025)
Anonim

多年来,CSS浮动一直是创建网站布局的一个挑剔但必要的组件。如果您的设计需要多列,则转向浮点数。这种方法的问题在于,尽管Web设计人员/开发人员在创建复杂的站点布局时表现出了令人难以置信的独创性,但CSS浮动从未真正意图以这种方式使用。

虽然浮动和CSS定位肯定会在未来许多年内在网页设计中占有一席之地,但包括CSS Grid和Flexbox在内的更新的布局技术现在为网页设计师提供了创建网站布局的新方法。另一种显示出巨大潜力的新布局技术是CSS Multiple Columns。

CSS Columns现在已经存在了几年,但是在旧浏览器(主要是旧版本的Internet Explorer)中缺乏支持使得许多Web专业人员不能在他们的生产工作中使用这些样式。

随着对旧版IE的支持的结束,一些网页设计师现在正在尝试新的CSS布局选项,包括CSS Columns,并发现他们使用这些新方法比使用浮动更多地控制。

CSS列的基础知识

顾名思义,CSS Multiple Columns(也称为CSS3多列布局)允许您将内容拆分为一定数量的列。您将使用的最基本的CSS属性是:

  • 列数
  • 柱隙

对于列计数,您可以指定所需的列数。柱间隙将是这些柱之间的沟槽或间距。浏览器将获取这些值并将内容均匀地拆分为您指定的列数。

在实践中,CSS多列的一个常见示例是将文本内容块拆分为多个列,类似于您在报纸文章中看到的内容。假设您有以下HTML标记(请注意,出于示例目的,我只放置一个段落的开头,而在实践中,此标记中可能会有多段内容):

你文章的标题

想象一下这里有很多段落的文字……

如果你然后写了这些CSS样式:

.content {-moz-column-count:3; -webkit-column-count:3;列数:3; -moz-column-gap:30px; -webkit-column-gap:30px;柱间隙:30px; }

此CSS规则将“内容”分区拆分为3个相等的列,它们之间的间隔为30像素。如果您想要两列而不是三列,则只需更改该值,浏览器就会计算这些列的新宽度,以均匀分割内容。请注意,我们首先使用vendor-prefixed属性,然后是非前缀声明。

这很容易,它以这种方式使用对于网站使用是有问题的。是的,您可以将一堆内容拆分为多个列,但这可能不是Web的最佳阅读体验,尤其是当这些列的高度低于屏幕的“折叠”时。

然后,读者必须向上和向下滚动才能阅读完整内容。尽管如此,CSS Columns的主要内容与您在此处看到的一样简单,它可以用来做更多的事情,而不仅仅是分割一些段落的内容 - 它确实可以用于布局。

CSS列的布局

假设您的网页内容区域包含3列内容。这是一个非常典型的网站布局,为了实现这三个列,您通常会浮动其中的分区。使用CSS多列,它会更容易。

这是一些示例HTML:

来自我们的博客

内容会在这里……

使用列宽

除了“列数”之外,您还可以使用另一个属性,根据您的布局需求,它实际上可能是您网站的更好选择。这是“列宽”。使用与前面所示相同的HTML标记,我们可以使用我们的CSS来做到这一点:

.content {-moz-column-width:500px; -webkit-column-width:500px;列宽:500px; -moz-column-gap:30px; -webkit-column-gap:30px;柱间隙:30px; } .content div {display:inline-block; }

这种方式的工作方式是浏览器使用此“列宽”作为该列的最大值。因此,如果浏览器窗口的宽度小于500像素,则这3个分区将出现在单个列中,而另一个列的顶部之一。这是用于移动/小屏幕布局的典型布局。

随着浏览器宽度增加到足以容纳2列以及指定的列间隙,浏览器将自动从单列布局变为两列。继续增加屏幕宽度,最终,您将获得3列设计,我们的3个分区中的每一个都显示在它们自己的列中。同样,这是获得一些响应式,多设备友好布局的好方法,您甚至不需要使用媒体查询来更改布局样式!

其他列属性

除了此处介绍的属性外,还有“列规则”的属性,包括颜色,样式和宽度值,允许您在列之间创建规则。如果您想要分隔列的某些行,则可以使用这些代替边框。

实验时间

目前,CSS多列布局得到了很好的支持。使用前缀,超过94%的网络用户将能够看到这些样式,并且不受支持的组实际上只是Internet Explorer的旧版本,无论如何您可能不再支持它们。

现在有了这种级别的支持,没有理由不开始试验CSS Columns并在生产就绪网站中部署这些样式。您可以使用本文中介绍的HTML和CSS开始实验,并使用不同的值来查看哪些内容最适合您的网站布局需求。