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

传说,总有一天,任何 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
什么是CSS网格?什么是CSS网格?Apr 30, 2025 pm 03:21 PM

CSS网格是创建复杂,响应式Web布局的强大工具。它简化了设计,提高可访问性并提供了比旧方法更多的控制权。

什么是CSS Flexbox?什么是CSS Flexbox?Apr 30, 2025 pm 03:20 PM

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

我们如何使用CSS使网站迅速响应?我们如何使用CSS使网站迅速响应?Apr 30, 2025 pm 03:19 PM

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

CSS盒装属性有什么作用?CSS盒装属性有什么作用?Apr 30, 2025 pm 03:18 PM

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。

我们如何使用CSS动画?我们如何使用CSS动画?Apr 30, 2025 pm 03:17 PM

文章讨论使用CSS,关键属性并与JavaScript结合创建动画。主要问题是浏览器兼容性。

我们可以使用CSS向我们的项目添加3D转换吗?我们可以使用CSS向我们的项目添加3D转换吗?Apr 30, 2025 pm 03:16 PM

文章讨论了Web项目的3D转换,关键属性,浏览器兼容性和性能注意事项的讨论。(角色计数:159)

我们如何在CSS中添加梯度?我们如何在CSS中添加梯度?Apr 30, 2025 pm 03:15 PM

文章讨论了使用CSS梯度(线性,径向,重复)来增强网站视觉效果,添加深度,焦点和现代美学。

CSS中的伪元素是什么?CSS中的伪元素是什么?Apr 30, 2025 pm 03:14 PM

文章讨论了CSS中的伪元素,它们在增强HTML样式方面的使用以及与伪级的差异。提供实用的例子。

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

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

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版

SublimeText3 英文版

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

禅工作室 13.0.1

禅工作室 13.0.1

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

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器