參考
1.line-height1
2.line-height2
3.line-height3
4.line-height4
一、line-height有什么作用?
- 根據(jù)視頻上講的,line-height:2;的意思
1.它表示這這段文字占用的空間是它本身高度的2倍,也就是這段文字上下都有0.5倍的自身高度;
2.文字間的縫隙等于文字的高度,這個(gè)就是行高;
3.行高的作用對(duì)于一行文字讓它在div里水平垂直居中。- 當(dāng)line-height:1;時(shí),那么這段文字所占用的空間就是它自己的高度,css中的屬性中,此情況一定會(huì)寫(xiě)成1px;
<style type="text/css">
.test1{
border:1px solid red;
font-size:20px;
line-height:2;
}
.test2{
border:1px solid red;
font-size:20px;
line-height:1;
}
</style>
<body>
<div class="test1">測(cè)試1,雞鳴外欲曙,.....</div>
<div class="test2">測(cè)試2</div>
</body>
line-height是用于設(shè)置行間的距離的屬性,也就是行高,而行高就是指文字的大小與行距的和。也可以說(shuō)行高是指文本行基線間的垂直距離,但是文本之間的空白距離不僅僅是行高決定的,同時(shí)也受字號(hào)的影響。
①
行高
指的是文本行的基線間的距離。而基線(Base line),指的是一行字橫排時(shí)下沿的基礎(chǔ)線,基線并不是漢字的下端沿,而是英文字母x的下 端沿,同時(shí)還有文字的頂線(Top line)、中線(Middle line)和底線(Bottom line),用以確定文字行的位置,如圖7-17 所示。
②行高與字體尺寸的差稱為
行距
(leading),如圖7-18所示。
內(nèi)容區(qū)域、行內(nèi)框和行框
①理論上講,一行中的每個(gè)元素都有一個(gè)內(nèi)容區(qū)域
,它是由字體尺寸決定的,如圖7-19所示。
②行內(nèi)元素會(huì)生成一個(gè)
行內(nèi)框
(inline box),行內(nèi)框只是一個(gè)概念,它無(wú)法顯示出來(lái),但是它又確實(shí)存在。
在沒(méi)有其他因素影響的時(shí)候,行內(nèi)框等于內(nèi)容區(qū)域,而設(shè)定行高則可以增加或者減少行內(nèi)框的高度,即:將行距的值(行高-字體尺寸)除以2,分別增加到內(nèi)容區(qū)域的上下兩邊,如圖7-20所示。
③由于行高可以應(yīng)用在任何元素上,因此同一行內(nèi)的若干元素可能有不同的行高和行內(nèi)框高,例如有如下代碼,其顯示如圖7-21所示。
<strong style=”line-height:50px;”> 行高50px。</strong>
<span style=”line-height:30px;”>行高30px。</span>
</p>
這里又有一個(gè)新的概念——
行框(line box)
。同行內(nèi)框類似,行框是指本行的一個(gè)虛擬的矩形框,其高度等于本行內(nèi)所有元素中行高最大的值。因此,當(dāng)有多行內(nèi)容時(shí),每行都會(huì)有自己的行框,如圖7-22所示。
提示:理解行框和行內(nèi)框的概念對(duì)于[垂直對(duì)齊:vertical-align屬性]一節(jié)的內(nèi)容非常重要。
注意:行框的高度只同本行內(nèi)元素的行高有關(guān),而和父元素的高度(height)無(wú)關(guān)。
行高的計(jì)算與繼承
①以em、ex和百分比為單位的行高,其基數(shù)是元素本身的字體尺寸。例如有代碼如下:
字高20px,行高2em。
</p>
<p style="font-size:30px;line-height:2em;">
字高30px,行高2em。
</p>
2個(gè)段落的行高都為2em,但是字體大小不同,因此顯示如圖7-23所示。

> ②行高可以設(shè)定得比字體高度小,此時(shí)多行的文字將疊加到一起,例如有如下代碼,其顯示如圖7-24所示:
p { font-size : 20px; line-height :10px; }

> ③行高是可繼承的,但是繼承的是計(jì)算值,例如有如下代碼:
```p { font-size :20px; line-height : 2em; }
p span { font-size : 30px; }```
> ```<p>字高20px。<span>字高30px。</span></p>```
> <p>元素的行高2em,字體尺寸為20px,因此計(jì)算值為40px,雖然<span>元素本身的字體尺寸為30px,不過(guò)其繼承的行高仍為40px。但是在不同的瀏覽器內(nèi)顯示的效果卻不盡相同,如圖7-25所示。

> ④由于繼承的是計(jì)算值,因此當(dāng)元素內(nèi)的文字字體尺寸不一樣的時(shí)候,如果設(shè)定固定的行高很可能造成字體的重疊,例如有如下代碼,其顯示如圖7-26所示。
>```p { font-size : 20px; line-height : 1em; }
> p span { font-size : 30px; }```
> ```<p>字高20px,行高1em,當(dāng)文本為多行時(shí)可能會(huì)發(fā)生文字重疊的現(xiàn)象。<span>字高30px</span></p>```

