8.23日音訊,如何給網頁選擇合適的字體。一個非創(chuàng)意性質的網頁,最重要的內容,說白了就是文字,那么出現(xiàn)了文字,就會出現(xiàn)文字排版、字體選擇、字體顏色大小粗細等細節(jié)。而這些細節(jié),往往是非常重要的部分。
一個非創(chuàng)意性質的網頁,最重要的內容,說白了就是文字,那么出現(xiàn)了文字,就會出現(xiàn)文字排版、字體選擇、字體顏色大小粗細等細節(jié)。而這些細節(jié),往往是非常重要的部分。
好的字體排版,可以讓人耐心的看完那些文字,然后得到其中的重要信息,還可以影響到瀏覽者閱讀的心情。同時,字體的選擇、大小等,還應該配合企業(yè)的VI識別系統(tǒng),還需要配合你作品需要表達的思想感情來確定(例如古典風格,應該選擇哥特式字體等)。
1.字體的分類和格式
1.1.襯線和無襯線
襯線算是一種輔助性的小細節(jié),籠統(tǒng)的談,太過于抽象,我們來看兩個例子:
左邊兩個字體,是有襯線字體,可以看到在邊角的位置,會多出一些修飾。這樣的好處就是,可以清晰的分辨出字母和文字,分辨筆劃的起始和終止。但是,這種字體如果設置字體大小太小的話、或者你里文字較遠,則會受到襯線影響,分辨不清晰。同時,由于中文系統(tǒng),默認的字體為宋體,見的太多導致審美疲勞,所以襯線字體比較適合打印文字以及正規(guī)文檔中使用,通常不太適合使用在網頁中。而右邊兩個字體,就是無襯線字體,沒有邊角的修飾,令人看起來很整齊光滑,沒有毛刺。比較適合用在網頁中,讓瀏覽者獲取大量的文字信息而不會疲勞。
1.2.字體系列
字體之間最大的差異并不在于有無襯線,而在于字體與字體之間,形體的差異。但是很多字體(特別是英文字體)之間,差異不大,有些新字體甚至是對已有字體進行了細微的改造后產生的。
于是,就把字體分成了幾個大的系列,同一個系列中的字體,大體相同,稱作通用字體系列。其中包括以下五個系列:
serif:帶襯線字體。TimesNewRoman是默認的serif字體,中文字體的話,是宋體、仿宋之類的字體。
sansserif:無襯線字體。Arial是默認的sans-serif字體,中文字體中,微軟雅黑、黑體等都是這類字體。
monospace:等寬字體。這個字體里面的每個字母都有相同的寬度。通常用于顯示程序代碼等,Courier是默認的monospace字體。而對于中文,每個漢字都是等寬的。
cursive:模仿手寫字體。手寫體,比較個性,通常用于標題、logo等等。這個字體系列沒有默認字體,英文來說,通常用ComicSans,中文的話,行書系列、草書系列的字體等,都可以算作手寫字體。
fantasy:裝飾用字體。多數(shù)用于標題,極具個性,字體繁多,藝術字體。無法對其的大小、形狀下一個統(tǒng)一的定論,所以沒有默認字體,在網頁中,也通常很少用到,除非你有特殊的用處創(chuàng)意性的設計。
關于通用字體系列的更多解釋、描述和字體舉例,推薦大家查看在W3school上的資料。
1.3.字體的格式
格式就是指字體表現(xiàn)出來的粗細、寬度和姿態(tài)等等特征。看下面的這張圖片:
左邊圖片里面的字,是相同大小的,同時排放在一條豎線上。為其應用了四種不同的字體后,體現(xiàn)出來了不同的形態(tài)和粗細大小。在中文字體中,不同的字體,在字間距中通常沒有很大的變化。而對于右邊圖種的英文字體,不同的字體會改變字母的大小,導致整體的尺寸布局不同,進而導致整個排版混亂。相同的字體大小,在不同的字體下面,顯示的效果幾乎完全不同。這是英文字體選擇中,比較麻煩和頭疼的問題。
1.4.字體的選擇
上面的這些理論,從某些角度和意義上來說,都是廢話。如何選擇合適的字體,才真正切合實際。那么我們應該如何選擇在網頁中使用的字體呢?
解決這個問題,我們先應該知道為什么要糾結于選擇字體這個問題。我個人認為應該存在實用性和創(chuàng)意性這兩個方面的因素。創(chuàng)意性很好理解,就是想突破常規(guī),配合自己的網頁中的設計思想而選擇相應的字體,例如表達程序員的思維,就對代碼使用等寬字體,表達恐怖、古典,使用哥特式字體等等。這點自己去找字體好了,不再贅述。最主要的問題是在于實用性的方面。
實用性問題,即不需要太過于華麗的字體,只需要大家看的都舒服、稍微帶點自己的特色即可。你會說,很容易啊,直接CSS定義一條,填上個字體就好了。如果真這樣,那就太好了。瀏覽器解析字體的過程實際上是這樣的,當瀏覽器加載CSS后,解析到有關字體的樣式,它會在你的系統(tǒng)中查找這個字體,只有找到了相應的字體文件,才會根據那個字體文件對網頁中的文字進行渲染,顯示出你想要的效果。
既然這樣,如果你的操作系統(tǒng)中,并沒有安裝網頁中定義的那種字體,就無法渲染出那種字體的效果,而通常使用當前系統(tǒng)的默認字體來渲染。那么你原有的設計,就不行了,你設計時覺得挺好,字體、位置、大小合適,但在別人的電腦上,清一色的宋體。所以這個問題,才是選擇字體的難處所在。當然,有問題就有解決方式:
1.5.使用經典通用字體
不同操作系統(tǒng)都有不同的字體系統(tǒng),但既然是字體,總有一些比較經典老牌的字體共同存在于各個系統(tǒng)中。例如無襯線的Arial字體,它產生的時間比較早,同時價格低廉,所以從早期就被windows操作系統(tǒng)使用,在其他的操作系統(tǒng)中,也會有較好的不同于默認字體的顯示效果。所以我愛水煮魚、潛行者m博客這些網站,直接在CSS中聲明使用一個字體:Arial。
使用多個字體屬性
上面的方法很簡單,但是不靈活,注重簡單而不注重細節(jié)。CSS做的很好,它可以在一個網頁中,聲明指定多個字體,這樣當寫在前面的字體,在當前操作系統(tǒng)中沒有的話,就會使用后面字體頂替。所以當你看一些網頁作品的時候,會發(fā)現(xiàn)它的CSS中的font-family屬性,指定了一大堆的字體名稱。但這個也不是可以隨便指定的,也有一些注意事項。
你應該這樣做,先確定你網頁中需要用到的字體,然后確定屬于哪個字體系列有無其他的相近字體以及衍生字體,然后編寫字體屬性。順序如下:最想用的字體》》可以代替的相近字體》》相近通用字體。例如如下寫法:
代碼不換行代碼換行
font-family:Times,TimesNR,‘NewCenturySchoolbook’,Georgia,‘NewYork’,serif;
這樣的意思就是,優(yōu)先使用Times字體,然后系統(tǒng)沒有的話,查找同型異名的TimesNR字體,如果沒有,尋找系統(tǒng)中的相近字體NewCenturySchoolbook等其他字體,最后如果都無法找到,就使用通用字體serif,這樣瀏覽器就會尋找系統(tǒng)中的無襯線的默認字體,來代替。
2.字體的大小選擇
2.1.形容字體大小的單位
在CSS中,最常用的描述字體大小的單位有兩個:em、px。通常認為em為相對大小單位,px為絕對大小單位。但從實際應用中來講,px像素其實也是一種相對大小單位。例如,在一塊15寸分辨率為800×600像素的屏幕上,10px大小的文字,要比一塊10寸分辨率1024×768像素的屏幕上的10px大小的文字顯得更大一些。下面來說一下它們的區(qū)別和用法等。
px:像素單位,10px表示10個像素大小,在現(xiàn)在的網頁設計中,常被用來表示字體大小。很方便很直觀,但是有一些弊端。對于可用性不太友好,因為是“絕對”單位,所以有些瀏覽器(早期)的字體放大縮小功能失效。瀏覽器的默認字體大小為16px,早期的網頁,由于屏幕分辨率比較低,通常采用12px作為網頁正文的標準字體大小。但是在現(xiàn)在,感覺有點偏小,比較長的文章來說,瀏覽者看起來費勁?,F(xiàn)在我更主張使用14px作為標準字體,16px作為中等字體,18px作為較大字體,12px作為偏小字體比較合適。
em:相對大小,它表示的字體大小不固定,根據基礎字體大小進行相對大小的處理。瀏覽器默認的字體大小為16px,如果你對一段文字指定1em,那么表現(xiàn)出來的就是16px大小,2em就是32px大小。相對大小單位有很廣泛的用途,由于它的相對性,所以對跨平臺跨設備的字體大小處理上有得天獨厚的優(yōu)勢,同時對于響應式的布局設計也有很大的幫助。但是缺點很明顯,你無法直觀的看到大小,而且對于不同的大小,你需要精確的計算。
2.2字體實際表現(xiàn)出來的大小
上面只是說了兩種形容字體大小的單位,但實際上表現(xiàn)出來的字體大小,并非簡單的單位前面的數(shù)值。除了數(shù)值之外,潛行者m個人認為還跟設備和視距有關。
設備就是指顯示設備的分辨率及屏幕大小,跟前面解釋px單位的相對性相同,如果在一塊非常大的分辨率非常低的屏幕(像廣場電子屏),即使很小的像素,也會展示出很大的字。這也就是為什么早期的800×600像素橫行的時候,大家都是用12px大小的原因。因為顯示的文字已經夠大了。
視距就是指瀏覽者看文字的距離。很明顯的道理,眼睛距離屏幕越遠,看起來上面的文字就變小了。
所以在選擇網頁中字體大小的時候,還需要考慮你的用戶的實際使用習慣。同一個網頁,在筆記本上和在手機上使用的時候,字體大小就不應該相同,因為電腦屏幕大分辨率高,而且視距通常比較近而且固定,手機等屏幕小分辨率較低,視距更近(大家都喜歡躺著或者趴著玩手機啦),所以這些都要考慮,才能得到一個合理的大小。
2.3.為什么是偶數(shù)字體大小
通過上面的單位介紹,對于px單位中,我舉得例子都是12px、14px、16px、18px等等,為啥不是11px、15px?這涉及到一個鋸齒的問題,特別是在早期的顯示器中,往往不能很好的處理文字的鋸齒問題,而使用單數(shù)的像素,極有可能造成鋸齒,所以默認的通常使用偶數(shù)大小。
3.字體的顏色選擇
字體的顏色選擇同樣是一個重要的細節(jié),但是涉及到配色了,已經超出本文要討論的范圍,所以在這里,我只好簡單的說一下有關網頁中字體顏色的禁忌。
3.1字體的顏色要樸素、正常
什么叫樸素正常?通常來說,文章都是白底黑字,黑色的。所以網頁中的文字,通常使用黑色,或者淺灰色,這樣更加符合大眾的口味。如果不是一些很有創(chuàng)意的設計,請不要隨便的使用顏色。如google搜索結果的色彩搭配就很經典…
3.2顏色要與背景有一定的對比度
低對比度,容易導致字體看不清楚。所以要用高對比度的顏色,例如白底黑字,黑底白字等。
當然,高對比度不是說就非得吊死在黑白兩色上了…如下面一個廣告公司的主頁色彩搭配也很和諧:
3.3避免特殊顏色
這里要避免的一些特殊顏色,是指網頁中的一些默認顏色。特別是藍色,因為藍色代表著網頁中的超鏈接,如果網頁中有一段藍色的文字,會讓人誤以為是可以點擊的超鏈接。所以這種顏色要盡量避免。但是有些時候在設計中,必須要用到這種顏色的設計,所以也有一些其他的方法來解決這個問題:
當用戶看到藍色的時候,可能會試圖放在上面看一下,結果無法點擊也沒有變成手指。再往下拉,看到超鏈接的時候,一眼就可以看出下劃線是可以點擊的超鏈接。這是一種還不錯的折中方法。
4.與字體有關的CSS屬性
與字體有關的CSS屬性,通常有以下幾個:font-family、font-style、font-weight、font-size、line-height、letter-spacing、word-spacing、text-align、text-decoration。
font-family:用于定義字體,上面有演示不多說。更詳細的資料請看:font-family。
font-style:用于定義字體的樣式,包括正常、斜體、傾斜等,對應的屬性值為:normal–文本正常顯示、italic–文本斜體顯示、oblique–文本傾斜顯示。
font-weight:用于定義文字的粗細,詳細的屬性值請看:font-weight。
font-size:設置字體大小,不再贅述。
line-height:用于設置文字中的行間距,合適的行間距對用戶閱讀帶來良好體驗。同時還可以用于垂直布局單行文字。
letter-spacing:設置文字之間的字間距,使文字之間的距離增大或者減小。
word-spacing:用于調整單詞的間距。
text-align:用來對齊文字,例如左對齊、右對齊、居中對齊等。
text-decoration:用來修飾一段文本,例如添加下劃線等。常對a標簽使用這個屬性消除其默認的下劃線。
上面是與字體相關,比較常用的CSS屬性,還有其他更加具體的,可以參考網上的資料,推薦W3school上面的有關字體的資料。
5.使用在線字體
在CSS3中,引入了一個非常強大而且實用的功能來面對上面的字體選擇問題。傳統(tǒng)的字體選擇,要你的操作系統(tǒng)中安裝相應字體才可以顯示。如果你在網頁作品中,使用了其他的創(chuàng)意字體,那么你需要生成相應的文字圖片來替換,否則不會顯示。CSS3中的這個功能,就是WebFonts,網頁中可以使用安裝在服務器端的字體。你可以將選擇好的字體,上傳到服務器中,然后使用CSS3新增的@font-face屬性,來調用服務器上的字體,然后來渲染網頁。