tml字間距怎么設(shè)置?
大家好,這節(jié)課主要來(lái)講解一下在html中如何設(shè)置字間距。通常使用CSS的letter-spacing屬性,這個(gè)屬性可以直接在html元素的style屬性中設(shè)置,或者在一個(gè)獨(dú)立的CSS文件中。下面是兩種常見的設(shè)置方法。
·首先來(lái)看第一種方法:內(nèi)欄樣式。在p標(biāo)簽的后面加上style,等于下入設(shè)置為5個(gè)PX,保存運(yùn)行??梢钥吹竭@里設(shè)置成了字間距為5個(gè)PX。
·當(dāng)然還可以通過(guò)層疊樣式表,也就是CSS樣式表來(lái)實(shí)現(xiàn)在一個(gè)獨(dú)立的CSS文件或html文檔的head部分的style標(biāo)簽中設(shè)置字間距。例如現(xiàn)在新建了一個(gè)style點(diǎn)CSS這樣的文件,可以設(shè)置它的letter-spacing,點(diǎn)10個(gè)PX,然后保存。
·并且在html文件中引入CSS樣式表,保存運(yùn)行。稍等一下,要把引號(hào)去掉運(yùn)行。可以看到它有10個(gè)PX像素,在letter-spacing屬性接受不同的單位,例如像素PX點(diǎn)PT EM等單位,可以根據(jù)需要選擇合適的單位來(lái)設(shè)置字間距。
以上就是html如何設(shè)置字間距的方式和方法。
:測(cè)試瀏覽器版本號(hào)——chrome 75.0.3770.80;opera 60.0.3255.109;firefox 67.0;ie 11。
今天將設(shè)計(jì)稿還原成html頁(yè)面,在設(shè)置 字母間距/字間距/行間距/首行縮進(jìn) 時(shí)發(fā)現(xiàn)了一些有趣的冷知識(shí),雖然冷門,但是弄懂了也很有用呀!
1 字母間距
字母間距,顧名思義就是字母之間的間距。這個(gè)通常用于全大寫英文標(biāo)題。我們使用letter-spacing來(lái)設(shè)置。以下面代碼為例:
<!-- 字母間距 --> <p style="letter-spacing: 2px">english test</p> <p style="letter-spacing: 0.5px">english test</p> <p >english test</p> <p style="letter-spacing: -0.5px">english test</p> <p style="letter-spacing: -2px">english test</p> <p style="letter-spacing: 2px">中文測(cè)試</p> <p style="letter-spacing: 0.5px">中文測(cè)試</p> <p >中文測(cè)試</p> <p style="letter-spacing: -0.5px">中文測(cè)試</p> <p style="letter-spacing: -2px">中文測(cè)試</p>
得到結(jié)果如下圖。由此可見letter-spacing是以字母為單位計(jì)算間距,如果是中文的話以單個(gè)中文字為單位計(jì)算。
2 字間距
字間距是單詞與單詞之間的間距,使用word-spacing來(lái)設(shè)置。以下面代碼為例:
<!-- 字間距 --> <p style="word-spacing: 10px">english test</p> <p style="word-spacing: 5px">english test</p> <p >english test</p> <p style="word-spacing: -5px">english test</p> <p style="word-spacing: -10px">english test</p> <p style="word-spacing: 10px">中文測(cè)試</p> <p style="word-spacing: 5px">中文測(cè)試</p> <p >中文測(cè)試</p> <p style="word-spacing: -5px">中文測(cè)試</p> <p style="word-spacing: -10px">中文測(cè)試</p> <p style="word-spacing: 10px">中文 測(cè)試</p> <p style="word-spacing: 5px">中文 測(cè)試</p> <p >中文測(cè)試</p> <p style="word-spacing: -5px">中文 測(cè)試</p> <p style="word-spacing: -10px">中文 測(cè)試</p>
得到結(jié)果如下圖。通過(guò)對(duì)照組實(shí)驗(yàn)我們可以發(fā)現(xiàn)word-spacing屬性其實(shí)是根據(jù)文本中的空格來(lái)區(qū)分單詞的,這點(diǎn)我們需要注意。
3 行間距
我們使用line-height來(lái)設(shè)置行間距,其是屬性值如下
line-height:normal(默認(rèn)) | number | length | percentage | inherit
屬性值分別代表的含義是:1. 常規(guī)合理值;2. 數(shù)值(不帶單位 此時(shí)間距=數(shù)值*font-size);3. 具體值(帶單位);4. 百分比(相對(duì)于當(dāng)前元素的font-size);5. 繼承。
以下面代碼為例:
<!-- 行間距 --> 父元素設(shè)置了行間距 <div style="line-height: 50px"> <p style="line-height: 0.5">english test</p> <p style="line-height: 10px">english test</p> <p >english test</p> <p style="line-height: 50%">english test</p> <p style="line-height: inherit">english test</p> </div> 父元素未設(shè)置行間距 <div> <p style="line-height: 0.5">english test</p> <p style="line-height: 310px">english test</p> <p >english test</p> <p style="line-height: 50%">english test</p> <p style="line-height: inherit">english test</p> </div>
得到結(jié)果如下圖。通過(guò)檢查元素可以發(fā)現(xiàn):1. normal和inherit取值是一樣的,父元素沒有設(shè)置line-height值就normal,父元素有設(shè)置line-height值就繼承;2. chrome計(jì)算行間距時(shí)會(huì)出現(xiàn)偏差,如本例中l(wèi)ine-height值為0.5/10px/50%時(shí),其行高均為9.6px,而不是設(shè)想的10px,該現(xiàn)象在其他測(cè)試瀏覽器中均為出現(xiàn);3. 設(shè)置行間距后,該元素垂直方向居于中間,不管元素的字體多大,其占據(jù)的高度是行間距的數(shù)值。
通過(guò)以上實(shí)驗(yàn)我們還有一個(gè)比較重要的問(wèn)題沒有解決——當(dāng)line-height屬性值為normal時(shí)(父元素未設(shè)置line-height屬性值),元素行間距到底時(shí)多少?
首先一點(diǎn)可以確定的是:當(dāng)font-size相同的情況下,font-family不同,行間距不同,而且沒有規(guī)律。這點(diǎn)我們暫時(shí)不討論,我們需要討論的是當(dāng)font-family相同而font-size不同時(shí),行間距有沒有什么變化規(guī)律?我們?cè)O(shè)置以下實(shí)驗(yàn)組和對(duì)照組。
<!-- 設(shè)置font-family:'Times New Roman'; --> <p style="font-size: 10px">english test</p> <p style="font-size: 20px">english test</p> <p style="font-size: 30px">english test</p> <p style="font-size: 40px">english test</p> <p style="font-size: 50px">english test</p> <p style="font-size: 60px">english test</p> <p style="font-size: 70px">english test</p> <p style="font-size: 80px">english test</p> <p style="font-size: 90px">english test</p> <p style="font-size: 100px">english test</p>
整理結(jié)果得到下圖中fong-size與line-height的關(guān)系數(shù)據(jù)表格及折線圖。由圖我們發(fā)現(xiàn):1. 不同瀏覽器的結(jié)果不同但近似;2. font-size越大,對(duì)應(yīng)的line-height越大,且近乎呈線性關(guān)系;3. ie中font-size與line-height呈線性關(guān)系,且line-height=1.15*font-size。
4 首行縮進(jìn)
沒有什么特別困難的點(diǎn),我們只需要記住用法就可以了。
先,我們來(lái)學(xué)習(xí)CSS設(shè)置文本的對(duì)齊方式。
通過(guò)CSS,可以設(shè)置文本的水平和垂直對(duì)齊方式。(有案例的效果演示)
文本水平對(duì)齊,我們前面的課程曾經(jīng)接觸過(guò)——使用 text-align 這個(gè)樣式屬性來(lái)實(shí)現(xiàn)。它的屬性值有三個(gè):left,right,center,分別表示文本水平居左,居右,居中。
我們來(lái)舉個(gè)例子。
在 005 目錄下創(chuàng)建 alignment-spacing.html 文件,構(gòu)建基礎(chǔ)代碼,添加一個(gè) h1 元素和三個(gè) p 元素,分別填入一些文本。
<h1>浠浠呀老師,學(xué)前端的大專生就業(yè)難嗎?</h1>
<p>
no, 不難,只要你能力過(guò)關(guān)、項(xiàng)目經(jīng)驗(yàn)過(guò)關(guān)、人品過(guò)關(guān),企業(yè)就會(huì)錄用你。
</p>
<p>
你可以在面試的時(shí)候,著重介紹一下你的開發(fā)能力、技術(shù)能力以及你對(duì)技術(shù)理解,讓別人挑不出毛病,那學(xué)歷這塊是可以自動(dòng)忽略的。
</p>
<p>
我在面試別人的時(shí)候也是這樣,如果這個(gè)人的技術(shù)能力和過(guò)往經(jīng)驗(yàn)真的征服了我,我不是很在他乎他的學(xué)歷。
</p>
我們可以給三個(gè)段落文本,設(shè)置不同的水平對(duì)齊方式,給三個(gè) p 元素定義 class 屬性,值分別為 a,b,c。
在這個(gè)目錄下再創(chuàng)建一個(gè) mystyle-2.css 文件,定義 p.a (讀作p點(diǎn)a) 選擇器,聲明樣式 text-align: left (不要讀冒號(hào))。定義 p.b 選擇器,聲明樣式 text-align: center。定義 p.c 選擇器,聲明樣式 text-align: right。
p.a {
text-align: left;
}
p.b {
text-align: center;
}
p.c {
text-align: right;
}
在瀏覽器中預(yù)覽效果,三個(gè)段落分別左、中、右對(duì)齊了。
當(dāng) text-align 屬性被設(shè)置為 justify [?d??st?fa?]時(shí),每一行都被拉長(zhǎng),使每一行都有相等的寬度,而且左右邊界是對(duì)齊的,就像雜志和報(bào)紙排版一樣。
注釋掉全部樣式,定義 p 選擇器,聲明樣式 text-align: justify。
我們看,貌似沒有什么效果。
為了演示,給第一個(gè)段落添加單詞 no, (讀作no 英文的逗號(hào)) 。再給 p 元素聲明一個(gè)樣式 width: 200px。
再看效果,三個(gè)段落的兩側(cè)都是對(duì)齊的。
假如注釋掉這個(gè)樣式,
很明顯,右側(cè)不再對(duì)齊顯示了。
除了水平對(duì)齊,還可以設(shè)置文本的垂直對(duì)齊。通過(guò)聲明 vertical-align 屬性來(lái)實(shí)現(xiàn)。值有五個(gè):
baseline,基線對(duì)齊。
text-top,文本頂部對(duì)齊。
text-bottom,文本底部對(duì)齊。
sub,下角標(biāo)對(duì)齊。
super,上角標(biāo)對(duì)齊。
在 html 文件中添加一個(gè) h1 元素,5個(gè) p 元素。填入一些文本。在每個(gè)段首添加一個(gè) img 元素,引入本地的一個(gè)小圖片,圖片的寬高都為 9px。給每個(gè)圖片元素定義 class 屬性,值分別為 a,b,c,d,e。
在樣式表中,定義 img.a 選擇器,聲明樣式 vertical-align: baseline。
baseline 是如何對(duì)齊的呢?看效果,在垂直方向好像是居中對(duì)齊。
實(shí)際上,baseline 是基于四線三格倒數(shù)第二行對(duì)齊的。對(duì)于英文文本才有意義。
比如,將 1 修改為 fight 1。
基線在這,文本中的圖片就基于它來(lái)對(duì)齊。
再定義 img.b,img.c,img.d,img.e 四個(gè)選擇器,給他們都聲明 vertical-align 屬性,值分別為 text-top,text-bottom,sub,super 。
看看效果,圖片垂直方向上,已經(jīng)相對(duì)于文本頂部、底部、上角標(biāo)、下角標(biāo)的位置對(duì)齊了。
接下來(lái),我們學(xué)習(xí)如何設(shè)置文本的間距。
通過(guò) CSS,可以實(shí)現(xiàn)文本縮進(jìn)、文字或字母間距、行高、單詞間距和處理空白。(有案例的效果演示)
聊起文本縮進(jìn),你還記得以前是如何實(shí)現(xiàn)自然段首行縮進(jìn)的嗎?可以發(fā)彈幕告訴大家!
通過(guò)聲明 CSS 的 text-indent 屬性也可以實(shí)現(xiàn)。使?長(zhǎng)度值或百分?來(lái)設(shè)置?本縮進(jìn)。
長(zhǎng)度值可以使?絕對(duì)單位或相對(duì)單位。絕對(duì)單位就是 px,比如縮進(jìn) 50px;相對(duì)單位最常用的是 em,縮進(jìn)的寬度為字符寬度的倍數(shù),一般設(shè)置為 2em,就是空兩格。
字符寬度——如果是中文方塊字,也可以稱為字體大小,它是通過(guò) font-size 屬性來(lái)設(shè)置的,這個(gè)屬性在后面 CSS 字體課程中會(huì)詳細(xì)介紹。
百分?縮進(jìn)寬度,是根據(jù)?元素的寬度計(jì)算得到。這個(gè)很少使用。
給 p 元素聲明 text-indent 屬性,值為 2em。
仔細(xì)觀察,每個(gè)自然段縮進(jìn)貌似不是2個(gè)字的寬度,這是為什么呢?
你應(yīng)該想到了,把 text-align: justify 注釋一下,就是我們要的效果了。
letter-spacing 屬性用于指定中文文字或英文字母之間的空隙。
在樣式中,定義 h1 選擇器,聲明樣式 letter-spacing: 5px。
這樣,標(biāo)題文字間就有了 5px 的空隙。
line-height 屬性用于指定行與行之間的高度,也就是行高。屬性值常用的有三個(gè):
第一,normal,也是默認(rèn)值,瀏覽器會(huì)根據(jù)字符大小自動(dòng)設(shè)置一個(gè)行高。
第二,一個(gè)數(shù)字,比如 1.5。此數(shù)字與當(dāng)前的字符大小相乘計(jì)算得到。推薦使用。
第三,絕對(duì)值,比如 20px,-5px。設(shè)置固定的行間距。
在沒有設(shè)置 line-height 屬性時(shí),我們看到每一行的間距是這樣的。
回到樣式代碼,給 p 元素聲明樣式 line-height: normal。
我們看到效果沒有變化。
修改 line-height 屬性值為 1。
再來(lái)看,每個(gè)段落的行間距消失了。
再次修改 line-height 為 10px,行與行之間疊加到了一起。
是不是和你理解的行高不一樣呢?看來(lái),我們得需要仔細(xì)研究一下:行高到底是如何計(jì)算的。
這是兩行中文和英文混合的文本。
在文字頂端畫一條線,取名叫頂線。在文字底端畫一條線,取名叫底線。在文字中間畫一條線,取名叫中線,再畫一條英文的基線。上一行文字的底線,到下一行文字的頂線,他們之間的空隙稱為行距。
實(shí)際上,line-height 設(shè)置的行高值,是兩行基線的距離。
這里你可能會(huì)問(wèn),基線不是英文文本才有的嗎?其實(shí),不管文本里有沒有英文,基線都是一直存在的。
了解了這個(gè)原理,你就能理解 line-height: 1,為啥沒有行距了。因?yàn)?1 乘以文字的高度,結(jié)果還是文字的高度。而文字的高度,恰好等于兩行基線之間的距離,所以行距為 0。
word-spacing 屬性用于指定文本中單詞的間距,只對(duì)英文有效。
給 p 元素再聲明一個(gè) word-spacing: 20px 樣式。
我們看,單詞 no 和 fight 后面就有了 20個(gè)像素的間距。
white-space 屬性指定了如何處理元素內(nèi)部的空白。有一個(gè)常用的值,nowrap,不管包含文本的元素寬度是多少,文本都不會(huì)換行,直到遇見 <br> 標(biāo)簽為止。
給 p 元素再聲明一個(gè) white-space: nowrap 樣式。
此時(shí),每個(gè)段落都在一行顯示了。雖然我們給 p 元素聲明了 width: 200px,他也會(huì)視而不見,繼續(xù)倔強(qiáng)的在一行顯示。
文章配套視頻鏈接:https://www.bilibili.com/video/BV1oU4y1278g?p=63
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。