【HTML+CSS】4.CSS排版:文字樣式和文本屬性

經過漫長的上一篇,這篇內容總體來說內容比較短,也比較簡單,連目錄都省了~

1.CSS字體的屬性

CSS字體常用的功能如下表所示,都比較簡單,就不展開說了:

但還是有些需要注意的地方:

  •  CSS中的單位是必須要寫的,因爲它沒有默認單位。font-size的單位可以是px(像素)、em(印刷單位)、%(百分比,相對周圍的文字的大小)、in(英寸)、cm(釐米)、mm(毫米)、pt(點,1點=1/72英寸)等。
  • line - height屬性設置行與行之間的空間,用font簡寫做聲明的時候注意“font-size/line-height”中的順序和斜線。
  • georgia是一種襯線字體,這種字體字形筆畫末梢有裝飾性線條。如果網頁中要顯示代碼,應該首選monospace字體族,也叫“等寬字體”,因爲monospace的每個字符的寬度都一樣,不同行之間的字符可以完美對齊。
  • 幾乎所有瀏覽器中的font-size的默認大小都是16像素
  • 如果給line-height設置沒有單位的值1.5,意思是當前font-size的1.5倍。也可以給line-height設置像素、百分比值或em值,但要注意其所有子元素都會繼承line-height的計算值。
  • 設置font-family,一般建議寫三種字體:首選、其次、備用,也可以寫更多,按優先級從左到右排列。如 {font-family: 'Georgia Pro', Georgia, Times, 'Times New Roman', serif;}。

再補充兩個:

可以使用text-transform屬性控制英文字母大小寫,如下面所示:

  h1 {text-transform: uppercase} /*全部大寫*/
  p.uppercase {text-transform: uppercase}
  p.lowercase {text-transform: lowercase} /*全部小寫*/
  p.capitalize {text-transform: capitalize}  /*單詞首字母大寫*/

可以通過letter-spacing屬性控制字符間的距離,通過word-spacing屬性來控制單詞間的距離。注意,在word-spacing中,“字” 定義爲由空白符包圍的一個字符串,更適合於空格分隔的英文內容的單詞距離設置,中文字體的距離用letter-spacing定義。而且,在這兩屬性的定義中,負值是允許的,可以用來構建文本的“緊密”效果。

<html>

<head>
<style type="text/css">
h1 {letter-spacing: -5px}
h4 {letter-spacing: 20px}
p.spread {word-spacing: 30px;}
p.tight {word-spacing: -0.5em;}
</style>
</head>

<body>
<h1>緊密的letter-spacing</h1>
<h4>寬鬆的leter-spacing</h4>
<p class="spread">word spacing</p>
<p class="tight">word spacing</p>
</body>

</html>

效果如下:

可以利用text-decoration屬性添加字體修飾,如下:

p{text-decoration:none;}
p.overline{text-decoration:overline;}     /*上劃線*/
p.line{text-decoration:line-through;}     /*中劃線*/
p.underline{text-decoration:underline;}   /*下劃線*/
p.blink{text-decoration:blink; }          /*定義閃爍的文本*/


h1{text-decoration:underline red;}            /*紅色下劃線*/
h2{text-decoration:underline wavy red;}       /*紅色波浪形下劃線*/

h3{text-decoration:underline overline dotted red;}     /*紅色虛線的上下劃線*/

2.CSS文本的屬性

2.1 文本方向: direction

direction屬性指定文本方向/書寫方向,其默認值爲ltr,即從左往右,但也可以選擇rtl(從右往左)或inherit(繼承父元素的屬性值)。還有一個有意思的屬性unicode-bidi,這個屬性可以和direction一起使用,產生一些奇奇怪怪的效果,有興趣可以自己看看。這裏舉個小栗子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>文本方向</title>
<style>
div.ex0 {direction:rtl;}
div.ex1	{direction:rtl; unicode-bidi:bidi-override; }
</style>
</head>
<body>

<div>默認的書寫方向。</div>
<div class="ex0">從右向左的方向。</div>
<div class="ex1">另一種從右向左的方向。</div>

</body>
</html>

結果:

2.2 文本對齊: text-align和vertical-align

text-align 屬性規定元素中的文本的水平對齊方式,它可以選擇的值有left(默認,左對齊),right(右對齊),center(居中),justify(兩端對齊)。

左對齊或右對齊的時候,另一半會“參差不齊”,被稱爲“毛邊”,使用justify可以消除毛邊,將文本行的左右兩端都放在父元素的內邊界上,然後調整單詞和字母間的間隔,使各行的長度恰好相等。但是其填充拉伸的方法在不同的瀏覽器中是不一樣的,可能會呈現不同的效果。

{text-align:center} 與 <CENTER> 都是居中操作,但實際上二者大不相同。<CENTER> 不僅影響文本,還會把整個元素居中。text-align 不會控制元素的對齊,而隻影響內部內容。元素本身不會從一段移到另一端,只是其中的文本受影響。

vertical-align 屬性設置元素的垂直對齊方式。該屬性定義行內元素的基線相對於該元素所在行的基線的垂直對齊。該屬性允許指定負長度值和百分比值。在表單元格中,這個屬性會設置單元格框中的單元格內容的對齊方式,其可能的值如下:

2.3 文本縮進: text-indent

text-indent 屬性規定文本塊中首行文本的縮進,可以使用固定距離縮進或百分比縮進。注意,該屬性允許使用負值,如果使用負值,那麼首行會被縮進到左邊。

另外,還有特殊的操作,就是向文本的第一個字母添加特殊樣式,比如首字放大或首字下沉,這裏會用到僞元素:first-letter,可以設定的屬性包括字體、顏色、背景、內外邊緣、輪廓、浮動等。相應的,還有對首行進行特殊設置的僞元素 :first-line

<html>
<head>
<style type="text/css">
p {text-indent: 20px;}
p:first-letter {color: #ff0000;font-size:24px}
p:first-line {color: #0000ff;}
</style>
</head>

<body>
<p>
No matter how many mistakes you make or how slow you progress, you are still way ahead of everyone who isn't trying.
</p>
<p>
We can never know what to want, because, living only one life, we can neither compare it with our previous lives nor perfect it in our lives to come.
</p>
</body>

</html>

結果:

3. 文本效果

 

  • text-shadow
  • box-shadow
  • text-overflow
  • word-wrap
  • word-break

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章