css中基線指的是哪一條線,如何設置基線網絡_CSS, Vertical Rhythm 教程_W3cplus

41947c19f0b4d22e3402baacc522ea81.png

首先,當談到排版,我們先要了解基線是什么?維基百科是這樣定義)的:在排版和書法中,基線是以字終sit底線為基礎,并且向兩邊延伸的直線。

好極了,但我為什么要忽視他呢?好希望你充滿激情的去設計一個非常好看的網站。我的愚見是,一個驚人的網站的基礎在于他的排版。為了讓網站上的所有文本流動順暢對齊,我們就要基于一個網格線來排版,這也就有了基線網格一說,也使基線網格有用武之處。基線將確保有一個適當的行高,這是非常重要的,它適用于任何列的布局當中。

讓我們繼續深入!正如我將要創建一個具有響應性的基線,我使用em做為單位,并且在

元素中設置默認font-size值,以確保所有瀏覽器呈現的文字大小是一致的。

body {

font-size: 100%;

}

采用100%值,瀏覽器將會渲染字體大小等于瀏覽器的默認值,也就是16px。接下來,我們需要創建一個排版的樣式風格。根據排版元素的層次結構,我將文本字號定義為:16,18,21,24,36,48。我們來看看樣式:

h1 {

font-size: 3em; /* 48 ÷ 16 = 3 */

}

h2 {

font-size: 2.25em; /* 36 ÷ 16 = 2.25 */

}

h3 {

font-size: 1.5em; /* 24 ÷ 16 = 1.5 */

}

h4 {

font-size: 1.3125em; /* 21 ÷ 16 = 1.3125 */

}

h5 {

font-size: 1.125em; /* 18 ÷ 16 = 1.125 */

}

h6 {

font-size: 1em; /* 16 ÷ 16 = 1 */

}

p {

font-size: 1em; /* 16 ÷ 16 = 1 */

}

這里就是一大堆數學運算,可能讓人感覺頭暈,會比較混亂。em是一個相對單位,1em是當前font-size的一倍,而3em就是當前font-size的3倍(記住,我們當前字體大小是100%或16px)。我們排版需要將單位轉換成em。我這里有一個公式:"目標字號 ÷ 當前字號"。如果我們希望

的font-size設置值為32px,根據公式可以計算出:"32px ÷ 16px = 2em"。我給每個樣式后面注釋了計算方法,以免混淆。

em是一個相對單位,在px和em之間轉換時是一門復雜的數學運算,其中具有一定的規則。如果你從未深入了解過兩者之間的轉換,我個強烈建議您閱讀《CSS中強大的EM》一文。——@大漠

現在我們已經有了一份使用em制作的排版風格,我們還需要創建一個合適的行高line-height。正是這種行高加上元素上下外邊距,并且根據不同的排版元素做相應的調整,創建了我們的基線。根據經驗,可讀文本的一般規則是將行高設置為字體大小的1.4~1.5倍。我這里使用的是1.5倍,我不介意給文本之間留有更多的間隙。鑒于我們的默認字體大小是16px,那么行高就是24px(16px的1.5倍)。

還記得前面算出font-size的em公式嗎?我們也可以運用到我們行高的計算中來:"目標行高 ÷ 當前字號"。加上行高的排版樣式是這樣:

h1 {

font-size: 3em; /* 48 ÷ 16 = 3*/

line-height: 1em; /* 48 ÷ 48 = 1 */

}

h2 {

font-size: 2.25em; /* 36 ÷ 16 = 2.25 */

line-height: 1.333333333333333em; /* 48 ÷ 36 */

}

h3 {

font-size: 1.5em; /* 24 ÷ 16 */

line-height: 1em; /* 24 ÷ 24 */

}

h4 {

font-size: 1.3125em; /* 21 ÷ 16 */

line-height: 1.142857142857143em; /* 24 ÷ 21 */

}

h5 {

font-size: 1.125em; /* 18 ÷ 16 */

line-height: 1.333333333333333em; /* 24 ÷ 18 */

}

h6 {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

}

p {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

}

正如大家所看到的,h1和h2的字號比較大,我們把行高也翻倍了。

剩下的事情就是給這些元素添加一些間距。我喜歡將行高的值用到margin-bottom上去。這樣我們的垂直規律(ver-tical rhythm)看起來蠻不錯,而且均勻。我創建的基線網格:

