首页 web前端 css教程 % CSS: &#s border 任何元素的淘汰行为!

% CSS: &#s border 任何元素的淘汰行为!

Jan 08, 2025 pm 04:09 PM

传说,总有一天,任何 html 元素都可以实现漂亮的 fieldset 边框剔除效果。

我有个好消息:在 Chrome 中,这一天就是今天!

场集?传奇?

如果您不熟悉,这里是带有图例的字段集的边框剔除效果:

a picture of two simple fieldset elements with their legend (titles) leaving a gap the width of their text in the fieldset's borderVanillaHTML 中稍作修改的屏幕截图中的字段集图例示例

图例(标题)的宽度会自动在字段集的边框上剪出一个洞。

虽然技术上可以只使用

;和在任何地方,通常不建议使用
之外并且没有任何其中的元素,因为字段集的主要目的是对相关表单输入进行语义分组。在不相关的上下文中使用它违背了其预期含义,并且可能会对屏幕阅读器的可访问性产生负面影响。

任何地方的 Fieldset 边框图例淘汰行为

这并不是一件容易完成的事情,所以我隐藏了我能做到的每一点复杂性,使其尽可能容易复制:

  1. @import css 中的 fieldset-legend 实用程序。
  2. 将 fieldset-legend 类添加到包装器
  3. 将 --fl-left 属性设置为任意 值(如果您愿意,甚至可以是负值)

并且库将定位 :first-child 使其与元素顶部垂直居中,并剔除其后面的内容!

要在标题周围创建间隙,请根据需要向 :first-child 添加填充。

这里最大的问题是你不能将纯文本节点直接放入 fieldset-legend 包装器中,文本必须嵌套在它们自己的元素内。

此外,技术上字段集的边框剔除不会下沉到图例元素的底部并剪切背景,就像上面那样。

如果您希望淘汰赛仅下沉穿过边界,您可以提供额外的属性,--fl-sink 并将其设置为等于边框宽度:

它还有其他作用吗?

确实如此!

--fl-左替代品

您可以使用--fl-center代替--fl-left。
如果将 --fl-center 设置为 0px,标题将沿顶部边缘水平居中。
如果设置为-10px,它将向中心左侧偏移10px。
将其设置为 15px,它将从中心向右移动 15px。

除了 --fl-left 或 --fl-center,您还可以使用 --fl-right 来实现预期的行为。

所有这 3 个都是可以是正数、0px 或负数。

标题为:第一个孩子的替代方案

将其他元素(例如仅限屏幕阅读器的页面跳转)放置在 fieldset-legend 容器内的标题之前可能很重要。

将类 fieldset-legend-title 放置在 fieldset-legend 元素的任何一个直接后代上,库会将该元素提升到顶部相同的所需位置,而仅保留 :first-child。

fieldset-legend 使用 ::before 伪

您可以让它使用 ::after 伪变量,只需将类名从 fieldset-legend 更改为 fieldset-legend-after

fieldset-legend 没有伪?

这是高级用法,但是...

可以插入:0px;包装器内的元素,根据需要对其进行自定义,并使用 fieldset-legend-custom 而不是 fieldset-legend 或 fieldset-legend-after。

这会删除所有库的剪辑,并为您提供一个自定义蒙版,以便在 fieldset-legend-custom 元素内的任何位置使用。

例如,如果您想将其与您最喜欢的科幻塑造库、augmented-ui 一起使用:

回退行为

使用此实用程序所需的限制功能支持是时间线范围。

还需要容器样式查询。

这是本文中的第一个演示在非 Chrome 浏览器中的样子:

picture of the fallback behavior as described below

它应用相同的机械样式来最小化差异,例如非静态位置和隔离:isolate;但最值得注意的是,它将标题移回到内联并做了两件事!重要的事情:

  1. 标题颜色变为 currentColor - 标题后面的内容从正文切换到 fieldset-legend 容器的内部,该容器可能具有非常不同的背景。使用 currentColor 可确保内容可读,因为非字段集中的其余内容可能已正确设置。
  2. 同样,我不知道你的标题元素是否已经有自己的背景(尽管如果有,你不需要这个实用程序将其定位在边框上),因此背景被迫透明,确保 fieldset-legend 背景上的 currentColor,在大多数情况下已经可读。

要确定特定的后备行为,您可以设置
--fl-fallback-title-color 和 --fl-fallback-title-background 将用于代替 currentColor 或在不支持的情况下渲染的情况下透明。

这就是上面的自定义演示在不支持 fieldset-legend 的浏览器中的样子:

picture of the fallback behaviors as described above

进一步的后备支持

如果你知道如何使用我的旧空间切换技术,图书馆还提供:

--fl-supported,支持时为空格,不支持时为首字母

--fl-不支持,相反。


打开联系方式?

如果您需要任何方面的帮助、有功能请求或想要分享您创建的内容,请务必联系我们!

% CSS:
s border 任何元素的淘汰行为!
% CSS:
s border 任何元素的淘汰行为!
DEV Blog % CSS:
s border 任何元素的淘汰行为!
% CSS:
s border 任何元素的淘汰行为!
% CSS: <fieldset> % CSS: <fieldset> DEV Blog % CSS: <fieldset> % CSS: <fieldset>

?@JaneOri.% CSS:

s border 任何元素的淘汰行为!

?@Jane0ri

以上是% CSS: &#s border 任何元素的淘汰行为!的详细内容。更多信息请关注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团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

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

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

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

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

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

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

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

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

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

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

如何将CSS网格用于粘头和页脚 如何将CSS网格用于粘头和页脚 Apr 02, 2025 pm 06:29 PM

CSS网格是一系列属性的集合,旨在使布局比以往任何时候都容易。像任何东西一样,那里有一点学习曲线,但是网格是

Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

See all articles