## 行高和字号 ### 行高 CSS中,所有的行,都有行高。盒模型的padding,绝对不是直接作用在文字上的,而是作用在“行”上的。 如下图所示: 20170808_2216.png 上图中,我们设置行高为30px,30px * 5 = 150px,通过查看审查元素,这个p标签的高度果然为150px。而且我们发现,我们并没有给这个p标签设置高度,显然是内容将其撑高的。 文字,是在自己的行里面居中的。比如,现在文字字号14px,行高是24px。那么: 20170808_2220.png 为了严格保证字在行里面居中,我们的工程师有一个约定: **行高、字号,一般都是偶数**。这样可以保证,它们的差一定偶数,就能够被2整除。 ### 单行文本垂直居中 小技巧:如果一段文本只有一行,如果此时设置**行高 = 盒子高**,就可以保证单行文本垂直居中。这个很好理解。 上面这个小技巧,只适用于单行文本垂直居中,不适用于多行。如果想让多行文本垂直居中,还需要设置盒子的padding。如下: 20170808_2240.png ### font字体属性 **1、字号、行高、字体三大属性:** (1)字号: ``` font-size:14px; ``` (2)行高: ``` line-height:24px; ``` (3)字体:(font-family就是“字体”,family是“家庭”的意思) ``` font-family:"宋体"; ``` 上面这三个属性,我们可以使用一行代码来实现:(字号 font-size、行高 line-height、字体 font-family) ``` font: 14px/24px “宋体”; ``` **2、字体属性的说明:** (1)网页中不是所有字体都能用,因为这个字体要看用户的电脑里面装没装,比如你设置: ``` font-family: "华文彩云"; ``` 上方代码中,如果用户电脑里面没有这个字体,那么就会变成宋体。 页面中,中文我们只使用: 微软雅黑、宋体、黑体。 如果页面中,需要其他的字体,那么需要切图。 英语:Arial 、 Times New Roman (2)为了防止用户电脑里,没有微软雅黑这个字体。就要用英语的逗号,隔开备选字体。如下: ``` font-family: "微软雅黑","宋体"; ``` 上方代码表示:如果用户电脑里没有安装微软雅黑字体,那么就是宋体。 备选字体可以有无数个,用逗号隔开。 (3)我们要将英语字体放在最前面,这样所有的中文,就不能匹配英语字体,就自动的变为后面的中文字体: ``` font-family: "Times New Roman","微软雅黑","宋体"; ``` 上方代码的意思是,英文会采用Times New Roman字体,而中文会采用微软雅黑字体(因为美国人设计的Times New Roman字体并不针对中文,所以中文会采用后面的微软雅黑)。比如说,对于`smyhvae哈哈哈`这段文字,`smyhvae`会采用Times New Roman字体,而`哈哈哈`会采用微软雅黑字体。 可是,如果我们把中文字体写在前面:(错误写法) ``` font-family: "微软雅黑","Times New Roman","宋体"; ``` 上方代码会导致,中文和英文都会采用微软雅黑字体。 (4)所有的中文字体,都有英语别名。 微软雅黑的英语别名: ``` font-family: "Microsoft YaHei"; ``` 宋体的英语别名: ``` font-family: "SimSun"; ``` 于是,当我们把字号、行高、字体这三个属性合二为一时,也可以写成: ``` font:12px/30px "Times New Roman","Microsoft YaHei","SimSun"; ``` (5)行高可以用百分比,表示字号的百分之多少。 一般来说,百分比都是大于100%的,因为行高一定要大于字号。 比如说, `font:12px/200% “宋体”`等价于`font:12px/24px “宋体”;`。`200%`可以理解成word里面的2倍行高。 反过来, `font:16px/48px “宋体”;`等价于`font:16px/300% “宋体”`。 ## 超级链接的美化 > 超级链接就是a标签。 ### 伪类 **伪类**:同一个标签,根据用户的某种状态不同,有不同的样式。这就叫做“伪类”。 类是工程师加的,比如div属于box类,很明确,就是属于box类。但是a属于什么类?不明确。因为需要看用户有没有点击、有没有触碰。所以,就叫做“伪类”。 伪类用冒号来表示。 a标签有4种伪类,要求背诵。如下: ``` a:link{ color:red; } a:visited{ color:orange; } a:hover{ color:green; } a:active{ color:black; } ``` 上方代码解释如下: - `:link` 表示“链接”,用户没有点击过这个链接的样式。 - `:visited` 表示“访问过的”, 用户访问过了这个链接之后的样式。 - `:hover` 表示“悬停”,用户鼠标悬停的时候链接的样式。 - `:active` 表示“激活”, 用户用鼠标点击这个链接,但是不松手,此刻的样式。 上面的代码,看一下动图的效果: 记住,这四种状态,在css中,必须按照固定的顺序写: > a:**l**ink 、a:visited 、a:hover 、a:active 如果不按照顺序,那么将失效。“爱恨准则”:love hate。必须先爱,后恨。 ### 超链接的美化 超链接a标签在使用的时候,比较难。因为不仅仅要控制a这个盒子,也要控制它的伪类。 我们一定要将a标签写在前面,将`:link、:visited、:hover、:active`这些伪类写在后面。 举个例子。如果效果: 20170810_2235.gif 为了实现上面这个效果,完整版代码如下: ```html