搜索
首页科技周边IT业界布局秘密武器#1:CSS表属性

CSS display: table 属性:解决布局难题的利器

核心要点:

  • CSS 的 table 属性功能强大,能解决多种布局问题,并兼容所有现代浏览器。它允许 HTML 元素像表格元素一样运作,为复杂的布局和对齐问题提供通用的解决方案。
  • CSS table 属性可用于创建等高盒子、简单的旧式布局以及具有内容编排功能的自适应布局。它在响应式设计中尤其有用,允许元素根据用户的屏幕尺寸调整其大小和位置。
  • 尽管 CSS table 属性有很多优点,但它也有一些局限性。与其他显示属性相比,它在创建复杂布局方面的灵活性较低,并且与某些 CSS 属性(如 floatposition)配合使用效果不佳。但是,在许多情况下,使用 table 属性的优势大于其缺点。

Layout Secret Weapon #1: The CSS Table Property

目前,Flexbox 可能是布局构建的热门新技术。Flexbox 适应可用空间的惊人能力,让许多人对它的可能性充满了期待。然而,它无法解决所有布局问题,而且它与旧版浏览器的兼容性也存在一些问题。Flexbox 目前并没有通用的 polyfill(旧版浏览器的回退方案)——目前我只知道一个针对 2009 年版本的 IE 的 polyfill:Flexie。在许多情况下,我发现使用经常被忽略的 CSS table 显示属性可以找到更简单的解决方案。这些 CSS 属性得到了所有相关浏览器的广泛支持(注意,这排除了 IE6 和 IE7),并且可以优雅地解决一些主要的和小的布局难题。

如果您不完全熟悉此技术,更改 DIV 的 display 属性可以使其 表现 得像表格或表格元素。

等等,用表格进行布局?这不好吧?

21 世纪初最热门的网页设计话题之一,就是关于使用 HTML 表格代码作为布局工具的争论。那是一种 hack,现在仍然是不好的做法。

相反,我们在这里使用完全有意义的 HTML(即 DIV、SECTION、HEADER 等),只是从 CSS 中借用了一些有用的表格表示知识。这正是 CSS 的设计目的,所以不要觉得这是一个 hack 或补丁。它不是。

使用 display: table-cell

在下面的示例中,点击顶部的按钮,您可以将三个彩色 DIV 的 display 属性从 block 更改为 table-cell

[CodePen 示例链接 - 替换为实际 CodePen 链接]

您可以看到 DIV 如何在不需要任何 float 属性的情况下进行水平排列,并且您还可以访问一些典型的表格规则(就像 vertical-align)。

如果您需要一些间距,请注意,经典的 CSS margin 属性对表格单元格没有任何影响:而是使用 border-spacing(它必须应用于容器表格元素)。如果您想使用这些规则,可以在 Codepen 中找到一些注释行。

此技术对于解决许多难以用其他方法解决的问题非常有用。

我已经挑选出三个简单的案例,其中 table 显示属性非常有价值。

但首先让我们看看它们:

display 属性 呈现为
table, inline-table
display 属性 呈现为
table, inline-table table
table-column col
table-column-group colgroup
table-row-group tbody
table-header-group thead
table-footer-group tfoot
table-row tr
table-cell td
table-caption caption
table-column col
table-column-group colgroup
table-row-group tbody
table-header-group thead
table-footer-group tfoot
table-row tr
table-cell td
table-caption caption

有关表格和 CSS 的真正全面指南,请查看 CSS Tricks:[CSS Tricks 的表格指南链接 - 替换为实际链接]

案例 1. 等高盒子

我认为这是我处理的最常见问题之一:有一些带有未知内容的浮动盒子,您必须使它们都具有相同的高度。

我知道,Flexbox 可以轻松解决这个问题,但表格规则也可以做到。

只需将 display: table(或 table-row)属性应用于容器,并将 display: table-cell 属性应用于内部盒子。注意要删除任何 float 属性(否则 table-cell 属性不会生效)。

