第五章   使用CSS美化网页文本

学习重点

  • 定义字体类型、大小、颜色等字体样式;
  • 设计文本样式,如对齐、行高、间距等;
  • 能够灵活设计美观、实用的网页正文版式。

5.1 字体样式

5.1.1 定义字体类型

CSS使用font-family来定义字体类型,用法如下:

font-family:name   /*name表示字体名称,可以指定多种字体*/                           /*不懂,多种字体怎么应用?*/

font-family:ncursive | fantasy | monospace | serif | sans-serif                              /*ncursive是什么?书上是这么写的。*/

如果字体名称包含空格,则使用引号括起。

font是一种复合属性,能够设置多种字体属性,属性值之间以空格分隔。

font属性至少要设置字体大小和字体类型,且必须放在后面,否则无效。前面可以自定义字体样式、字体粗细、大小写和行高。

CSS提供了5种通用字体,如果指定的所有字体都不可用时,能够在用户系统中找到一个类似字体进行替代显示。

  • serif:衬线字体;
  • sans-serif:无衬线字体;
  • cursive:草体;
  • fantasy:奇异字体(艺术字);
  • monospace:等宽字体,唯一标准就是所有的字型宽度一样。

通用字体对中文无效。

5.1.2 定义字体大小

CSS用font-size来定义字体大小,用法如下:

font-size:xx-small | x-small | small | medium | large | x-large| xx-large | larger | smaller | length

larger和smaller根据父对象中字体尺寸进行相对增大或缩小处理,使用成比例的em单位进行计算。

length可以是百分数,或者浮点数字和单位标识符组成的长度值,但不可以是负数。百分比取值基于父对象中字体尺寸。

字体大小绝对单位:in(英寸)、cm、mm、pt、pc。

字体大小相对单位:px(pixel,像素)、em、ex、%。

对于网页宽度固定或者栏目宽度固定的布局,使用像素。

对于页面宽度或者栏目宽度不固定的布局,使用百分比或者em。

从用户易用性角度考虑,定义字体大小应该以em或%进行设置。

  • 有利于客户端浏览器调整字体大小;
  • 字体能够适应版面宽度的变化。

5.1.3 定义字体颜色

CSS使用color属性来定义字体颜色。

例:p{ color:red}

CSS3支持另外3种颜色表示法:

  • RGBA颜色表示法,就是在RGB颜色的基础上加了Alpha通道,可以定义半透明的颜色。
  • HSL颜色表示法,就是使用色相(H)、饱和度(S)和亮度(L)表示颜色的一种方法。
  • HSLA颜色表示法,在HSL的基础上增加了Alpha通道。

5.1.4 定义字体粗细

CSS使用font-weight属性来定义字体粗细。

示例:font-weight:normal | bold | bolder | lighter |100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900

normal相当于400,bold相当于700或者<b>标签定义的字体效果。

bolder和lighter相对于normal字体粗细而言。                                                                                       /*不知道可不可以重复让字体再细*/

5.1.5 定义斜体字体

CSS使用font-style属性来定义字体倾斜效果,用法如下:

font-style:normal | italic | oblique

normal表示默认值,即正常的字体;italic表示斜体;oblique表示倾斜的字体。                                   /*斜体和倾斜的文字,看下有什么不同*/

italic和oblique两个取值只能在西方文字中有效。                                                                                  /*给的例子把中文改成了italic,不懂*/

5.1.6 定义下划线

CSS使用text-decoration属性来定义字体下划线效果

text-decoration:none | underline | blink | overline | line-through                                                             /*可以声明多个效果*/

blink表示闪烁效果,underline表示下划线效果,line-through表示贯穿效果,overline表示上划线效果。

5.1.7 定义字体大小写

CSS使用font-variant属性来定义字体大小写效果

font-variant:normal | small-caps

small-caps:小型的大写字母字体

仅支持西方字体。如果设置了小型的大写字体,但是该字体没有找到原始小型大写字体,则浏览器会模拟一个。

CSS还定义了一个text-transform属性,该属性主要定义单词大小写样式。

text-transform:none | capitalize | uppercase | lowercase

