输出空格隔开换行_【前端干货】CSS 的空格处理

889591d73ccc511e8c706a2b49579448.png

一空格规则

HTML 代码的空格通常会被浏览器忽略。

67903c7272e34fec064144b6389e158b.png
<p>◡◡hello◡◡world◡◡</p>

上面是一行 HTML 代码,文字的前部、内部和后部各有两个空格。为了便于识别,这里使用半圆形符号◡表示空格。

浏览器的输出结果如下。

hello world

可以看到,文字的前部和后部的空格都会忽略,内部的连续空格只会算作一个。这就是浏览器处理空格的基本规则。

如果希望空格原样输出,可以使用<pre>标签。

<pre>◡◡hello◡◡world◡◡</pre>

另一种方法是,改用 HTML 实体&nbsp;表示空格。

<p>&nbsp;&nbsp;hello&nbsp;&nbsp;world&nbsp;&nbsp;</p>

二、空格字符

HTML 处理空格的规则,适用于多种字符。除了普通的空格键,还包括制表符(t)和换行符(r和n)。

浏览器会自动把这些符号转成普通的空格键。

<p>hello
world</p>

上面代码中,文本内部包含了一个换行符,浏览器视同为空格,输出结果如下。

hello world

所以,文本内部的换行是无效的(除非文本放在<pre>标签内)。

<p>hello<br>world</p>

上面代码使用<br>标签显式表示换行

三、CSS 的 white-space 属性

HTML 语言的空格处理,基本上就是直接过滤。这样的处理过于粗糙,完全忽视了原始文本内部的空格可能是有意义的。

CSS 提供了一个white-space属性,可以提供更精确一点的空格处理方式。该属性共有六个值,除了一个通用的inherit(继承父元素),下面依次介绍剩下的五个值。

3.1 white-space: normal

white-space属性的默认值为normal,表示浏览器以正常方式处理空格。

<p>◡◡hellohellohello◡hello
world
</p>

上面代码中,文本前部有两个空格,内部有一个长单词和一个换行符。

然后,容器<p>指定一个比较小的宽度。为了便于识别,背景色设为红色。

p {width: 100px;background: red;
}

显示效果如下图。

a061b74e4bc66049962bab5d559fd05c.png

可以看到,文首的空格被忽略。由于容器太窄,第一个单词溢出容器,然后在后面一个空格处换行。文本内部的换行符自动转成了空格。

3.2 white-space: nowrap

white-space属性为nowrap时,不会因为超出容器宽度而发生换行。

p {white-space: nowrap;
}

显示效果如下图。

5959ebee4732e85e8e96dc307c42fc17.png

所有文本显示为一行,不会换行。

3.3 white-space: pre

white-space属性为pre时,就按照<pre>标签的方式处理。

p {white-space: pre;
}

显示效果如下图。

83888906220e75ec0dead59a74c84f46.png

上面结果与原始文本完全一致,所有空格和换行符都保留了。

3.4 white-space: pre-wrap

white-space属性为pre-wrap时,基本还是按照<pre>标签的方式处理,唯一区别是超出容器宽度时,会发生换行。

p {white-space: pre-wrap;
}

显示效果如下图。

379c3ea10364e1ecc9687da063f460c0.png

文首的空格、内部的空格和换行符都保留了,超出容器的地方发生了折行。

3.5 white-space: pre-line

white-space属性为pre-line时,意为保留换行符。除了换行符会原样输出,其他都与white-space:normal规则一致。

p {white-space: pre-line;
}

显示效果如下图。

a5f3106da93c92630800beb0f04e2117.png

除了文本内部的换行符没有转成空格,其他都与normal的处理规则一致。这对于诗歌类型的文本很有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝塔面板绑定域名导致无法访问

用这个命令rm -f /www/server/panel/data/domain.conf删除绑定域名后&#xff0c; 就能用ip端口进入面板了&#xff0c;以后还是不要绑定域名了 主要是因为我手残。 看重点&#xff0c;我是绑定了域名&#xff0c;用域名也无法访问。 现在终于进去啦

【转】在.Net中关于AOP的实现

原文地址&#xff1a;http://www.uml.org.cn/net/201004213.asp 一、AOP实现初步 AOP将软件系统分为两个部分&#xff1a;核心关注点和横切关注点。核心关注点更多的是Domain Logic&#xff0c;关注的是系统核心的业务&#xff1b;而横切关注点虽与核心的业务实现无关&#xff…

宝塔访问域名访问不到

首先说明一点&#xff0c;我这个问题不是宝塔面板绑定域名的那种情况。 浏览器输入域名会报上面的错误&#xff0c;经过各种尝试&#xff0c;发现是安全组没有放开&#xff0c;在阿里云控制台添加一个80/80的通用安全组规则即可&#xff0c;知道上行和下行的区别&#xff0c;打…

spring.jpa配置_使用JPA和Spring 3.1进行事务配置

spring.jpa配置1.概述 本教程将讨论配置Spring Transactions &#xff0c;使用Transactional批注和常见陷阱的正确方法 。 有关核心持久性配置的更深入讨论&#xff0c;请查看Spring with JPA教程 。 有两种不同的配置事务的方法– 批注和AOP –每种都有自己的优势–我们将在…

双千兆和双频千兆哪个好_关于千兆路由器的那些事儿!赶紧收藏

无线Wi-Fi已成为现代人生活、工作的标配&#xff0c;随着百兆乃至千兆的光纤网络普及&#xff0c;传统路由器已跟不上时代的速度了。不少用户的眼光已投向速度更快的千兆路由器&#xff0c;那么大家真的了解什么是千兆路由器吗&#xff1f;千兆路由器有哪几种&#xff1f;近期火…