h1 {

font-size: 3em; /* 48 ÷ 16 */

line-height: 1em; /* 48 ÷ 48 */

margin-bottom: .5em; /* 24 ÷ 48 */

}

h2 {

font-size: 2.25em; /* 36 ÷ 16 */

line-height: 1.333333333333333em; /* 48 ÷ 36 */

margin-bottom: .6666666666666667em; /* 24 ÷ 36 */

}

h3 {

font-size: 1.5em; /* 24 ÷ 16 */

line-height: 1em; /* 24 ÷ 24 */

margin-bottom: 1em; /* 24 ÷ 24 */

}

h4 {

font-size: 1.3125em; /* 21 ÷ 16 */

line-height: 1.142857142857143em; /* 24 ÷ 21 */

margin-bottom: 1.142857142857143em; /* 24 ÷ 21 */

}

h5 {

font-size: 1.125em; /* 18 ÷ 16 */

line-height: 1.333333333333333em; /* 24 ÷ 18 */

margin-bottom: 1.333333333333333em; /* 24 ÷ 18 */

}

h6 {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

margin-bottom: 1.5em; /* 24 ÷ 16 */

}

p {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

margin-bottom: 1.5em; /* 24 ÷ 16 */

}

就這樣,我們有一個漂亮的文字排版的基礎。但使用em對于大家來說是一個挑戰,但對于基線網格來說是一個很好的處理方式,可以讓你的排版更方便而且還可以做到大小響應(用戶修改字體大小)。您的訪問會非常欣賞你的網站,因為你為此付投入了時間與精力。

譯者手語:整個翻譯依照原文線路進行,并在翻譯過程略加了個人對技術的理解。如果翻譯有不對之處,還煩請同行朋友指點。謝謝!

如需轉載煩請注明出處:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372448.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372448.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372448.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

libvirt里的面向對象的C語言

C語言:類的聲明和定義 1 // 通用父類的定義2 struct _virClass {3 virClassPtr parent;4 5 unsigned int magic;6 char *name;7 size_t objectSize;8 9 virObjectDisposeCallback dispose; 10 }; 11 typedef struct _virClass virClass; 12 typ…

使用JGroups進行ElasticMQ消息復制

ElasticMQ是一臺消息服務器,具有Scala,Java和與Amazon SQS兼容的接口。 它通過跨服務器群集復制消息來支持有保證的消息傳遞,并通過日志記錄實現消息持久性。 消息復制是ElasticMQ的核心功能之一。 但是,如果您看一下代碼&#xf…

ajax省市二級聯動硬編碼,AJAX請求接受硬編碼的JSON,但不接受軟編碼

這個AJAX請求返回'成功'如果PHP中的輸出被復制并粘貼了JSON,但是'失敗'如果它是由文件生成的。看看下面api.php中的評論,看看我的意思。$.aj…

Fiddler高級技巧 - 映射路徑到本地文件夾

適用場景: 你是前端開發人員,要開發一個小模塊,需要用到線上的環境(賬號、數據、跨域等),但你又沒有權限往線上傳文件你是移動測試人員,需要將一組接口的返回結果替換為另一組,最簡單…

Spring Social入門

像我一樣,無論是添加簡單的Facebook“贊”按鈕,一大堆“共享”按鈕還是顯示時間軸信息,您都不會注意到當前對應用程序“社交化”的熱衷。 每個人都在做這件事,包括Spring的家伙,事實上,他們提供了一個稱為S…

apache ajax 跨域訪問,Apache 實現AJAX跨域請求

當使用ajax跨域請求時,瀏覽器報錯:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.肯定是跨域的問題,如果用jsonp或者pro更多:當使用ajax跨域請求時,瀏覽器報錯:XmlHtt…

14、數據庫

數據庫轉載于:https://www.cnblogs.com/quyong/p/6687924.html

EhCache復制:RMI與JGroups

最近,我正在研究一種需要復制緩存的產品。 緩存提供程序已經確定-EhCache,剩下的就是有關傳輸的問題。 哪一個是最佳選擇? 這里的最佳選擇是指性能更好的選擇。 僅在兩個可用傳輸之間進行了性能評估-JGroups和RMI,對其他傳輸不予考…

