《耐人寻味的CSS属性white-space》,本文说的white-space是一个控制换行和空白处理的CSS属性。我曾经被这个属性烦死,一直没记住,今天决定还是写下来好好琢磨下。

属性值

normal

默认值,正常换行,空白和换行符会被浏览器忽略。啥意思呢?

  • 正常换行的意思是,单词间会正常换行,如果下一个单词太长,不足以在当前行剩余部分完整展示,则会在下一行显示。哪些情况算一个单词呢?

    • 一个中文字

    • 一个英文单词

      // 这是两个单词
      Tusi Blog
      // 这只算一个单词
      TusiBlog
    • 连续的数字或符号也只算一个单词

      // 这只算一个单词,如果超长也不会换行,会挤出横向滚动条
      10000000000000000000000+2000000000000000000*200000000000000
  • 空白和换行符会被浏览器忽略。就是你输入连续的空格,只会表现出一个空格的效果;如果敲了回车,也不会换行。

<!-- 代码 -->
<div>00000000 00000000000000000></div>
<!-- 实际效果 -->
00000000 00000000000000000

pre

  • 行为方式类似HTML中的pre标签。pre标签一般用来包裹源代码。
  • 不会自动换行(想想,你写代码时,不回车会换行吗?),除非在文本中遇到换行符(敲了回车)或使用了br标签。
  • 空白会被浏览器保留。意思就是连续的空格会被保留,不会合并成一个。

nowrap

  • 不换行,内容再多也不换行。

  • 忽略换行符,也就是说回车也不会换行,直到遇到br标签为止。

pre-wrap

  • 正常换行
  • 连续的空白符会被保留
  • 换行符(回车)也是有效的

pre-line

  • 正常换行
  • 连续空白符会被合并成一个
  • 换行符(回车)也有效

inherit

继承父元素的white-space属性值

总结

可以从几个方面来对比下这几种属性值的差异。

是否正常换行 是否合并连续空白符 换行符是否有效
normal 是 是 否
pre 否 否 是
nowrap 否 是 否
pre-wrap 是 否 是
pre-line 是 是 是

妈呀,还是挺难记的,多多复习!

首发链接


扫一扫下方小程序码或搜索Tusi博客,即刻阅读最新文章!

【重拾基础】耐人寻味的CSS属性white-space的更多相关文章

  1. 耐人寻味的CSS属性font-family

    font-family是一个网站用户体验的第一入口,非常有必要花功夫来研究一下.我们首先需要了解衬线字体和无衬线字体,接着了解中英文的常用字体及其适用性. 衬线字体 衬线(serif)的笔画有粗有细的 ...

  2. CSS基础学习-6.CSS属性_列表、表格

  3. CSS基础学习-5.CSS属性_字体文本文本装饰

  4. CSS基础学习-4.CSS属性_背景、颜色、边框

  5. 重拾Java Web应用的基础体系结构

    目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...

  6. 重拾CSS基础—开篇

    由来 从事软件行业一晃也5年有余,之间参与过若干个基于web的项目,所以javascript和Html基本已经相当熟悉,最近对于web前端开发比较关注,分析后发现CSS的确是自己的弱项,于是决定再加强 ...

  7. CSS魔法堂:重拾Border之——更广阔的遐想

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  8. CSS魔法堂:重拾Border之——图片作边框

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  9. CSS魔法堂:重拾Border之——不仅仅是圆角

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

随机推荐

  1. Linux vi与vim使用

    vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...

  2. LVS+Keepalived-DR模式

    Environment:4台CentOS机器 两台LVS 两台web服务器 LVS主备的操作,都需要安装ipvsadm和keepalived yum -y install ipvsadm keepal ...

  3. 计算机等级考试真题2(JAVA)

    答案: 解析: (注:解析部分是博主用所学知识以及在百度上搜索总结出来的)   1. D (A)类属于JAVA语言的引用数据类型. (B)接口属于JAVA语言的引用数据类型. (C)数组属于JAVA语 ...

  4. css重点知识和bug解决方法

    1.图片向下撑大3像素问题 在一个盒子里面放一张图片,默认情况下,图片会向下撑大3像素,有以下几种解决方法: 1.1 给图片添加display:block: 1.2 给图片添加 float:left: ...

  5. elasticsearch7.5.0+kibana-7.5.0+cerebro-0.8.5集群生产环境安装配置及通过elasticsearch-migration工具做新老集群数据迁移

    一.服务器准备 目前有两台128G内存服务器,故准备每台启动两个es实例,再加一台虚机,共五个节点,保证down一台服务器两个节点数据不受影响. 二.系统初始化 参见我上一篇kafka系统初始化:ht ...

  6. Python面向对象-@property装饰器

    python中,我们可以直接添加和修改属性的值: >>> class Student(object): ... pass ... >>> s = Student() ...

  7. 线程提供了一个方法:void join() ,join可以协调线程之间的同步运行。

    package seday09; /** * @author xingsir * 线程提供了一个方法:void join() ,join可以协调线程之间的同步运行. * 此方法允许执行这个方法的线程在 ...

  8. 分布式事物 - 基于RPC调用 - TCC模式

    前提 前端业务(主服务)可以以同步或异步调用TCC框架,或者TCC框架本身就是同步异步兼备的. 假定TCC框架拥有断电后的自动恢复能力.同时,在下游业务出现无限失败的情况下,也会进行无限的重试,以达到 ...

  9. unittest---unittest封装方法

    前面我们写了一个关于查询歌曲的接口测试,但是代码重复性比较大,进行一次简单的优化 封装方法 在编写自动化脚本的时候,都要求代码简介,上一篇unittest---unittest断言中代码重复性比较多, ...

  10. Highlight List View Objects 突出显示列表视图对象

    In this lesson, you will learn how to format data that satisfies the specified criteria. For this pu ...