「當你迷惘的時候,就回到原點想一想」-中華一番 蘭飛鴻
前言
網頁前端新手村系列文章,宗旨並不在技術本身的教導,重點放在技術與技術之間的脈胳關係。讓零碎的網頁前端技術的關鍵字,成為比較有系統性的視野。
讓一開始接觸網頁前端的新手們,有一個比較友善的系統來架構你的學習,至於技術本身的深入探討,就留給其它的高手們吧。
再論 ex, em
ex
: 定義「x-height 的高度」也就是說它是一種高度單位。
em
: 定義「M 字母寬」也就是說,它是一種寬度單位。
那定義都這麼清楚了,要再論什麼呢?
這一篇,會是一篇設計相關的小知識,不過有助於我們了解 ex
, em
是否能正確使用。
為什麼是 x
我們都知道 x-height 定義的是小寫的x,那為什麼不是 o-height 或 a-height
我們來列舉一下類似高度的字母看看
abcdefghijklmnopqrstuvwxyz
其中有
視覺上,圓形略大感覺和方形一樣大。
所以淘汰有圓形的字母
剩下這四個。
淘汰有三角形尖端會凸出去的字母
比較了各種字型之後,發現一個殘酷的事
最後,殘酷的是 z 不是正方形。
做為一個基準尺寸,就是這麼殘酷。
為什麼是 M
同理可證,不過,還是寫個程式比一下字母
.letters { position : relative; top : 0 ; left : 0 ; font-size : 300px ; font-family : serif; height : 300px ; text-align : center; } .letters > span { display : inline-block; position : absolute; top : 0 ; left : 0 ; right : 0 ; margin : auto; }
<div class ="letters" > <span class ="A" > A</span > <span class ="B" > B</span > <span class ="C" > C</span > <span class ="D" > D</span > <span class ="E" > E</span > <span class ="F" > F</span > <span class ="G" > G</span > <span class ="H" > H</span > <span class ="I" > I</span > <span class ="J" > J</span > <span class ="K" > K</span > <span class ="L" > L</span > <span class ="M" > M</span > <span class ="N" > N</span > <span class ="O" > O</span > <span class ="P" > P</span > <span class ="Q" > Q</span > <span class ="R" > R</span > <span class ="S" > S</span > <span class ="T" > T</span > <span class ="U" > U</span > <span class ="V" > V</span > <span class ="W" > W</span > <span class ="X" > X</span > <span class ="Y" > Y</span > <span class ="Z" > Z</span > </div >
var index = 0 ;setInterval (nextLetter, 500 )function nextLetter ( ) { const letters = document .querySelectorAll(`.letters>span` ); if (index == letters.length) index = 0 ; const letter = document .querySelector(`.letters>span:nth-child(${++index} )` ); letters.forEach(function (item, index ) { item.style.color = "black" ; item.style.zIndex = 0 ; }) letter.style.color = "red" ; letter.style.zIndex = 10 ; }
M 比 X 寬,且接近正方形字母。
(W 不是正方形 QQ)
總結一下
在這可以知道
em
是字的最大方形基準尺寸
ex
是字的最小方形基準尺寸
網頁設計
IE 的 ex
等同於 0.5em
firefox 的 ex
才真正接近 x-height。
Chrome 和上述兩種瀏覽器長度不同。
參考資料