《CSS3秘籍》(第三版)-读书笔记(2)

时间:2021-04-16 16:09:51

第6章 文本格式化

1、  使用字体

字体font-family:

通用的字体样式:

  • serif字体最适用于冗长的文字信息。这种字体使字母主笔画的结尾处会有一些细小的“足”。
  • sans-serif字体经常用在标题上。
  • monospaced(等宽)字体经常用于显示计算机代码。

2、  使用Web字体

Web字体的CSS部分很简单,只需要两个CSS命令

  • @font-face指令负责告诉Web浏览器字体的名称以及到哪里去下载这种字体。
  • font-family属性定义Web字体的方式。一旦@font-face指令指示浏览器去下载字体,你就可以利用font-family属性在任何CSS样式中设置该字体了。

@font-face {

font-family: " PTSansRegular ";        给字体进行命名

src: url('fonts/PTSansRegular.eot');

url('fonts/ PTSansRegular.eot?#iefix')  format('embedded-opentype') ;

url('fonts/ PTSansRegular t.woff')  format('woff'),

url('fonts/ PTSansRegular.ttf')  format('ttf'),

url('fonts/ PTSansRegular.svg')  format('svg'),

font-weight: bold;

font-family: italy;

}

3、  给文本添加颜色color

4、  修改字号font-size

5、  格式化词语和字母

  • 斜体化font-style
  • 粗体化font-weight
  • 大写化text-transform
  • 小型大写字母font-variant: small-caps;
  • 文本的修饰text-decoration
  • 字母间距letter-spacing
  • 字词间距word-spacing

6、  给文本添加阴影text-shadow

7、  格式化整个段落

  • 调整行间距line-height
  • 对齐文本text-align
  • 首行缩进text-indent
  • 可以利用margin-top和margin-bottom属性控制段落间的距离
  • 格式化段落的首字母和首行,可以利用伪元素:first-letter和:first-line

8、  给列表定义样式

  • 列表的类型list-style-type
  • 利用list-style-position属性控制项目符号的位置,也可以让项目符号显示在文本之外或文本之内。
  • 图形项目符号list-style-image

第7章 margin、padding和border

1、  理解盒模型

对于Web浏览器而言,任何标签都是里面装有东西的盒子,包括文本、图片或者包含别的东西的其他标签。

内容的周围通常环绕着装饰盒子的不同属性:

  • padding是指内容与其边框线之间的空间。
  • border是指盒子周围的直线。
  • background-color是用来填充边框内部空间的,包括padding区域。
  • margin是指一个标签和另一个标签之间的间隔。

2、  用margin和padding控制空间

当元素的bottom margin碰到另一个元素的top margin时,此时浏览器不是把这两个边距相加,而是应用它们中较大的一个。这种现象称为“collapsing margin(边距折叠)”。

CSS有两种不同的盒子类型:block box(块级盒子)和inline box(行内盒子)。它们分别对应于两个标签类型:块级标签和行内标签。

display: inline可以使块级元素像行内元素一样,反之display: block可以使行内元素像块级元素一样。

3、  添加边框border

每个border都通过这3个不同的属性进行控制:color(颜色)、width(宽度)和style(样式)。

4、  设置背景色background-color

在使用border-radius和border时要切记,Web浏览器实际上把背景色显示在边框的下方。

5、  创建圆角border-radius

通过提供单个值,或者两个以/隔开的值,可以创建出圆角或者椭圆角。

只接受一个值,它就会将这个值应用给一个元素的所有4个角。

也可以接受四个值,按顺序:左上角、右上角、右下角、左下角设置四个不同的角。

IE8及其更早的版本不支持border-radius属性,因此将显示为方形角。此外,iOS的Safari 3.2和Android Browser 2.1需要用供应商前缀-webkit-

6、  给元素的边界框添加阴影box-shadow

box-shadow属性的基本语法,包括4个参数,分别为:

  • 水平偏移量(正值是将阴影移动到右边,负值是将阴影移到左边);
  • 垂直偏移量(正值是将阴影放在方框的底边下方,负值则是将阴影移到方框顶边的上方);
  • 阴影的半径,它决定阴影的模糊度和宽度。值为0时,完全不模糊,因此阴影的边沿十分清晰。这个值越大,阴影就会越模糊,并且更宽;
  • 阴影的颜色。

box-shadow属性还包括两个可选的值:inset关键字和阴影的尺寸(spead):

  • 关键字inset告诉浏览器要将阴影画在方框内部。如果将inset作为box-shadow的第一个值,将会创建一个嵌入式阴影。
  • 还可以添加一个阴影尺寸作为第4个值(在阴影半径和阴影颜色之间)。阴影的尺寸会将阴影扩展指定的值,这个值还表示什么时候要应用模糊半径。

7、  确定高度和宽度