capitalize:将每个单词的第一个字母转换为大写

uppercase:将所有字母转换为大写

lowercase:将所有字母转换为小写

5.2 文本样式

5.2.1 定义文本对齐

CSS使用text-align属性来定义文本的水平对齐方式,该属性的用法如下:

text-align:left | right | center | justify

justify:两端对齐

5.2.2 定义垂直对称

CSS使用vertical-align属性来定义文本垂直对齐问题,用法如下:

vertical-align:auto | baseline | sub | top | text-top | middle | bottom | text-bottom | length

  • auto:根据layout-flow属性的值对齐对象文本;
  • baseline:默认值,与基线对齐;
  • sub:垂直对齐文本的下标;
  • super:垂直对齐文本的上标;
  • top:将支持valign特性的对象的内容与对象顶端对齐;
  • text-top:将支持valign特性的对象的文本与对象顶端对齐;                                                          /*对象的对象是什么意思?*/
  • middle:将支持valign特性的对象的内容与对象中部对齐;
  • bottom:将支持valign特性的对象的内容与对象底端对齐;
  • text-bottom:将支持valign特性的对象的文本与对象底端对齐;
  • length:表示由浮点数字和单位标识符组成的长度值或者百分数,可以是负数,定义由基线算起的偏移量。

5.2.3 定义字距和词距

CSS使用letter-spacing属性定义字距,word-spacing属性定义词距。取值都是长度值,由浮点数字和单位标识符组成。

定义词距时,以空格为基准进行调节。多个单词被连在一起,视为一个单词;汉字被空格分隔,分隔的多个汉字视为不同的单词。

5.2.4 定义行高

行高也称行距,是段落文本行和文本行之间的距离。CSS使用line-height属性定义行高利用。用法如下:

line-height:normal | length

normal表示默认值,一般为1.2em。

一般行高的最佳设置范围为1.2em~1.8em。原则:字体越大,行高越小。

设置更灵活的行高样式:给line-height属性设置一个数值,但是不设置单位。

如:

body{ line-height:1.6;}

利用这种设置方法,可以解决多层嵌套结构中行高继承出现的问题。

5.2.5 定义缩进

CSS用text-indent属性定义首行缩进,用法如下:

text-indent:length

使用text-indent属性可以设计悬垂缩进效果。示例:

p{/*悬垂缩进2个字距*/
text-indent:-2em;
padding-left:2em;
}

定义左侧补白(padding-left),防止文本落到段落边界外边。

5.3 CSS3新增文本样式

5.3.1 定义文本阴影

CSS3使用text-shadow属性给文字添加阴影效果。(Safari、Firefox、Chrome和Opera等主流浏览器都支持该功能。)

语法:text-shadow:none | <shadow> [  , <shadow> ]*

<shadow>=<length>{2,3}&&<color>?

none:无阴影。

length:第一个长度值用来设置阴影水平偏移值,第二个长度值用来设置阴影垂直偏移值,第三个长度值用来设置对象的阴影模糊值——模糊半径(不允许负值)。

color:设置对象的阴影的颜色。

示例:text-shadow:0.1em 0.1em #333; /*向右下偏移的#333色阴影*/

5.3.2 设计阴影特效

1、通过阴影增加前景色与背景色的对比度

2、定义多色阴影

text-shadow可以接受一个以逗号分割的阴影效果列表,阴影按照给定的顺序应用。当使用text-shadow定义多色阴影时,每个阴影效果必须指定阴影偏移。

3、定义火焰文字

借助阴影列表机制,可以使用阴影叠加出燃烧的文字特效。

<style type="text/css">
body{background:blue;}
p{
text-align:center;
font: 60px helvetica, arial, sans-serif;
color:red;
text-shadow:0 0 4px white,
0 -5px 4px white,
2px -5px 4px #fd3,
-2px -15px 11px #f80,
2px, -25px 18px #f20;
}
</style>
(p)

4、定义立体文字

text-shadow属性可以使用在:first-letter和:first-line伪元素上。同时还可以设计出立体文本。

5、定义描边文字

