CSS 弹性框最后一个空格被删除

2024-01-07

通过设置display的一个项目到flex我发现最后一个空格已从文本字符串中删除。

<div class="has_flex"> Some text <a href="link">Link</a></div>

Becomes

<div class="has_flex"> Some text<a href="link">Link</a></div>
.has_flex {
  display: flex;
}
<div class="no__flex">Some text <a href="link">Link</a></div>
<div class="has_flex">Some text <a href="link">Link</a></div>

我将文本包裹在一个跨度中,这没有什么区别。


Reason

当你不使用时display: flex,你的布局变得像

<div class="has_flex"><!--
  --><anonymous style="display: inline">Some text </anonymous><!--
  --><a         style="display: inline">Link</a><!--
--></div>

文本(包括末尾的空格)被包裹在匿名内嵌框 https://www.w3.org/TR/CSS21/visuren.html#anonymous:

任何直接包含在块容器元素内(而不是内联元素内)的文本都必须被视为匿名内联元素。

然而,Flexbox 布局阻碍了弹性项目 https://www.w3.org/TR/css-flexbox-1/#flex-items:

The display https://www.w3.org/TR/CSS21/visuren.html#propdef-display的值弹性项目 https://www.w3.org/TR/css-flexbox-1/#flex-item is 块化的 https://www.w3.org/TR/css-display-3/#blockify: 如果 指定的display https://www.w3.org/TR/CSS21/visuren.html#propdef-display元素的流入子元素的 生成一个柔性容器 https://www.w3.org/TR/css-flexbox-1/#flex-container是一个内联级值,它计算 到其块级等效项。

然后,布局将是这样的

<div class="has_flex"><!--
  --><anonymous style="display: block">Some text </anonymous><!--
  --><a         style="display: block">Link</a><!--
--></div>

这可能看起来没有直接关系,但它是相关的,因为the white-space加工模型 https://www.w3.org/TR/CSS21/text.html#white-space-model:

然后,对块容器的内联进行布局。 [...] 每行 已布置,[...]

  1. 如果行尾有空格 (U+0020)white-space设置normal, nowrap, or pre-line, 它也被删除.

因此,当匿名元素和链接都是内联时,空格位于行的中间。如果你有多个空间,它们会折叠成一个,但不会完全消失。

但是,当您使用 Flexbox 时,每个 Flex 项目都有自己的行,因此空间位于行的末尾。所以它被删除了。

请注意,这个问题不是 Flexbox 特有的,内联块末尾的空格也会被删除。

.in-blo {
  display: inline-block;
}
<div><span class="inline">Some text </span><a href="link">Link</a></div>
<div><span class="in-blo">Some text </span><a href="link">Link</a></div>

但是,在这种情况下,您只需将空间移到内联块之外即可。在 Flexbox 中这是不可能的,因为仅包含空白的匿名 Flex 项目不会被渲染。

Solution

如果你想保留空间,可以设置white-space到另一个值。white-space: pre-wrap将允许文本换行,white-space: pre won't.