height和width属性是构成部分CSS盒模型的另外两个属性。

计算相关元素盒子的实际宽度时,要把margin、border、padding和width属性值全部加起来。计算元素在屏幕中占据的高度也一样。

CSS3还提供了一个属性,可以让你修改浏览器计算元素的屏幕宽度(和高度)的方法。box-sizing属性提供了以下3个选项:

  • content-box选项:浏览器会将border宽度和padding厚度与width和height属性值相加,来确定该标签的屏幕宽度和高度。
  • padding-box选项:是告诉浏览器,当你在一个样式中设置了width或者height属性时,它就应该包含padding作为该值的一部分。
  • border-box值中包含了padding厚度和border厚度,将它作为width和height值的一部分。

Firefox不支持标准的属性名称,因此需要使用供应商前缀版本;对于iSO的旧版Safari以及Android(版本3及其更早)也是如此。

box-sizing属性甚至适用于IE 8及其更新的版本,但IE 7不支持这个属性。

用overflow属性控制溢出文本。用4个关键字来控制溢出盒子边沿的那部分内容该如何显示:visible、scroll、auto、hidden。

高度和宽度的最大化和最小化:

  • max-width属性用于设置元素的最大宽度。这个元素可以比设定值小,但它决不能大于设定值。
  • max-height
  • min-width属性用于设置元素的最小宽度。元素可以扩展宽度到超过最小宽度值,但是永远不会小于这个宽度值。
  • min-height

8、  用浮动元素包围内容

float属性可以把元素移动到左边或者右边。它的选项有3种:left、right或none。

background和border不能像其他网页元素一样浮动。因此,可以给设置了浮动下方跑动的背景图片或边框的样式添加一条规则overflow:hidden; ,可以让任何延伸到浮动下方的背景和边框消失。

clear(清除)属性会指示元素不要包围浮动项目。清除元素时,本质上是迫使它落到浮动项目的下方。有以下选项:left、right、both和none。

第8章 给网页添加图片

1、  以下是一些经常用来处理图片的CSS属性:border(边框)、padding(填充)、float(浮动)、margin(边距)。

2、  添加背景图片background-image

3、  控制重复

如果单独使用background属性,图片将总是平铺,填满网页的整个背景。可以利用background-repeat属性指定图片要如何平铺(或者根本不平铺),该属性接受这4个值:repeat、no-repeat、repeat-x、repeat-y。

4、  定位背景图片

background-position属性允许你以很多种方式来精准控制图片的位置。你可以通过3种不同的方法来设定图片在水平方向和垂直方向的起点,它们分别是keyword(关键字)、精准值和percentage(百分比)。

固定图片background-attachment。它有两个选项:

  • scroll是Web浏览器的默认做法,即背景图片会随着文本和其他网页内容一起滚动。
  • fixed是把图片保持在背景中的某个固定位置上。

可以利用background-origin属性调整图片的起点,它告诉浏览器应该在相对某个元素的边框、边距或内容的什么位置开始显示北京图片。它的值有3个选项:

  • border-box是将图片放在border区域的左上角
  • padding-box是将图片放在padding区域的左上角
  • content-box是将图片放在内容区域的左上角

当然,这个设置与元素周围是否有border或padding无关。

一般来说,背景图片会铺满某个元素的整个区域,包括border和padding区域的背面。通过background-clip属性可以限制背景图片的显示区域。有3个选项:

  • border-box是让图片显示在内容区域的背后,包括border区域的背面。(默认)
  • padding-box是所有背景图片都只能显示到元素的padding区域和内容区域。
  • content-box限制背景图片只显示在内容区域。

background-origin或background-clip属性在IE 8及其更早的版本中均不起作用。

CSS3中增加了一个background-size属性,它可以让你控制背景图片的尺寸。

5、  利用background快捷属性

实际上可以将所有的background属性合并成一行background:

background-color background-image background-position background-repeat background-attachment

可以不用全部设定这些属性值,而只利用其中一个或任意几个属性的组合。

6、  使用多个背景图片

CSS3允许在一个元素的背景中添加多张图片。

对于多张背景图片,只需要使用background-image属性,并带有一个用逗号隔开的图片列表即可。

你还可以添加其他背景属性(如background-repeat属性),同样以逗号隔开各个值即可。

也可以采用快捷方法来指定多张图片。

7、  使用渐变色背景

可以用普通的background-image属性创建渐变效果。渐变的类型有以下几种可以选择:

  • 线性渐变linear-gradient()
  • 重复线性渐变repeating-linear-gradient()
  • 径向渐变radial-gradient()
  • 重复径向渐变repeating-radial-gradient()

对于渐变,需要在属性名称前面再添加一个供应商前缀。令人遗憾的是,必须针对每一款浏览器都编写一个声明。

IE 9及其更早的版本不支持渐变,因此最好要添加一种备用的背景色。