> 為了避免這種情況,可以為每個(gè)元素單獨(dú)定義行高,但是這樣很煩瑣,因此可以定義一個(gè)沒(méi)有單位的實(shí)數(shù)值作為縮放因子來(lái)統(tǒng)一控制行高,縮放因子是直接繼承的,而不是繼承計(jì)算值。例如修改上例中的行高為:
> ```p { line-height : 1; }```

> ⑤當(dāng)內(nèi)容中含有圖片的時(shí)候,如果圖片的高度大于行高,則含有圖片行的行框?qū)⒈粨伍_(kāi)到圖片的高度,如圖7-28所示。

**注意**:圖片雖然撐開(kāi)了行框,但是不會(huì)影響行高,因此也不會(huì)影響到基于行高來(lái)計(jì)算的其他屬性。
**提示**:當(dāng)行內(nèi)含有圖片的時(shí)候,圖片和文字的垂直對(duì)齊方式默認(rèn)是基線對(duì)齊
## line-height 語(yǔ)法
> - 語(yǔ)法: line-height : normal | <實(shí)數(shù)> | <長(zhǎng)度> | <百分比> | inherit
> - 說(shuō)明: 設(shè)置元素中行的高度。
值:
> - normal:默認(rèn)行高,一般為1到1.2;
> - 實(shí)數(shù):實(shí)數(shù)值,縮放因子;
> - 長(zhǎng)度:長(zhǎng)度值,可為負(fù)數(shù);
> - 百分比:百分比取值基于元素的字體尺寸。
> - 初始值: normal;
> - 繼承性: 繼承;
> - 適用于: 所有元素
> - 計(jì)算值: 長(zhǎng)度和百分比值為絕對(duì)值;其他同指定值
1.line-height可以被定義為:body{line-height:normal;}
2.line-height可以被定義為:body{line-height:inherit;}
3.line-height可以使用一個(gè)百分比的值body{line-height:120%;}
4.line-height可以被定義為一個(gè)長(zhǎng)度值(px,em等) body{line-height:25px;}
5.line-height也可以被定義為實(shí)數(shù)值body{line-height:1.2}

## line-height的5種表示方法進(jìn)行測(cè)試:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>任務(wù)六</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<style type="text/css">
.div1{
font-size:20px;
line-height:?;
}
.p1{
background-color:red;
font-size:40px;
}
.p2{
background-color:orange;
font-size:20px;
}
</style>
</head>
<body>
<div class="div1">
<p class="p1">
測(cè)試段落1
測(cè)試段落1
測(cè)試段落1
</p>
<p class="p2">
測(cè)試段落2
測(cè)試段落2
測(cè)試段落2
</p>
</div>
</body>
</html>
> 第一種:設(shè)置成normal:

>第二種:設(shè)置為固定值20px

>第三種:設(shè)置成百分比200%

>第四種:設(shè)置數(shù)字2

>第五種:設(shè)置inherit

## 由此可見(jiàn)
> 1. 設(shè)置成normal和inherit,段落的行高是一樣的。因?yàn)樗麄兪悄J(rèn)行高,一般值為1到1.2,當(dāng)然這也取決于元素的 font-family。它們算出來(lái)的大小就是用font-size的大小(40px/20px)乘以1.2。所有繼承下來(lái)的元素不會(huì)忽略font-size的值,而使用相應(yīng)font-size的大小來(lái)乘以1.2。line-height會(huì)隨著font-size作相應(yīng)的縮放。
> 2. 設(shè)置成固定值,p1和p2繼承了父元素的固定行高,而忽略本身font-size的值,line-height不會(huì)隨著font-size的值作相應(yīng)的改變,因?yàn)閜1的font-size比父元素的行高大,所以出現(xiàn)了重疊。
> 3. 設(shè)置成百分比。計(jì)算方法就是用font-size的大小(20px)乘以line-height的百分比(200%)。這個(gè)計(jì)算出來(lái)的值會(huì)子元素繼承,所有繼承元素會(huì)使用這個(gè)計(jì)算出來(lái)的值,而忽略本身font-size的值,line-height不會(huì)隨著相應(yīng)的font-size作相應(yīng)比例的縮放。
> 4. 設(shè)置成數(shù)字2,數(shù)值會(huì)被繼承到子元素,然后子元素會(huì)按照自己的font-size調(diào)整行高,計(jì)算式font-size大小(40px/20px)乘以2。所以line-height會(huì)隨著相應(yīng)的font-size作相應(yīng)比例的縮放。
**所以這上面的四種方式使用無(wú)單位的數(shù)值比較好**
## line-height的一個(gè)重要用途-文本居中
> - 單行文本
> ①不設(shè)置height,如果不設(shè)置height,line-height可以設(shè)置為任意數(shù)字

> ②設(shè)置height,將line-height值與height的高度值設(shè)置成一致就能達(dá)到效果

