【译】在行内元素前注入一个换行 | CSS-Tricks_html/css_WEB-ITnose
原文: http://www.zcfy.cc/article/517
我遇到了一个小问题,我有一个 span 在 header 中,而我想要在 span 的前面产生一个换行。郑重声明,在 span 前面插入一个
标签当然没问题(而事实上,你还可以显示/隐藏这个标签,这 非常有用 )。但是...不得不用 HTML 去做一个布局相关的事情始终感觉有点奇怪。
因此,让我们来深入探索一下,在这个探索中,我们会多次说到“然而...”。
<h1 id="Break-right-after-this-br-could-go-here-but-can-we-do-it-with-CSS-span-and-before-this-span"> Break right after this <!-- <br> could go here, but can we do it with CSS? --> <span> and before this </span></h1>
块级元素能做到
不同于 ,我们可以使用一个 但是我们有使用 span 的理由,因为设计上要求我们用 span。在换行之后的文本应该是一个行内/行内块元素,因为我们可能想给它一个背景或者 padding 或者其他什么。 这很容易: 然而... 是一个行内元素。换行不会产生任何效果!就像 真正的 回车换行一样不产生。 我们可以通过样式让空白符生效,来强制让换行有效... 这样实际有效果了。然而... 由于 padding 和背景存在,它把左 padding 的部分留在了上一行: 我们可以使用 box-decoration-break: clone; 来修复这个“左边缘环绕”的问题,然而... 它会导致上一行产生更大的黑块:(此处不明白的同学可以看 这个例子 ——译者注) box-decoration-break 对于处理一些问题来说好极了,但不包括这个问题。 如果我们将 span 变成 inline-block,那么换行将会发生在那个块里面,这也不是我们想要的效果: 将伪元素设置成块级元素,让 span 保持行内元素,这样也不行: 这是 Aaron Bushnell 想出的 办法 。这个技巧是让 span 成为块级元素,然后把文本通过伪元素插入进去,以伪元素作为行内元素添加样式。 这样可以!然而... 我一直是伪元素技巧的簇拥,但是这么用有点危险,因为你可能破坏了可访问性。我认为一些读屏软件会读伪元素,但不是所有的都会,也不是所有的都打算支持。更何况这种方式下你不能拷贝和粘贴所有的文本,尽管这些文本完整地出现在 HTML 文档里。 我最喜欢的 方式 是由 Thierry Koblentz 提出的。只需要给 span 设置 display:table; 就行了。当然这不是真正的表格数据,但没关系。通过 CSS 将元素强制用 table 布局以利用 table 布局独特的布局属性,它唯一的问题仅仅是——不语义化。 包括使用 例子: 在一个 header 元素中的行内元素前尝试插入一个换行 。 英文原文: https://css-tricks.com/injecting-line-break/ 你可以通过伪元素插入换行
h1 span::before { content: "\A";}
h1.two span::before { content: "\A"; white-space: pre;}
你可能会有点奇怪,为何不直接将实际的文本写在伪元素里
h1 span { display: block;}h1 span::before { content: attr(data-text); background: black; padding: 1px 8px;}
利用 table 布局
h1 span { display: table;}
在线例子
的那个例子,那样做也是好的。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。
