網頁排版:精確控制文字行高和間距

2021-03-02 字節記事本

單行高度

一行文字的高度等於 font-size 乘以 line-height

font-size: 14px, line-height: 1

當行高設置為 1 時,行高度是:

14 * 1 = 14px

font-size: 14px, line-height: 1.5

調整到 1.5 時,行高度是:

14 * 1.5 = 21px

文字行內間距

文字在一行裡的上下間距等於 font-size * (line-height - 1) * 0.5

line-height: 1

行高設為 1 時,文字上下沒有間距,調到 1.5 倍以後的效果:

line-height: 1.5

行高變成了 21px,文字上下間距是:

(21 - 14) * 0.5 = 3.5px

字號行高的關係計算出間距:

14 * (1.5 - 1) * 0.5 = 3.5px

多行文字

總高度 = 單行高度 * 行數

font-size: 14px, line-height: 1.5

5 行文字的高度是:

14 * 1.5 * 5 = 21 * 5 = 105px

之間的間距是:

14 * (1.5 - 1) = 7px

行間距和字號計算行高的方法:

1 + 行間距 / 字號 = 行高

1 + 7 / 14 = 1.5

行高帶來的排版問題

文本在行內部上下的間距,隨著行高的增加會變得更加明顯。

font-size: 14px, line-height: 2.0

當行高設置為 2 倍時,上下空白的間距達到了 7px,這個距離會拉大文字和上一個元素的間距。

div 的 margin-bottom: 24px

文字和上一個元素的實際間距就是 24 + 7 = 31px,期望的排版效果是下面這樣的:

期望的效果

解決方案


利用外邊距摺疊(Collapsing Margins)可以解決這個問題。

使用字號和行高可以計算出上下的空白間距,字號 14px、行高 2.0 ,那麼間距就是:

14 * (2 - 1) * 0.5 = 7px

那麼只要給文字的 ::before 偽元素設置 margin-top: -7px ,在外邊距摺疊效果下文字就會上移 7px,剛好就消除了上間距。

對於底部空白邊距,就給 ::after 偽元素設置 margin-bottom: -7px,讓下面的元素位置上移 7px,就可以抵消下間距。


看一下 CSS 代碼和效果:

.markdown-body > p::before {  content: "";  display: block;  width: 0;  height: 0;  margin-top: -7px;}

::before margin-top: -7px

.markdown-body > p::after {  content: "";  display: block;  width: 0;  height: 0;  margin-bottom: -7px;}

::after margin-bottom: -7px

(全文完)