> - 多行文本
多行文本垂直居中重點(diǎn)是設(shè)置display:table-cell;根據(jù)視頻上講的這是借用table的屬性,因?yàn)関ertical-align只有在表格中才起作用。然后在加個(gè)文本居中text-align就可以達(dá)到效果

## 二 .如何去查CSS屬性的兼容性?比如inline-block哪些瀏覽器支持?
審查CSS屬性的兼容性可以使用 [Can I use](http://caniuse.com/#search=inline-block)進(jìn)行查詢

## 三.a 標(biāo)簽的href, title, target 是什么? title 和 alt有什么區(qū)別?如何新窗口打開(kāi)鏈接?
> - **a標(biāo)簽定義超鏈接,用于從一張頁(yè)面到另一張頁(yè)面。**
- href是a元素最重要的屬性,它指示鏈接的目標(biāo),href 屬性的值可以是任何有效文檔的相對(duì)或絕對(duì) URL。如果選擇了a標(biāo)簽的內(nèi)容,瀏覽器會(huì)嘗試檢索并顯示 href 屬性指定的 URL 所表示的文檔。
- title屬性作用是鼠標(biāo)放置到a標(biāo)簽的時(shí)候,顯示的提示信息。
- target屬性是表示瀏覽器在何處打開(kāi)一個(gè)新的鏈接,是打開(kāi)一個(gè)新的窗口還是覆蓋本頁(yè)面。
> - **title和alt屬性的區(qū)別**
- title屬性,title是為該屬性的元素提供建議性的信息,它可以用在除了base,basefont,head,html,meta,param,script和title之外的所有標(biāo)簽。
當(dāng)鼠標(biāo)放置在選定元素時(shí),大部分可視化瀏覽器會(huì)顯示title的提示信息。
title屬性用途之一就是為鏈接添加描述性文字,特別是當(dāng)連接本身并不是十分清楚的表達(dá)了鏈接的目的的時(shí)候。
還有一個(gè)用處就是為圖像提供額外的說(shuō)明信息,比如日期等信息。
> - alt屬性,alt屬性只能用在img、area和input元素中,它是為了給那些不能看到文檔中圖像的瀏覽者提供文字說(shuō)明信息,在圖片的位置顯示內(nèi)容。
>
> - **在新窗口中打開(kāi)鏈接**
<a href="#" target="_blank" title="在新窗口代開(kāi)鏈接">鏈接</a>
> - **跳轉(zhuǎn)到錨點(diǎn)**
1.id定位,這樣的定位可針對(duì)任何標(biāo)簽定位
<a href="#here">錨點(diǎn)</a>
<p id="here"></a>
或
<a href="#f1" name="f1">錨點(diǎn)1</a>
<div name="f1"></div>
2.使用name定位,name屬性只能針對(duì)a標(biāo)簽來(lái)定位,而對(duì)div等其他標(biāo)簽就不能起到定位作用
<a href="#f2"></a>
<br/><br/><br/>
<a name="f2">111</href>
3.使用js定位
> - **跳轉(zhuǎn)到另一個(gè)頁(yè)面的錨點(diǎn)**
1.在test2.html創(chuàng)建錨 <a name="test">錨</a>
2.在test.html設(shè)置好鏈接 <a href="test2.html#test">連接到另外頁(yè)面的錨的超鏈接</a>
## 四.display: none , visibility: hidden, opacity:0有什么作用?有什么區(qū)別?
>**他們的作用都是讓元素消失,但在渲染效果上有一定的區(qū)別。**
> 1. display:none 表示讓元素消失,并且脫離文檔流,下面的元素將會(huì)上移,占據(jù)其位置;
> 2. visibility:hidden 隱藏元素,但是并沒(méi)有脫離文檔流,渲染的時(shí)候?yàn)榭瞻祝诘奈恢萌匀淮嬖冢旅娴脑夭粫?huì)上移;
> 3. opacity:0 和visibility的作用相似,表示透明度為0,占據(jù)的位置仍然保留。
> 區(qū)別:都可以隱藏元素,主要是display:none;讓元素脫離了文檔流,會(huì)影響其后面的元素
[代碼](http://js.jirengu.com/niy/2/edit?html,console,output)
## 五.如何去除 a 鏈接的默認(rèn)樣式?直接在 a 鏈接父容器添加顏色,能否繼承到當(dāng)前 a 鏈接上?
> - a鏈接默認(rèn)樣式:

> - 除去 a 鏈接的默認(rèn)樣式
> 使用text-decoration:none;

> - 用a鏈接制作按鈕

> - 直接在 a 鏈接父容器添加顏色,不能繼承到當(dāng)前 a 鏈接上。除了顏色不繼承,其他的都可以繼承,比如字體大小。要實(shí)現(xiàn)對(duì)a鏈接顏色起作用,必須設(shè)置a。

next:[任務(wù)7-HTML4](http://www.lxweimin.com/p/64bab72ba2e0)
pre:[任務(wù)5-HTML2](http://www.lxweimin.com/p/9fc02e93b026)
***