.has_flex {
  display: flex;
  white-space: pre-wrap;
}
<div class="no__flex">Some text <a href="link">Link</a></div>
<div class="has_flex">Some text <a href="link">Link</a></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 弹性框最后一个空格被删除 的相关文章

  • 如何将 em 标签重新设置为粗体而不是斜体

    我想让文本在 em 标记粗体而不是斜体 有没有办法用 CSS 来实现这一点 当然 使用以下 CSS 代码 em font weight bold font style normal em
  • 创建全屏 iframe

    我目前正在研究 XSS 攻击 目的是在客户端演示中使用它们 我是渗透测试员 我编写了一个工具 该工具将托管网站登录页面的恶意版本 获取用户名和密码 然后将受害者重定向回原始网站 然而 我一直在尝试使用 iframe 来让它工作 因为它看起来
  • 如何更改 Bootstrap 导航栏折叠断点

    目前 当浏览器宽度低于 768px 时 导航栏将更改为折叠模式 我想将此宽度更改为 1000px 这样当浏览器低于 1000px 时 导航栏就会更改为折叠模式 我想在不使用 LESS 的情况下执行此操作 我使用的是手写笔而不是 LESS 我
  • 使用 bootstrap 将并排的网格位置交换到顶部和底部

    我有两个 div 内容和图像 它们在中等屏幕中并排放置 col md 6 内容 col md 4 图片 因此 当屏幕尺寸更改为小屏幕和 xs 屏幕时 这些 div 不应该并排放置 它们应该像这样顶部和底部对齐 image content 这
  • 设置列表中前 10 项的样式

    可以使用像 li nth child 这样的东西来设置列表中前十项的样式吗 ol li item 1 li li item 2 li li item 3 li li item 4 li li item 5 li li item 6 li l
  • html 链接不起作用 href javascript 参数太长

    a href alt a 在 href 中我调用了一个 javascript 函数 change 第二个参数 n1387519869249 1196 n1387519906965 1368 n 是一个非常长的值 大约 5070 个字符 但在
  • 与 PHP 相比,Python 与 HTML 的“流畅”程度如何?

    我正在考虑从使用 PHP 切换到使用 Python 来开发 Web 应用程序 但我想知道 Python 是否像 PHP 一样擅长在 HTML 中穿插 本质上 我发现它使用起来非常简单 直观将 PHP 放在我想要的位置 然后可以随意安排 组织
  • CSS 中的 Data-URI SVG 背景在 Firefox 中不起作用

    好的 这就是我想做的 我的 css 文件中有这段代码 form row textfield hover textfield m hover background image url data image svg xml base64 PHN
  • CSS 聚焦于出现的输入 div [重复]

    这个问题在这里已经有答案了 我有这样的代码 div class lighter div
  • 如何在 Windows 网络中的 Intranet Web 应用程序中获取用户的用户名

    我内部有一个简单的 HTML 页面 它只显示一个表单并要求用户填写 我想自动捕获Windows域用户名和机器名 并将其与表单中收集的数据一起提交 我可以在客户端这样做吗 HTML JavaScript 或者我被迫在服务器端执行此操作 我还不
  • 保证金如何运作?

    我在下面提供了marginfix这是一个块级元素并且one and two也是块级的 但它们是浮动的 这就是为什么它们位于同一行布局的原因 但是marginfix也不浮动 块级元素应位于该元素下方 如下所示
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • 如何使用 HTML 和 CSS 在我的网站上显示社交图标?

    我拼命尝试向我的网站添加一些图标 但无法让它们正确显示 我想要的只是一个包含图像并在线显示它们的容器 然后我想在该容器和图像之间添加一些填充 仅此而已 看这里我的方法 如果有人可以帮助我并纠正我的代码 使其真正有效 我会非常高兴 在我的 H
  • 如何将焦点设置在 BootStrap 中的第一个输入字段上? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将焦点设置到独立于 id 的 HTML 表单中的第一个输入元素 https stackoverflow com questions 277544 how to set the focus to t
  • 为什么我无法对自定义属性(又名 CSS 变量)进行动画处理?

    看这个动画 金色 div 有一个自定义属性动画的动画 keyframes roll o 1动画 o 这是分步动画的 银色 div 有一个动画 其中normal属性是动画的 keyframes roll o 2动画left 这会持续动画 为什
  • CSS以两种颜色显示一个字符[重复]

    这个问题在这里已经有答案了 css中是否可以用两种颜色制作单个字符 我的意思是例如字符 B 上半部分为红色 下半部分为蓝色 h1 font size 72px background webkit linear gradient red 49
  • 如何在 HTML 中将文本设置为粗体?

    我正在尝试使用 HTML 将一些文本加粗 但我很难让它发挥作用 这就是我正在尝试的 Some
  • 粘性背景图像/使用 CSS

    我目前正在创建我的第一个网站 并且即将完成 我在标题下为主体使用背景图像 我发现每个页面都有一个问题 因为它们的高度都不同 这使得我背景图像的当前设置放大图片以适合整个页面 我想做的是将背景图像设置为 粘性 我的想法是 背景图像将直接位于标
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效