HTML:

<div id="wrapper">
    <div id="div1"></div>
    <div id="div2"></div>
    <div id="div3"></div>
</div>

CSS:

#wrapper {
    display: table;
}
#wrapper div {
    display: table-cell;
}

[CodePen 示例链接 - 替换为实际 CodePen 链接]

案例 2. 简单的旧式布局

这是一个比较过时的例子,但我认为您可能需要处理它,就像我最近做的那样。

几个月前,我收到一个与以下方案非常相似的图形布局。它需要与 IE8 兼容,我发现最好的方法是使用 CSS 表格规则:

[CodePen 示例链接 - 替换为实际 CodePen 链接]

案例 3. 具有内容编排功能的自适应布局

前面的例子引导我们进入一个新的主题:是否可以使用 CSS 表格规则构建自适应布局?

这不仅是可能的,而且我们还可以执行一些内容编排任务。

我们已经看到,如何将两个 div 的 display 属性从 block 更改为 table-cell 可以将其排列方式从垂直更改为水平。

此外,具有 table-header-group 属性的元素会被置于表格布局的顶部。同样,table-footer-group 元素会被置于底部,依此类推。在重新格式化响应式布局时,这可能出乎意料地有用。

在下面的笔中,标题元素在窗口调整大小时与其位置与导航元素交换,只需将其 display 属性更改为 table-header-group

HTML:

<div id="wrapper">
    <nav></nav>
    <header></header>
    <div id="banner2"></div>
    <footer></footer>
</div>

CSS:

#wrapper, header {
    display: block; /* 我们实际上不需要此规则,因为它默认为此值 */
}

@media (min-width: 48em) {
    #wrapper {
        display: table;
    }
    header {
        display: table-header-group;
    }
}

footer#banner2 div 也会出现类似的行为。

这是一个布局方案:左侧是默认的移动版本,右侧是桌面版本:

Layout Secret Weapon #1: The CSS Table Property

这是一个运行中的演示:

[CodePen 示例链接 - 替换为实际 CodePen 链接]

有关此论点的更多信息,还可以查看:

  • 使用 display:table 进行 CSS 堆叠
  • CSS 布局的反英雄——“display:table

结论

CSS table 显示属性是解决大小布局挑战的被低估且有价值的解决方案。

虽然我个人可能不会选择使用它们来构建复杂的布局,但它们肯定可以解决与布局部分相关的许多难题。

关于 CSS table 属性的常见问题解答

(此处应补充关于CSS table 属性的常见问题解答,内容与原文类似,但需调整措辞,避免重复。)

请注意,以上所有CodePen链接都需要替换成实际的CodePen链接。 我无法直接访问和创建CodePen。

以上是布局秘密武器#1:CSS表属性的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道Apr 18, 2025 am 08:28 AM

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

CNCF ARM64飞行员:影响和见解CNCF ARM64飞行员:影响和见解Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用GO构建网络漏洞扫描仪使用GO构建网络漏洞扫描仪Apr 01, 2025 am 08:27 AM

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德

2025年最佳10个最佳免费反向链接检查器工具2025年最佳10个最佳免费反向链接检查器工具Mar 21, 2025 am 08:28 AM

网站建设只是第一步:SEO与反向链接的重要性 建立网站只是将其转化为宝贵营销资产的第一步。您需要进行SEO优化,以提高网站在搜索引擎中的可见度,吸引潜在客户。反向链接是提升网站排名的关键,它向谷歌和其他搜索引擎表明您的网站权威性和可信度。 并非所有反向链接都有利:识别并避免有害链接 并非所有反向链接都有益。有害链接会损害您的排名。优秀的免费反向链接检查工具可以监控链接到您网站的来源,并提醒您注意有害链接。此外,您还可以分析竞争对手的链接策略,从中学习借鉴。 免费反向链接检查工具:您的SEO情报员

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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

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