CSS 揭秘 阅读笔记:(Ch5-Ch6)

  • CSS 揭秘 阅读笔记:(Ch5-Ch6)
    • Ch5 字体排印
      • 5.20 连字符断行
      • 5.21 插入换行
      • 5.22 文本行的斑马条纹
      • 5.23 调整tab 的宽度
      • 5.24 连字
      • 5.25 华丽的& 符号
      • 5.26 自定义下划线
      • 5.27 现实中的文字效果
        • 凸版印刷效果
        • 空心字效果
        • 文字外发光效果
        • 文字凸起效果
      • 5.28 环形文字
    • Ch6 用户体验
      • 6.29 选用合适的鼠标光标
      • 6.30 扩大可点击区域
      • 6.31 自定义复选框
        • 开关式按钮
      • 6.32 通过阴影来弱化背景
        • 伪元素方案
        • box-shadow 方案
      • 6.33 通过模糊来弱化背景
      • 6.34 滚动提示
      • 6.35 交互式的图片对比控件
        • CSS resize 方案
        • 范围输入控件方案

CSS 揭秘 阅读笔记:(Ch5-Ch6)

DRY Don’t Repact Youself
WET We Enjoy Typing or Write Everything Twice

Ch5 字体排印

5.20 连字符断行

 hyphens: none | manual | auto

manual 是它的初始值,我们可以在任何时候手工插入软连字符,来实现断词折行的效果。

 hyphens: auto;

仅此一行足矣。当然,为了确保它奏效,你需要在HTML 标签的lang 属性中指定合适的语言。

5.21 插入换行

有一个Unicode 字符是专门代表换行符的:0x000A。在CSS 中,这个字符可以写作"\000A",或简化"\A"。在HTML 代码中输入换行符,这些换行符会与相邻的其他空白符进行合并。有时候我们希望保留源代码中的这些空白符和换行,用到white-space: pre;。

<dl><dt>Name:</dt><dd>Lea Verou</dd><dt>Email:</dt><dd>lea@verou.me</dd><dd>leaverou@mit.edu</dd><dt>Location:</dt><dd>Earth</dd>
</dl>

在理想情况下,我们只想针对dt 之前的最后一个dd 来插入换行,一个想法就是换行符不用加在dd 的后面,而是加在dt 的前面。在理想情况下,我们希望能够告诉浏览器“只在后面还跟着一个dd 的dd 尾部插入逗号”,但我们又一次遇上了那个限制,眼下的CSS 选择符还表达不出这种需求。因此,我们再次调整思路,在每个前面有dd 的dd 头部插入逗号。

 dt, dd { display: inline; }dd {margin: 0;font-weight: bold;}dd + dt::before {content: '\A';white-space: pre;}dd + dd::before {content: ', ';margin-left: -.25em;font-weight: normal;}

5.22 文本行的斑马条纹

对整个元素设置统一的背景图像,一次性加上所有的斑马条纹。它的background-size 需要设置为line-height 的两倍,因为每个背景贴片需要覆盖两行代码。让背景自动跟着内边距的宽度走,background-origin 可以告诉浏览器在解析background-position 时以content box 的外沿作为基准,而不是默认的padding box 外沿。

 padding: .5em;line-height: 1.5;background: beige;background-size: auto 3em;background-origin: content-box;background-image: linear-gradient(rgba(0,0,0,.2) 50%, transparent 0);

5.23 调整tab 的宽度

CSS 属性tab-size 可以控制缩进,这个属性接受一个数字(表示字符数)或者一个长度值。

 tab-size: 2;

5.24 连字

就像人与人一样,字形(glyph)与字形也不都是和睦相处的。为了缓解这个问题,字体设计师通常会在字体中包含一些额外的字形,称作连字(ligature)。这些字形被设计为双字形或三字形的单一组合体,专门提供给排版软件使用,代为显示特定的字符组合。
在CSS 字体(第三版)中,原有的font-variant 被升级成了一个简写属性,由很多新的展开式属性组合而成。其中之一叫作font-variant-ligatures,专门用来控制连字效果的开启和关闭。如果要启用所有可能的连字,需要同时指定这三个标识符:

 font-variant-ligatures: common-ligatures discretionary-ligatures historical-ligatures;

如果要把font-variant-ligatures 属性复位为初始值,应该使用normal 而不是none。

5.25 华丽的& 符号

&:& amp;
unicode-range 描述符只在@font-face 规则内部生效,它可以把字体作用的字符范围限制在一个子集内。它对本地字体和远程字体都是有效的。unicode-range 在实践中非常实用,它的语法是基于“Unicode 码位”的,而不是基于字符的字面形态。

 "&".charCodeAt(0).toString(16); //查出指定字符的十六进制码位

5.26 自定义下划线

text-decoration 属性规定添加到文本的修饰,下划线、上划线、删除线等。

 text-decoration: none;      /*没有文本装饰*/text-decoration: underline red;       /*红色下划线*/text-decoration: underline wavy red;   /*红色波浪形下划线*/text-decoration-style: solid | double | dotted | dashed | wavy | initial | inherit;

