惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
V
Visual Studio Blog
C
Check Point Blog
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
量子位
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
M
MIT News - Artificial intelligence
爱范儿
爱范儿
B
Blog RSS Feed
MyScale Blog
MyScale Blog
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
L
LangChain Blog
D
Docker

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
为什么white-space:nowrap可以让文字一行显示? « 张鑫旭-鑫...
张鑫旭,zhangxinxu · 2021-07-26 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=10026 鑫空间-鑫生活
本文欢迎分享与聚合,全文转载就不必了,尊重版权,圈子就这么大,若急用可以联系授权。

鑫空间鑫生活white-space封面

white-space:nowrap可以让文字一行显示,不受外部宽度的限制,大家有没有想过是什么原因呢?

一、空格不换行

‘white space’的中文意思就是空格,因此,white-space:nowrap的意思就是空格不换行。

在Web的默认排版中,空格是换行点。

例如下面这个案例,一段文字描述:

<p>hello zhangxinxu</p>
p {
    width: 6em;
    border: dotted;
}

此时,内容就会在空格处换行,因为空格是换行点。

空格位置换行示意。

此时设置white-space:nowrap让空格不是换行点,那自然内容就一行显示了。

p {
    width: 6em;
    border: dotted;
    white-space: nowrap;
}

截图效果示意:

一行显示示意

然而,实际上,white-space:nowrap不仅仅是让空格不是换行点,似乎让原本可以换行的中文也变得不可以换行了,如下所示:

<p>你好,张鑫旭!</p>
p {
    width: 6em;
    border: dotted;
}

此时换行的位置就是“鑫”这个中文:

鑫可以换行

但是设置white-space:nowrap也一样单行显示了,如下图所示:

中文也单行显示不换行

这岂不是和white-space:nowrap的语义不相符?

//zxx: 如果你看到这段文字,说明你现在访问是体验糟糕的垃圾盗版网站,你可以访问原文获得很好的体验:https://www.zhangxinxu.com/wordpress/?p=10026(作者张鑫旭)

二、换行点是空格

实际上,语义是相符的,关键是在Web中,换行符会被解析为空格。

举个例子,在编辑器中有下面这段代码:

<p>2020东京
奥运会</p>

“东京”和“奥运会”中间有个换行符(输入&#x000D;&#x000A;效果类似)。

此时,刷新页面,就会看到,“京”和“奥”之间就会多出了一个普通空格。

如下图所示,空格是可以框选出来的:

换行符会变成空格

所以,当在Web网页中,一段中文发生自然换行的时候,本质上是在换行位置插入了“换行符”。

中文换行示意

而在Web中,换行符会被解析为空格,因此,大家可以理解为上图“鑫”和“旭”之间是有个空格,于是才会自然换行的。

这个时候,是不是就理解white-space:nowrap可以让任意字符单行显示了。

因为web网页中,所有的换行都被解析为空格,而white-space:nowrap的含义就是让空格不换行,因此,一句话中,所有的空格、换行都不再换行,因此,文字内容会一行显示。

这就是white-space:nowrap可以让文字一行显示的原因。

三、其他空格特性三两句

Web中还有一个自动合并空格的特性,也就是连续敲打的空格默认会按照一个空格渲染,例如:

<p>2020东京           奥运会</p>

最后渲染出来的依然只有一个空格:

换行符会变成空格

这个特性也是使用white-space属性进行设置:

  • white-space:pre可以让空格不合并,同时不会换行显示;
  • white-space:pre-wrap可以让空格不合并,同时宽度不足时候可以换行显示;

不过不是本文重点,不展开。

以上就是关于空格的一点小知识,希望对大家的学习有所帮助。

也欢迎转发、分享、点赞。

本文为原创文章,欢迎分享,勿全文转载,如果实在喜欢,可收藏,永不过期,且会及时更新知识点及修正错误,阅读体验也更好。
本文地址:https://www.zhangxinxu.com/wordpress/?p=10026

(本篇完)