相關焦點

  • ​版面設計中行間距、字間距、段間距的作用關係
    這三者之間最重要的就是行間距,段間距和字距都和行間距有著數值上的對應關係,詳細如下:一、行間距:通常的行間距有1倍 1.2倍,1.3倍 1.5倍 1.8倍 2倍 。最常採用的行間距是1.5倍,不同的產品對這個值要求可能不同,這個1.5倍,其實就是:文字行距是文字1/2。
  • 網頁排版設計的10個小技巧
    這是建立用戶和網站之間的明確聯繫,並幫助你的用戶實現目標的關鍵。當我們談論網頁設計環境中的溝通時,這通常是指文本。排版在這個過程中起著至關重要的作用:網絡中超過95%的信息是以文字的形式出現。好的排版提高了用戶的閱讀積極性性,反之,差的排版會降低用戶的閱讀積極性。
  • 在文字編排中如何準確設置行高
    在文字編排中如何準確設置行高目錄1.字號的設置2.根據需求隨意組合3.英文的行高4.英文的行間距5字號就是字體的大小,文字從大標題H1-H7、小標題、正文、注釋都要配置相對應的字號。3.英文的行高在設置文本行高的之前,需要理解一下「行高」與「行間距」的差別。前端DIV+CSS和設計Affinity Designer等繪圖軟體都是以「行高」來進行定義的。在CSS-Style line-height屬性是行高,值分別以百分比、數值和像素來表示。
  • 網頁中文字排版技巧有哪些?
    排版是為了優化信息傳遞而進行的排列組合,在海報設計、版式設計中都講求排版的合理和精巧,網頁設計中也不例外。網頁中,文字排版效果的好壞直接影響到網頁的設計水平和可閱讀性,它既是一門藝術,也是一種技巧。好的排版非常注重視覺精度和細節,甚至連很小的細節都不容忽視。
  • 如何在APP界面設計中把文字排版做到極致?
    這些空間被稱為字腔,排版專家相信這個空間越大可以幫助我們更容易分辨這個字母。粗細(Weight)細的字體通常比較粗的類型的字體更易辨認。粗細和字腔有關,必須考慮到不能去修改文字的形狀。哪一個更容易閱讀?
  • 如何打造一篇具有呼吸感的圖文排版?
    有呼吸感的圖文排版要從以下幾個方面來打造:字間距、行距和段距、兩側留白。今天,我就跟大家一起學習一下,如何打造有呼吸感的圖文排版?為了提升閱讀的舒適度,字間距的範圍最好控制在1~2px。,行高則是在垂直方向上控制空白的面積,營造寬鬆舒適的「呼吸感」。
  • 【內容排版】超實用圖文排版方法 文章排版怎麼有美感
    那麼什麼是好的排版?在小編看來有比較棒的閱讀性的,內容在視覺上是平衡連貫的,並且有整體空間感和美感的就是好排版。所以現在就從文字排版和圖片排版這兩大方面,與大家分享內容排版的技巧。 2間距:排版更易讀通過調整行間距和段間距,讓用戶更容易掃讀文字。段間距讓用戶能夠更好地識別內容塊和意群,行間距控制好則可以讓大腦更輕鬆識別文字內容。 1、行間距 行間距沒有固定的值,通常是根據字體大小來定義的。在word裡我們常看到雙倍行距、單倍行距和1.5倍行距的選項。
  • 文章排版設計的3個小技巧
    :正文字體的70%~75%,案例中應為15pt~17pt  技巧2——控制縱向間距,使排版更易讀  通過調整行間距和段間距,讓用戶更容易掃讀文字。段間距讓用戶能夠更好地識別內容塊和意群,行間距控制好則可以讓大腦更輕鬆識別文字內容——這也符合我們的閱讀習慣。
  • 文字排版對頁面設計的重要性
    文字信息往往是展示網站內容的主要表達方式,它是否具有很好的辨識度以及易讀性有效性由文字排版來決定,進而影響用戶對網站的瀏覽效果。下面小編就從不同的文字排版來談談對網站建設的影響。文字排版行距字間距影響網站閱讀性如果網頁設計中文字使用不同的間距,不僅會影響美觀,也會影響閱讀性。在大段文字情況下,文字間距、長度有極高的要求,用戶都是喜歡看清晰文字,如果間距小,每行文字很擁擠就會顯著亂七八糟的,讓用戶提不起興趣來再看。字體的選擇頁面的文字筆畫的弧度越不規則,文字的邊緣鋸齒就會越明顯,在頁面上展示就不好看了。
  • 網站設計:網站字體排版的10個基本規則
    優化網站文字排版也是優化用戶界面的一種方式。 在本文,作者將分享一組幫助你提高文本內容的可讀性和易讀性的規則。「溝通」在設計中起著至關重要的作用 – 它能建立網站和用戶之間的聯繫,並幫助用戶完成他們的目標。 當我們談論在網頁設計方面的溝通時,通常是指文本的輸出。排版在這個過程中起著至關重要的作用:網絡上的信息95%以上的是在書面語言的形式存在。良好的文字排版使閱讀的行為輕鬆,而體驗不好的文字排版導致用戶關閉網頁。
  • 14個圖文排版技巧,設計師值得擁有
    圖文排版是個老生常談的話題,每一位設計師都具備一定的圖文排版能力。我們工作中幾乎天天都在排版,對於排版似乎是信手拈來,然而就是這樣的信手拈來,卻會讓不少初中級的設計師忽視掉很多排版的細節,做起設計來也毫無章法。在這裡,我整理了一些在排版中值得注意的細節,和排版的小技巧,希望能夠對大家有所幫助。
  • Leading-Trim:數字排版的未來
    在標準文本框中,幾乎總是在實際文本的上方和下方都有多餘的空間。因此,當你使用文本框測量和實現間距時,它最終會超出您的預期。行高越大,問題就越大。下面的示例顯示文本框之間的距離設置為32px。如您所見,即使將所有垂直間距都設置為相同的值,它們在視覺上也比32px大得多。這是跨工具和平臺的常見問題。
  • Word表格行高列寬為什麼調整不了以及調整統一行高的方法
    有時,發現表格的行高太高、列寬太寬想調小一些,或者表格超過一頁但超出的內容不多,想通過把行高調低的方法將表格縮成一頁以節省紙張,然而問題來了,不管怎麼調,就是調整不了,線條像被膠水粘住一般怎麼也拖不動。行高列寬究竟為什麼調不動呢?在介紹之前,我先看如何調整行高和列寬,以及把它們統一的方法。
  • 在手機上寫出排版優雅的文字,你需要知道這 4 件事 | 豌豆莢設計獎
    一、在手機上寫出排版優雅的文字豌豆莢設計獎 211 期獲獎者 Zine,是一款方便在手機上做出優雅排版的手機寫作工具。間距:用 1.12 倍的文字間距強化整體性考慮到整體版式的均衡,Zine 在間距方面做了許多打磨。
  • 兔課網—網頁web設計應該如何排版?
    兔課網—網頁web設計應該如何排版?自1991年蒂姆·伯納斯-李(TimBerners-Lee)翻開這一開關以來,網絡排版已經走了很長一段路。早在IE1.0時代,好的網頁排版就有點自相矛盾了。今天的情況不一樣了。我們不僅有支持圖像的瀏覽器(喘息!),而且我們有機會讓我們的網頁通過太棒了排版。
  • canvas文本繪製自動換行、字間距、豎排等實現
    p=7362一、canvas對文字排版的支持很弱和CSS相比,SVG以及canvas對文字排版的支持很弱。在CSS中天然支持的文本自動換行,其他letter-sapcing字間距,writing-mode豎排等都是一個CSS屬性就可以實現。但是在canvas中,全部都不支持。
  • 從設計規則看文字排版
    之所以在這裡把中文字體和西文字體(大多數是英文)拿出來討論,原因是:現在絕大多數的設計師,在文字排版選擇字體的時候,中西文使用一種字體,但是中西字體屬性在設計之初就有很大的區別。如:文字的大小寫、比劃、字重、間距、基線、字號等等,所以不能使用同一種字體。
  • 畢業論文排版格式全攻略
    一篇完整的畢業論文一般都有:標題,摘要,目錄,介紹,文本,結論,參考文獻和附錄。對於我們廣大在校畢業生來說,論文的字數大部分都控制在5000到20000字之間,而且對論文列印和論文排版的格式有非常嚴格的要求。絕大部分情形下,大家先編寫文章,接著設計排版,但對於論文中的長文章,這一般來說工作效率很低。