宝塔常用的命令大全(直接上官网)

安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash ins…

华三ospf联动bfd_HCIE2020__路由交换专家__BFD综合实验

1.1.1 关于本实验本实验通过配置BFD与BGP协议联动及与VRRP协议联动&#xff0c;掌握BFD的功能和配置方法。1.1.2 实验目的理解BFD的工作原理。 掌握BFD与BGP联动的应用场景及配置方法。 掌握BFD与VRRP联动的应用场景及配置方法。1.1.3 实验组网介绍图1-1 BFD原理配置实验拓扑图…

struts2,实现Ajax异步通信

用例需要依赖的jar&#xff1a; struts2-core.jarstruts2-convention-plugin.jar&#xff0c;非必须org.codehaus.jackson.jar&#xff0c;提供json支持用例代码如下&#xff1a; 数据库DDL语句无 struts.xml1 <?xml version"1.0" encoding"UTF-8"?&g…

快速提示:消息驱动Bean中的异常处理

让我们快速回顾一下有关消息驱动Bean的特殊处理。 MDB的入口点是重写的onMessage方法。 它不提供引发检查异常的任何作用域&#xff0c;因此&#xff0c;如果要处理错误情形&#xff0c;则需要从代码中传播未检查异常&#xff08;java.lang.RuntimeException的子类&#xff09…

大学生助学贷款如何还利息(本金+利息都可以)

生源地助学贷款还利息的步骤: 1、首先需要将钱转入支付宝,金额稍微高于应还款项即可。然后登陆电脑版支付宝,一定是要电脑登陆(手机上无法操作),如图所示 2、然后在支付宝主页中,点击右上角的“应用中心”,然后点击“生活服务”如图所示。

(实用)将wordpad添加到Windows PowerShell中

PowerShell能够直接打开notepad&#xff0c;但是无法调用wordpad&#xff0c;因为后者的可执行文件并不在系统默认的环境变量$env:Path中&#xff0c;只要将wordpad所在的路径添加到$env:Path&#xff0c;就可以从CMD或PowerShell中直接启动wordpad。 在PowerSehll下输入&#…

mysql分组区某列最后一条_[MySQL]MySQL数据库如何按某列分组排序后查询每个分组的最后一条数据?...

比如当前有如下的消息表(messages)及示例数据&#xff1a;Id Name Other_Columns-------------------------1 A A_data_12 A A_data_23 A A_data_34 B B_data_15 B B_data_26 C C_data_1按照以下SQL语句查询&#xff1a;select * from messages group by name得到的查询结果为&…

谷歌浏览器下载的内容老是自动打开

原因是每次下载内容在浏览器左下角都有提示&#xff0c;一般都是选择打开所在文件夹&#xff0c;一次手残&#xff0c;点了总是打开此文件导致一下载文件就自动打开。 解决方法。 1.点击右上角的... 2.找到设置-高级设置-下载 3.关掉我标红的位置信息即可。现在看不到啦&…

JBoss Fuse 6.2发布–指导如何快速尝试

在上周的红帽峰会上&#xff0c;宣布发布了JBoss Fuse 6.2 。 我要祝贺保险丝团队发布此版本。 我知道他们今年以来一直非常努力地进行质量检查&#xff0c;并确保质量检查通过了企业产品所期望的高品质壁垒。 因此&#xff0c;带着我的Camel帽子&#xff0c;很高兴看到包含最…

插入文件找不到桌面了?

解决方法&#xff0c;在那个界面空白处&#xff0c;右键显示所有文件即可。

mysql自增长主键_MySQL数据库8(九)列属性之主键、自增长

主键顾名思义&#xff0c;主要的键&#xff0c;primary key&#xff0c;在一张表中&#xff0c;有且只有一个字段&#xff0c;里面的值具有唯一性创建主键随表创建系统提供了两种增加主键的方式&#xff1a;1、直接在需要当做主键的字段之后&#xff0c;增加primary key属性来确…

微信小程序速成页面

你是否还在辛辛苦苦地码代码&#xff0c;特别是前端页面的编写&#xff0c;很多都是非常简单的&#xff0c;但界面多了还是要花费大量的时间&#xff0c;缩短了你陪男/女朋友的时间&#xff0c;家人的时间&#xff0c;休闲的时光。 微信小程序前端开发者工具将大大地为您节省开…

Ajax 生成流文件下载 以及复选框的实现

JQuery的ajax函数的返回类型只有xml、text、json、html等类型&#xff0c;没有“流”类型&#xff0c;所以我们要实现ajax下载&#xff0c;不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form&#xff0c;用这个form提交参数&#xff0c;并返回“流”类型的数据。在…

mysql1130_解决远程连接mysql错误1130的方法

解决远程连接mysql错误1130代码的方法今天在用远程连接Mysql服务器的数据库&#xff0c;不管怎么弄都是连接不到&#xff0c;错误代码是1130&#xff0c;ERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server猜想是无法给远程连接的用户权限问题。结…

使用Classycle验证类/包依赖关系

Classycle是一个非常好的类和包依赖项的分析器和依赖项检查器。 它使您可以定义程序包组&#xff08;组件&#xff0c;层&#xff09;&#xff0c;并表达不需要的依赖性&#xff0c;例如周期或特定程序包之间的依赖性。 例如&#xff0c;您可以指定不希望包周期&#xff0c;也…