Oracle 監控語句整理(包括TOP SQL等)

希望能對大家有所幫助! 很多時候大家想查看oracle數據庫中的sql語句執行情況,但是又不知道如何是好,今天在這里為大家提供一個sql語句,大家可以通過以下的sql語句查詢Oracle數據庫中Top Sql情況: 查詢結果可按照PCT、總…

服務器wifi無線放大器,一回家WiFi信號太弱?教你用兩毛錢制作信號放大器

原標題:一回家WiFi信號太弱?教你用兩毛錢制作信號放大器現在家家戶戶都有無線路由器,但是大部分人都還是早期的單天線產品,信號覆蓋范圍比較小,特別是穿墻性能不行。人在客廳WiFi信號還滿格,一到臥室就瞬間…

iOS開發 之 可穿戴設備 藍牙4.0 BLE 開發

1 前言 當前有越來越多的可穿戴設備使用了藍牙4.0 BLE(Bluetooth Low Energy)。對于iOS開發而言,Apple之前專門推出CoreBluetooth的Framework來支持BLE的開發。對于硬件開發有了解的朋友應該知道,在之前使用低版本的藍牙的設備,要…

將Java服務公開為Web服務

本教程解決了開發人員面臨的最實際的情況。 大多數時候,我們可能需要將某些現有服務公開為Web服務。 在項目生命周期的不同階段可能會遇到這種情況。 如果這是初始階段,那么您幾乎是安全的,您可以為此做好充分的準備。 但是,將要發…

git服務器維護 備份,gitlab服務運維,備份與恢復 - 橙子檸檬's Blog

gitlab服務運維工作Gitlab-ctl 使用gitlab-ctl start #啟動服務gitlab-ctl stop #停止服務gitlab-ctl restart #重啟服務檢查服務的日志信息gitlab-ctl tail redis #檢查redis的日志gitlab-ctl tail postgresql #…

angular js實現開關效果

功能:實現點擊排序,再點擊排倒序。 實現方法如下 方法一:定義變量實現點擊切換true或false,代碼為: $scope.lidata [ {"name":"Terry","age":12}, {&qu…

使用TestNG的彈簧測試支持

TestNG是一個測試框架,旨在涵蓋所有類別的測試:單元,功能,端到端,集成等。 它包括許多功能,例如靈活的測試配置,對數據驅動測試的支持(使用DataProvider),強大…

Entity Framework - 理清關系 - 基于外鍵關聯的單向一對一關系

注:本文針對的是 Entity Framework Code First 場景。 之前寫過三篇文章試圖理清Entity Framework中的一對一關系(單相思(單向一對一), 兩情相悅(雙向一對一), 兩情相悅-續),但當時理…

微信社交小程序服務器,Day12-微信小程序實戰-交友小程序-搭建服務器與上傳文件到后端...

要搞一個小型的cms內容發布系統因為小程序上線之后,直接對數據庫進行操作的話,慧出問題的,所以一般都會做一個管理系統,讓工作人員通過這個管理系統來對這個數據庫進行增刪改查微信小程序其實給我們提供了這樣的能力了(也就是可以…

java go

熟練掌握java技術,對多線程、數據結構有清晰的認識; 熟悉MySQL/Oracle數據庫,熟悉關系數據庫應用設計開發; 熟悉Spring/MyBatis/Freemarker等一種或者多種框架; java基礎扎實,熟練掌握目前主流的開源框架&a…

了解如何解決OSGI捆綁包

我想回顧一下OSGI包如何解決并使用Apache Karaf進行演示。 Karaf是基于Apache Felix內核的功能齊全的OSGI容器,并且是Apache ServiceMix集成容器的基石。 對于第一部分,我將討論OSGI框架如何解決捆綁包。 在第二部分中,我將使用Apache Karaf演…

文件共享服務器imac,iMac怎么在網絡上共享設備windows文件夾和服務 | MOS86

本章通過向您展示如何在網絡和Mac和Windows計算機之間共享文件,文件夾和設備,幫助您充分利用您的iMac網絡連接。→使用Macs共享文件和文件夾使用AirDrop和文件共享→與Windows 7計算機共享文件→設置共享權限→使用共享表快速在線共享文件→共享和訪問網…