text-shadow属性可以为文本描边,方法是分别为文本4个边添加1像素的实体阴影,代码如下:

 <style type="text/css">
body{ background: #000;}
p{
text-align:center;
padding: 24px;
margin:0;
font-family: helvetica, arial, sans-serif;
font-size: 80px;
font-weight: bold;
color: red;
background: #CCC;
text-shadow: -1px 0 black,
0 1px black,
1px 0 black,
0 -1px black;
}
</style>
<p>文本阴影</p>

6、定义外发光文字

设计阴影不发生位移,同时定义阴影模糊显示,可以模拟出文字发外光效果,代码如下:

 <style type="text/css">
body{ background:#000;}
p{
text-align:center;
padding:24px;
margin:0;
font-family:helvetica, arial, sans-serif;
font-size:80px;
color:red;
background:#CCC;
text-shadow:0 0 0.2em #F87,
0 0 0.2em #F87;
}
</style>
<p>文本阴影:text-shadow</p>

5.3.3 定义溢出文本

CSS3新增了text-overflow属性,该属性可以设置超长文本省略显示。基本语法如下:

Text-overflow:clip | ellipsis | ellipsis-word

clip:不显示省略号标记(…),而是简单的裁切;

ellipsis:表示当对象文本溢出时显示省略标记(…),省略标记插入的位置是最后一个字符;

ellipsis-word:表示当对象文本溢出时显示省略标记(…),省略标记插入的位置是最后一个字母。

要实现溢出时产生省略号的效果,必须在定义两个样式:强制文本在一行内显示(white-space:nowrap)和溢出内容为隐藏(overflow:hidden)。

5.3.4 文本换行

CSS3使用word-break属性定义文本自动换行。

  • line-break专门负责日文换行。
  • word-wrap控制换行。属性取值break-word时,强制换行,控制是否断词,而不是断字符。
  • word-break主要针对亚洲语言和非亚洲语言进行控制换行。
    • 属性取值break-all时,可以允许非亚洲语言文本行的任意字内断开;
    • 属性取值keep-all时,表示对于中文、韩文、日文不允许字断开。
  • white-space具有格式化文本的作用。
    • 属性取值为nowrap时,表示强制在同一行内显示;
    • 属性取值为pre时,表示显示预定义文本格式。

5.3.5 添加动态内容

content属性属于内容生成和替换模块,能够为指定元素添加内容。能够满足样式设计中临时添加非结构性的样式服务标签,或者添加补充说明性内容等。

content属性的基本语法:content:normal | string | attr() | uri() | counter () | none;

content属性初始值为normal,适用于所有可用元素,其它取值说明如下:

  • string:插入文本内容。
  • attr():插入元素的属性值。
  • uri():插入一个外部资源。
  • counter():计数器,用于插入排序标识。
  • none:无任何内容。

5.3.6 恢复默认样式

CSS3中新增了一个initial属性值,可以直接取消对某个元素的样式指定。

如:p{color:initial;}

5.3.7 自定义字体类型

通过@font-face能够加载服务器端的字体文件,让客户端浏览器显示客户端所没有安装的字体。

@font-face的语法格式为:@font-face{ <font-description>}

<font-description>是一个属性名值对,格式如下:

descriptor:value;

descriptor:value;

descriptor:value;

descriptor:value;

descriptor:value;

[...]

descriptor:value;

属性及其取值说明如下:

  • font-family:设置文本字体;
  • font-style:设置文本样式;
  • font-variant:设置文本是否大小写;
  • font-weight:设置文本粗细;
  • font-stretch:设置文本是否横向的拉伸变形;
  • font-size:设置文本字体大小。

学习笔记 第五章 使用CSS美化网页文本的更多相关文章

  1. 学习笔记 第七章 使用CSS美化超链接

    第7章  使用CSS美化超链接 学习重点 认识超链接 熟悉伪类 定义超链接样式 能够灵活设计符合页面风格的链接样式 7.1  定义超链接 在HTML5中建立超链接需要两个要素:设置为超链接的网页元素和 ...

  2. 学习笔记 第六章 使用CSS美化图片

    第六章  使用CSS美化图片 6.1  在网页中插入图片 GIF图像 跨平台能力,无兼容性问题: 具有减少颜色显示数目而极度压缩文件的能力,不会降低图像的品质(无损压缩): 支持背景透明功能,便于图像 ...

  3. Programming Entity Framework-dbContext 学习笔记第五章

    ### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...

  4. [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像

    [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像 干货 JPEG.PNG.GIF有何不同 JPEG适合连续色调图像,如照片:不支持透明度:不支持动画:有损格式 PNG适合单 ...

  5. 《Spring实战》学习笔记-第五章:构建Spring web应用

    之前一直在看<Spring实战>第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读<Spring实战>第四版了,章节安排与之前不同了,里面应用的应该是最新的技术. ...

  6. 【马克-to-win】学习笔记—— 第五章 异常Exception

    第五章 异常Exception [学习笔记] [参考:JDK中文(类 Exception)] java.lang.Object java.lang.Throwable java.lang.Except ...

  7. opencv图像处理基础 (《OpenCV编程入门--毛星云》学习笔记一---五章)

    #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgu ...

  8. o'Reill的SVG精髓(第二版)学习笔记——第五章

    第五章 文档结构 5.1 结构与表现 XML的目标之一便是提供一种能将结构从视觉表示中独立出来的方法. 但是不幸的是,关于XML的很多讨论都强调结构而非表现. 我们将通过详细讨论如何在SVG中指定表现 ...

  9. [汇编学习笔记][第五章[BX]和loop指令]

    第五章[BX]和loop指令 前言 定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如: (ax)表示ax中的内容,(al)表示al的内容. 约定符号ideta表示常量. 5.1 [BX ...

随机推荐

  1. HTTPS 是如何保证安全的?

    每当我们讨论到信息安全的时候,我们最长接触到的信息加密传输的方式莫过于 HTTPS 了,当我们浏览器地址栏闪现出绿色时,就代表着这个网站支持 HTTPS 的加密信息传输方式,并且你与它的连接确实被加密 ...

  2. Why we have tuple and list in python

    The most notable difference between tuple and list is that tuple is immutable and list is mutable. B ...

  3. Apache2 Web 服务器

    Apache2 Web 服务器的安装 sudo apt install apache2 -y 当安装Apache2包之后,Apache2相关的服务是启用的,并在重启后自动运行.在某些情况下如果你的Ap ...

  4. Nginx中配置vue,react项目地址

    如题 像以前在Nginx中配置域名解析的时候只需要在conf.d文件夹下添加对应的xx.conf文件(当然了你也可以在nginx.conf)下配置. 如果是以前的老项目只需要在配置文件中server内 ...

  5. sdut 4-1 复数类的运算符重载

    4-1 复数类的运算符重载 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握成员运算符重载及友元运算符重载 要求定义一个复数类.重 ...

  6. the “identity” of an object

    2. Built-in Functions — Python 3.6.5 documentation https://docs.python.org/3.6/library/functions.htm ...

  7. 洛谷 P2038 无线网络发射器选址 —— 二维树状数组

    题目:https://www.luogu.org/problemnew/show/P2038 大水题暴露出我的愚蠢. 用二维树状数组,然而居然忘了它应该那样写,调了一个小时: 正方形可以超出外面,只要 ...

  8. bzoj1016 [JSOI2008]最小生成树计数——Kruskal+矩阵树定理

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1016 从 Kruskal 算法的过程来考虑产生多种方案的原因,就是边权相同的边有一样的功能, ...

  9. MSD6A628开发资料与技术支持

    MSD6A628VX/VXM是mstar推出的低成本安卓智能网络电视方案,628分两个版本,一个是内置512MB内存,一个是外挂1G内存, 安卓4.4系统,4核A7处理器,Mali450MP2 GPU ...

  10. FreeMarker:模板开发指南

    ylbtech-FreeMarker:模板开发指南 1.返回顶部 1. Section Contents 入门 模板 + 数据模型 = 输出 数据模型一览 模板一览 数值,类型 基本内容 类型 模板 ...