随机推荐

  • icomoon Selection.json,为现有项目添加新图标

    I ve try to add new icons to selection json I ve downloaded the new json file and see that icons where add But they are
  • 可空类型可以通过 Protocol Buffers 发送吗?

    The Proto3 C 参考 https developers google com protocol buffers docs reference csharp generated wrapper types包含以下文本 包装类型字段
  • 记录列表上的SML功能

    我试图声明一个函数 该函数将元组内的记录列表作为参数 但语法并不像我希望的那样直观 这就是我想做的 type Player id int privateStack int list fun foo id x xs Player player
  • UIButton 在 iOS 5 中不调用操作,但在 iOS 6 中工作

    我有一个UIButton从 xib 文件加载IBOutlet视图控制器的属性 我将一个选择器附加到viewDidLoad我的视图控制器 myButton addTarget self action selector mySelector f
  • ASP.NET 动态生成的 TableRows 在回发之间不会保留

    在 ASPX 中
  • 使用 PHP 的 Salesforce 标注

    抱歉 因为我可能不知道 salesforce API 的术语 我刚刚开始编写一个连接器来与销售人员交互 但我陷入了困境 我有一个要求 每次将新条目添加到潜在客户部分时 我都必须检索几个字段 名字和产品代码 并将其传递给使用 PHP 的不同软
  • Azure Functions 如何将应用程序设置添加到绑定

    我正在尝试使用我的 Azure 函数的应用程序设置添加一些自定义绑定 我只需要从我的设置中接收字符串 我想从我的设置中获取 simpleValue bindings name someValue type stringSetting con
  • MySQL,无法创建 UNIX 套接字 (12)

    SQLSTATE HY000 2001 Can t create UNIX socket 12 在我的本地计算机上 我的项目运行良好 当我将更改推送到服务器后 我收到此错误消息 mysql日志完全是空的 mysql配置 my cnf htt
  • 什么是 LLVM 元数据

    这些可能是非常基本的问题 1 什么是 LLVM 元数据以及如何在我的程序中使用它 我已阅读所有文档 但我不明白如何使用它 2 如何在文件中添加我的个人元数据 提前致谢 最好的信息来源是 2010 年将元数据引入 LLVM IR 的博客文章
  • NSURLRequest 中不支持的 URL

    如果我从终端运行此请求 我可以正常看到 JSON 请求 curl XGET 192 168 0 6 8888 scripts data backend2 index php name all 我的 NSURlRequest 代码是这样的 N
  • SSE 比较内在函数 - 如何从比较中得到 1 或 0?

    我正在尝试使用 SSE 内在函数编写相当于 if 语句的内容 我在用 m128 mm cmplt ps m128 a m128 b 进行比较 a 0xffffffff or 0x0如果比较分别为真或假 我想将这些值转换为 1 和 0 为了做
  • 如何在 wso2 中迭代 JSON 负载并构建响应

    如何通过将 carValue 和 bikeValue 添加到响应数组的 id C 05 B 08 C 07 B 06 中来迭代结果数组并构造响应数组 并保持与描述相同的 desc JSON 负载请求 results desc Blind c
  • 在便携式草莓上安装 Gtk2

    我下载了 strawberry perl 5 12 2 0 portable 和 gtk bundle 2 22 1 20101227 win32 我在某个目录中提取了草莓 perl 并在那里放置了包含 gtk 内容的 gtk 文件夹 在p
  • 以编程方式使用 Sim1 或 Sim2 发送短信的选项

    我有一部带有 2 张 SIM 卡的 Android 手机 我想使用 Sim1 或 Sim2 发送短信 默认情况下 消息是从 sim1 发送的 但我想从 sim2 发送短信 是否可以设置使用Sim1或Sim2发送短信 如果有一个设置选项可以使
  • C++ 中的 getline() - 不需要 _GNU_SOURCE?

    首先 我对 C 还很陌生 我相信getline 不是标准 C 函数 所以 define GNU SOURCE需要使用它 我现在使用 C g 告诉我 GNU SOURCE已经定义 g Wall Werror parser cpp parser
  • 使用 maven 构建 apk 时出现 ClassNotFoundException

    我想在 Android 开发中切换到 Maven 进行构建过程 我跟着http www sonatype com books mvnref book reference android dev sect archetype html htt
  • 在 matplotlib 中,为什么用细线绘图更快?

    我今天偶然发现了这一点 如果线宽小于 1 0 在 matplotlib 中绘制线条似乎要快得多 我只在Mac上测试过这个 但效果似乎很强 例如 如果您尝试此代码 您将发现线宽为 0 5 时数据绘制速度比线宽 1 0 快约 10 倍 impo
  • 如何使 org-protocol 在 Openbox 上工作?

    I tried 说明 http orgmode org worg org contrib org protocol html 我正在使用 FirefoxLubuntu https en wikipedia org wiki Lubuntu
  • 在c++中将高斯曲线拟合到某个直方图峰值

    我有两个关于将高斯曲线拟合到直方图峰值的问题 我的第一个问题是一个非常基本的问题 如何将高斯曲线拟合到整个直方图 这是否仅仅意味着我必须找出并计算直方图的平均值 和偏差 并将它们放入高斯曲线的公式中 下面的例子正确吗 假设 仅作为示例 我有
  • CSS 弹性框最后一个空格被删除

    通过设置display的一个项目到flex我发现最后一个空格已从文本字符串中删除 div class has flex Some text a href link Link a div Becomes div class has flex