中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

深入理解line

發布時間:2020-05-26 07:31:46 來源:網絡 閱讀:499 作者:劉元興 欄目:網絡安全

什么是行間距?

古時候我們使用印刷機來出來文字。印刷出來的每個字,都位于獨立的一個塊中。

行間距,即傳說中控制兩行文字垂直距離的東東。在CSS中,line-height被用來控制行與行之間垂直距離。

不過,行間距與半行間距,還是取決于CSS中的line-height。那么,如何來使用line-height呢?

默認狀態,瀏覽器使用1.0-1.2 line-height, 這是一個初始值。你可以定義line-height屬性來覆蓋初始值:p{line-height:140%}

你可以有5種方式來定義line-height。

1.line-height可以被定義為:body{line-height:normal;}

2.line-height可以被定義為:body{line-height:inherit;}

3.line-height可以使用一個百分比的值body{line-height:120%;}

4.line-height可以被定義為一個長度值(px,em等) body{line-height:25px;}

5.line-height也可以被定義為純數字, body{line-height:1.2}

 

縮寫line-height

那5種line-height寫法,可以在font屬性中縮寫。line-height的值緊跟著font-size值使用斜杠分開,如:<font-size>/<line-height>

實例:body{font:100%/normal  arial;} , body{font:100%/120%  arial;} ,body{font:100%/1.2  arial;}  ,body{font:100%/25px  arial;} 

計算line-height

有些CSS屬性是可繼承的(inherited),從層疊的元素里傳遞下來。這樣做是為了方便開發者,不再為后代元素重新設值。

對于line-height繼承有點復雜。

1、百分比

深入理解line

2,長度

深入理解line

3,normal

深入理解line

4,純數字

深入理解line

深入理解line

 

所謂行高是指文本行基線間的垂直距離。要想理解這句話首先得了解幾個基本知識:

頂線、中線、基線、底線

深入理解line

從上到下四條線分別是頂線、中線、基線、底線,很像才學英語字母時的四線三格,我們知道vertical-align屬性中有top、middle、baseline、bottom,就是和這四條線相關。尤其記得基線不是最下面的線,最下面的是底線。

行高是指上下文本行的基線間的垂直距離,即圖中兩條紅線間垂直距離。

行距是指一行底線到下一行頂線的垂直距離,即第一行粉線和第二行綠線間的垂直距離。

半行距是行距的一半,即區域3垂直距離/2,區域1,2,3,4的距離之和為行高,而區域1,2,4距離之和為字體size,所以半行距也可以這么算:(行高-字體size)/2

 

內容區、行內框、行框

深入理解line

內容區:底線和頂線包裹的區域,即圖深灰色背景區域。

行內框,每個行內元素會生成一個行內框,行內框是一個瀏覽器渲染模型中的一個概念,無法顯示出來,在沒有其他因素影響的時候(padding等),行內框等于內容區域,而設定行高時行內框高度不變,半行距【(行高-字體size)/2】分別增加/減少到內容區域的上下兩邊(深藍色區域)

行框(line box),行框是指本行的一個虛擬的矩形框,是瀏覽器渲染模式中的一個概念,并沒有實際顯示。行框高度等于本行內所有元素中行內框最大的值(以行高值最大的行內框為基準,其他行內框采用自己的對齊方式向基準對齊,最終計算行框的高度),當有多行內容時,每行都會有自己的行框。

line-height

基本概念搞明白了我們就可以說說本文的主角line-height屬性了。

定義:line-height 屬性設置行間的距離(行高),不能使用負值。該屬性會影響行框的布局。在應用到一個塊級元素時,它定義了該元素中基線之間的最小距離而不是最大距離。line-height 與 font-size 的計算值之差(行距)分為兩半,分別加到一個文本行內容的頂部和底部。可以包含這些內容的最小框就是行框。

div居中對齊一直是個難題,水平還好解決些,margin:0 auto; 可以解決現代瀏覽器,IE下text-align:center。但垂直居中就沒那么簡單了,默認是這樣子的。

<div >
                <span>This is a test.<br/>
                        This is a test.                </span></div>

深入理解line

我們可以利用line-block這樣做

深入理解line

<div >
                <span >This is a test.<br/>
                        This is a test.                </span></div>

深入理解line

深入理解line

單行就比較簡單了,把line-height設置為box的大小可以實現單行文字的垂直居中

 

行高是可繼承的,但并不是簡單的copy父元素行高,繼承的是計算得來的值。

深入理解line

<div >
                <p >
                    1232<br/>
                    123                </p></div>

深入理解line

按一般理解既然line-height可以繼承,那么p元素的行高也是150%了,可是事實是這樣的

深入理解line

非但沒有變成150%,反而連100%都沒有,重疊了!這就是繼承計算的結果,如果父元素的line-height有單位(px、%),那么繼承的值則是換算后的一個具體的px級別的值(在10px后有換算到30px ,但10px*150%已經繼承到下一個30px的值上);上例p得到的是10px*150%=15px的行高,而P的字體大小為30px,所以發生了重疊。

而如果屬性值沒有單位,則瀏覽器會直接繼承這個“因子(數值)”,而非計算后的具體值,此時它的line-height會根據本身的font-size值重新計算得到新的line-height 值。

深入理解line

<div >
                <p >
                    1232<br/>
                    123                </p></div>

深入理解line

深入理解line

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

禹州市| 博客| 延安市| 高邑县| 海淀区| 滦平县| 和林格尔县| 宜昌市| 突泉县| 丘北县| 潮安县| 闻喜县| 景洪市| 历史| 长汀县| 房产| 伊金霍洛旗| 冕宁县| 晋城| 滨州市| 桑植县| 锦屏县| 丽水市| 东平县| 屏南县| 增城市| 开封市| 徐州市| 陵水| 广河县| 平安县| 岳阳县| 万安县| 和静县| 凌云县| 如皋市| 康乐县| 宁津县| 清原| 商河县| 武宣县|