背景可以完美地跟随换行的文本,而且借助CSS 背景与边框(第三版)中与背景相关的新属性,我们已经拥有了细粒度控制背景的能力。我们甚至不需要用到额外的HTTP 请求来加载背景图片,因为可以通过CSS 渐变来凭空生成所需的图像。
请注意下划线会穿过某些字母(比如p 和y)的降部。下划线在遇到字母时会自动断开避让,假如背景是一片实色,就可以设置两层与背景色相同的text-shadow 来模拟这种效果。

 background: linear-gradient(gray, gray) no-repeat;background-size: 100% 1px;background-position: 0 1.15em;text-shadow: .05em 0 white, -.05em 0 white;

使用渐变来实现下划线的高明之处在于,这些线条极为灵活。可以通过色标的百分比位置值来微调虚线的虚实比例,还可以通过background-size 来改变虚线的疏密。

 background: linear-gradient(90deg, gray 66%, transparent 0) repeat-x;background-size: .2em 2px;background-position: 0 1em;
</

CSS 揭秘-阅读笔记:(Ch5-Ch6)相关推荐

  1. 《CSS揭秘》笔记(一)

    前言 我们在现代 CSS 中所面临的挑战已经不在于如何绕过这些转瞬即逝的浏览器 bug.如今的挑战是,在保证 DRY ① .可维护.灵活性.轻量级并且尽可能符合标准的前提下,把我们手中的这些CSS特性 ...

  2. css 揭秘-读书笔记

    css 揭秘 [希]Lea verou 著 css 魔法 译 该书涵盖7大主题,47个css技巧,是css进阶必备书籍,开阔思路,探寻更优雅的解决方案.这本书完全用css渲染出的html写成的(布局. ...

  3. 3-6CSS揭秘阅读笔记第一章:引言

    写CSS的要求?--保证DRY(don't repeat yourself ),可维护.灵活性.轻量级 不同浏览器表现有细微差异,需要加浏览器前缀,把标准语法排在最后.可以在书写css时,提供回退机制 ...

  4. 《CSS揭秘》读书笔记

    摘要 <CSS揭秘>主要是介绍了使用CSS的技巧,通过47个案例来灵活的使用CSS进行实现,同时在实现过程中注重CSS代码的灵活性与健壮性.通过阅读这本书有利于我们编写高质量的CSS代码以 ...

  5. Head First HTML与CSS阅读笔记(二)

    上一篇Head First HTML与CSS阅读笔记(一)中总结了<Head First HTML与CSS>前9章的知识点,本篇则会将剩下的10~15章内容进行总结,具体如下所示. div ...

  6. CSS入门学习笔记(案例+详解)

    CSS入门学习笔记 一.CSS简介 1.什么是CSS? 2.为什么使用CSS? 3.CSS的作用 二.CSS语法 1.CSS基础语法 2.CSS注释语法 3.CSS应用方法 三.CSS选择器 1.元素 ...

  7. 《CSS揭秘》-总结47个Css技巧(一):常用的背景与边框技巧

    注:本文案例来源于<CSS揭秘>这本书. 1. 设置半透明边框无效? 使用 background-clip padding-box 解决. background white backgro ...

  8. CSS揭秘:6.复杂的背景图案(下)

    文章目录 前言 一.网格Svg svg css 小结 相关阅读 前言 上一篇文章中我们学会了如何使用实现棋盘背景的方法,但是显而易见的代码量是比较多的.那么怎么可以优化代码量,降低维护成本呢? 一.网 ...

  9. CSS揭秘:5.条纹背景(上)

    文章目录 条纹背景 CSS线性渐变 css线性渐变小结 background-size 水平条纹 水平 First Try 水平 Second Try 水平 Third Try 水平 Forth Tr ...

最新文章

  1. ThoughtWorks技术雷达专区
  2. Vue项目中自动将px转换为rem
  3. jmeter和oracle,jmeter测试Oracle数据库
  4. SpringIOC原理
  5. RDKit化学式 分子式搜索
  6. JqueryEasyUI $.Parser
  7. termux安装渗透工具一
  8. 彩影ARP防火墙 v6.0.2(x64)的问题 错误代码1/0 解决方案
  9. 基于多进程架构的嵌入式软件框架研究与实现
  10. 魔域单机服务器显示read,魔域boss点,单机假设相关信息(Demon boss point, single machine assumes relevant information).doc...
  11. 《断舍离(心灵篇)》-[日]山下英子
  12. uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数
  13. PLSQL入门与精通(第72章:LOGOFF触发器)
  14. opencv warpAffine()函数详解 -- 图像旋转与平移
  15. Limitless牵手VR社交平台High Fidelity,提供交互角色创建技术
  16. mybatis-日志工厂
  17. 文思海辉技术有限公司——流程管理架构平台应用
  18. 7-99 含有2个运算符的算数表达式(选作)
  19. 福布斯评出十大热门创业公司
  20. GB/T 2423.16电工电子产品环境试验第⒉部分:试验方法试验J及导则:长霉

热门文章

  1. Huffman 编码
  2. 【每日英文】2021.8.14
  3. python 直接用账号密码cookie登陆人人网获取页面
  4. java 重绘_java进度条重绘要怎么编写?
  5. 数字化定量分析_【每日海量股票资料免费送】炒股数字化定量分析PDF讲义+各类指标...
  6. Python零基础先修课第五周
  7. Patroni for opengauss 10:rewind
  8. 蓝牙传输速率详细分析【针对蓝牙4.2】
  9. 真·“拜师学艺”?2021中科院开源之夏,开源大牛1V1万元奖金只等你来!
  10. linux多串口改波特率,如何在S3C2440上linux操作系统下将串口的波特率提高以致921600...