使用 rem 設定文字大小(轉)

來源:互聯網
上載者:User

標籤:

當我們每天面對繽紛的互連網世界的時候,文字不僅僅傳遞給我們眾多的資訊資訊,而且在設計師的手裡,文字在網頁中的排版承載著一種藝術的直覺。

網頁中常用的文字大小單位是 px(Pixels),em,現在《CSS Values and Units Module Level 3》中新增了 rem 這個單位。

一、那到底什麼是 rem 呢?

規範中明確寫道:

Equal to the computed value of ‘font-size’ on the root element.

「rem」是指根項目(root element,html)的字型大小,好開心的是,從遙遠的 IE6 到版本帝 Chrome 他們都約好了,根項目預設的 font-size 都是 16px。這樣一個新的單位相容性如何呢?請出 Caniuse 看看吧:

 

太好了,IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支援了,我可以放肆的使用 rem 了。

可是,W3C 那些傢伙為什麼要閑著下面疼的新增這樣一個單位呢?它和 em 有啥區別呢?

我們知道 em 的計算是基於父級元素的,在實際使用中給我們的計算帶來了很大的不便。所以 rem 的出現解救了我這樣不會算術的人,再也不用擔心父級元素的 font-size 了,因為它始終是基於根項目(html) 的。

比如預設的 html font-size=16px,那麼我想設定12px 的文字就是:12÷16=0.75(rem)

當然,你可以引入 CSS 預先處理工具(Sass、LESS 、Stylus等)自動計算 rem 值,這裡就不一一舉例了。

但是像我這樣的懶人或者團隊開發中還沒有引入 CSS 預先處理工具的該腫麼辦呢?只能搬個計算機啪啪啪了嗎?別急,你還可以變通一下。我們改變一下 html 的預設 font-size=10px 不就好計算了嘛!Like this:

html{

font-size:62.5%; /* 10÷16=62.5% */

}

body{

font-size:12px;

font-size:1.2rem ; /* 12÷10=1.2 */

}

p{

font-size:14px;

font-size:1.4rem;

}

需要注意的是,為了相容不支援 rem 的瀏覽器,我們需要在 rem 前面寫上對應的 px 值,這樣不支援的瀏覽器可以優雅降級。其實不用太糾結是預設的 font-size:100%,還是設定為 font-size:62.5%,如果你引入了 CSS 預先處理工具那麼自然可以使用預設值,如果由於其他原因使用 font-size:62.5% 也無可厚非,完全可以在 body 中重設回你需要的預設 font-size。

二、為啥要用 rem 呢?

黑夜給了我黑色的眼睛,我將用它尋找關懷。

瀏覽器中使用者都是可以自訂預設的文字大小的,如果使用 px,使用者自行在瀏覽器設定中改變了文字大小後,網頁上是不會變化的。我們不能排除視障使用者(如近視)、老年使用者不會這麼做,作為一個具有「人文關懷」的前端,我們完全可以考慮這些情況。由其是在引入了 CSS預先處理工具之後,這幾乎不會增加什麼成本。

也再次印證前面提到的:響應式網頁不僅僅是響應不同類型的裝置,而且需要響應不同的使用者需求。

各個瀏覽器的設定方法如下:

  1.  IE瀏覽器:按下 ALT 鍵,開啟功能表列→查看→字型大小

  2. Chrome 瀏覽器:設定→顯示進階設定→網頁內容

  3. Firefox 瀏覽器:按下 ALT 鍵,開啟功能表列→工具→選項→內容選項卡

  4. 其他瀏覽器就不一一舉例了……
三、什麼時候用 rem?

既然 rem 的可用性更好,是不是在所有地方都去使用呢?別捉急,通常在標題,本文等大面積文字的位置可以使用 rem。但是在一些特殊的設計情境,rem 可能會導致布局錯位,比如這樣一個回頂部的按鈕:

所以,什麼時候用 rem,如何用好 rem? 這也需要你拿出 18K的黑色烏金睛來照亮整個頁面。讓我們一起:

拋開布局,響應文字;拋開成見,響應內心。

在面對響應式開發的時候,什麼才是合適的,什麼是不合適的,你真的想好了嗎?

(看圖思考:有個小姑娘很愛漂亮,是她正在偷偷的穿媽媽的高跟鞋……)

 

轉自:http://www.iyunlu.com/view/css-xhtml/76.html

使用 rem 設定文字大小(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.