css中的單位換算_css大小單位px em rem的轉換和詳解

css大小單位px em rem的轉換和詳解

PX特點

1. IE無法調整那些使用px作為單位的字體大小;

2. 國外的大部分網站能夠調整的原因在于其使用了em或rem作為字體單位;

3. Firefox能夠調整px和em,rem,但是96%以上的中國網民使用IE瀏覽器(或內核)。

px像素(Pixel)。相對長度單位。像素px是相對于顯示器屏幕分辨率而言的。(引自CSS2.0手冊)

em是相對長度單位。相對于當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。(引自CSS2.0手冊)

任意瀏覽器的默認字體高都是16px。所有未經調整的瀏覽器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。為了簡化font-size的換算,需要在css中的body選擇器中聲明Font-size=62.5%,這就使em值變為 16px*62.5%=10px, 這樣12px=1.2em, 10px=1em, 也就是說只需要將你的原來的px數值除以10,然后換上em作為單位就行了。

EM特點

1. em的值并不是固定的;

2. em會繼承父級元素的字體大小。

所以我們在寫CSS的時候,需要注意兩點:

1. body選擇器中聲明Font-size=62.5%;

2. 將你的原來的px數值除以10,然后換上em作為單位;

3. 重新計算那些被放大的字體的em數值。避免字體大小的重復聲明。

也就是避免1.2 * 1.2= 1.44的現象。比如說你在#content中聲明了字體大小為1.2em,那么在聲明p的字體大小時就只能是1em,而不是1.2em, 因為此em非彼em,它因繼承#content的字體高而變為了1em=12px。

rem特點

rem是CSS3新增的一個相對單位(root em,根em),這個單位引起了廣泛關注。這個單位與em有什么區別呢?區別在于使用rem為元素設定字體大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對大小和絕對大小的優點于一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。對于不支持它的瀏覽器,應對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設定的字體大小。下面就是

一個例子:

p {font-size:14px; font-size:.875rem;}

注意:選擇使用什么字體單位主要由你的項目來決定,如果你的用戶群都使用最新版的瀏覽器,那推薦使用rem,如果要考慮兼容性,那就使用px,或者兩者同時使用。

在這里可以查看各種瀏覽器對rem的是否兼容,http://caniuse.com/#search=rem

rem是相對于根元素,這樣就意味著,我們只需要在根元素確定一個參考值,這個參考值設置為多少,完全可以根據您自己的需求來定。

一般瀏覽器默認的字體大小是16px,下面是默認16px與rem之間的轉換關系:

| px | rem |

------------------------

| 12 | 12/16 = .75 |

| 14 | 14/16 = .875 |

| 16 | 16/16 = 1 |

| 18 | 18/16 = 1.125 |

| 20 | 20/16 = 1.25 |

| 24 | 24/16 = 1.5 |

| 30 | 30/16 = 1.875 |

| 36 | 36/16 = 2.25 |

| 42 | 42/16 = 2.625 |

| 48 | 48/16 = 3 |

-------------------------

為了方便計算,時常將在元素中設置font-size值為62.5%:

相當于在中設置font-size為10px,此時,上面示例中所示的值將會改變:

| px | rem |

-------------------------

| 12 | 12/10 = 1.2 |

| 14 | 14/10 = 1.4 |

| 16 | 16/10 = 1.6 |

| 18 | 18/10 = 1.8 |

| 20 | 20/10 = 2.0 |

| 24 | 24/10 = 2.4 |

| 30 | 30/10 = 3.0 |

| 36 | 36/10 = 3.6 |

| 42 | 42/10 = 4.2 |

| 48 | 48/10 = 4.8 |

-------------------------

由于rem是css3中的一個屬性,很多人首先關注的就是瀏覽器對他的支持度,我截了一張caniuse對rem屬性的兼容表:

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

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

相關文章

有幾種部署模式_來!PyFlink 作業的多種部署模式

關于 PyFlink 的博客我們曾介紹過 PyFlink 的功能開發,比如,如何使用各種算子(Join/Window/AGG etc.),如何使用各種 Connector(Kafka, CSV, Socket etc.),還有一些實際的案例。這些都停留在開發階段,一旦開發完成&…

office2007每次打開都配置進度_office2007 每次打開word,excel等顯示正在配置Office Professional Plus 2007的解決方...

有時候 Office2007打開文檔,每次都提示需要安裝。配置,配置完成之后,下次打開又需要配置點擊取消就不能打開。非常的煩。ffice2007下載后為什么每次打開總需要置?office2007每次打開都要正在配置?其實不需要重新安裝可…

mysql命令參數_MySQL命令行參數完整版

MySQL命令行參數完整版mysql教程支持下面的選項:---help,-?顯示幫助消息并退出。--batch,-B打印結果,使用tab作為列間隔符,每個行占用新的一行。使用該選項,則mysql不使用歷史文件。--character…

consul 文件夾無法顯示_consul集群搭建參考

1.官網下載安裝包https://releases.hashicorp.com/consul/1.4.3/consul_1.4.3_linux_amd64.zip2.部署節點如下192.168.8.142 sxconsul1192.168.8.143 sxconsul2192.168.8.144 sxconsul33.解壓之后的consul是一個可執行文件,復制到/usr/local/bin/ 下4.三臺服務器創建…

mysql linux環境安裝_MySQL Linux環境的安裝配置

在Kali中已經內置了MySQL(鏡像可以從mysql.com/downloads/ 下載安裝)奇怪的是博主我的kali內置的是mariaDB數據庫,所以我也懶得弄MySQL了!直接mariaDB吧!差不多【PS:據博主所致,mariaDB的操作和MySQL一樣哦!在這后面有…

mysql not in 轉化_[轉]mysql里not in語句怎么寫 | 學步園

使用mysql中經常會遇到的問題,記錄下來轉自: http://database.e800.com.cn/articles/2007/630/1183147360019880660_1.htmlselect bid from board where not in (select bid from favorite)但在mysql里就提示SQL語句的語法不對,“...near sel…

java mysql 事物_java基礎之MySQL事務和視圖

第三節 事務和視圖3.1事務事務是用來維護數據庫完整性的,它能夠保證一系列的MySQL操作要么全部執行,要么全不執行。舉一個例子來進行說明,例如轉賬操作:A賬戶要轉賬給B賬戶,那么A賬戶上減少的錢數和B賬戶上增加的錢數必…

define定義的是什么類型_DEFINE_PROFILE用法介紹(1)

“ 長風破浪會有時,直掛云帆濟滄海!”01—概述可以使用DEFINE_PROFILE定義一個自定義邊界配置文件或單元格區域條件,該條件隨空間坐標或時間而變化。可以自定義的變量如下:速度,壓力,溫度,湍流動能&#xf…

如何判斷輸入的是字符還是數字_[Leetgo]判斷字符串是否為數字

題解分析代碼實現實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。題解分析一個標識數字的字符串可能包括以下字符類型:空格;數組:0~9;正負號小數點冪符號:e/E;為了解決此類問題,需要…

mysql索引優化面試題_mysql索引優化面試題

曾經偷偷的面試了兩個單位,都提到了Mysql的優化問題,所以以后要多多學習數據庫的優化知識了。建設數據庫的優化大概主要就是索引的優化了吧,因為我們不可能修改數據結構的情況下,提高數據庫的查詢效率似乎也只能用索引了。當然這也…

python 可視化大屏幕_如何用python搭建可視化看板?

可視化看板是指大屏 駕駛艙 dashboard這些嗎,如果是,那不建議用python來做,不專業,目前沒有見過哪個項目上的大屏是用python做的,它不是萬能的大屏的制作一般是這樣的先根據用戶的需求,所在的行業&#xff…

mysql語句轉為sql語句_MySQL 的分頁查詢 SQL 語句(轉)

轉自 https://www.cnblogs.com/wbxk/p/10644766.htmlMySQL一般使用 LIMIT 實現分頁。基本語句為:SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...在中小數據量的情況下,這樣的SQL足夠用了,唯一需要注意的問題就是確保使用了索引。舉例…

mysql查詢選課最少成績最高_MySQL 練習

最近在學習MYSQL 數據庫,在此mark 一下做過的sql 相關練習表結構如下:teacher表tidtnameclass表cidcaptioncourse表cidcnameteacher_idstudent表sidgenderclass_idsnamescore表sidstudent_idcourse_idnumclass :teacher : course : student :score : 根…

mysql中nchar_淺談SQL Server、MySQL中char,varchar,nchar,nvarchar區別

1,定義:char: 固定長度,存儲ANSI字符,不足的補英文半角空格。nchar: 固定長度,存儲Unicode字符,不足的補英文半角空格varchar: 可變長度,存儲ANSI字符&…

mysql 5.764_RHEL5.764位源碼編譯安裝MySQL-5.5.42遇到的問題

由于MySQL從5.5之后的版本源碼編譯安裝用cmake, make, make install安裝,不用./Configure,make,make install 安裝,所以要看下系由于MySQL從5.5之后的版本源碼編譯安裝用cmake, make, make install安裝,不用./Configure,make,make install 安裝,所以要看…

java 判斷子類_java判斷class是否是某個類的子類或父類

Class c = ArrayList.class; c.isPrimitive(); //判斷c是否為基本數據類型 c.isAssignableFrom(List.class); //判斷c是否是List類的子類或父類 c.getGenericType(); //得到泛型類型 免費學習視頻分享:java視頻教程 實例:通過反射得到List 集合中的泛型類型package com.zf.ta…

java轉日期_Java時間日期格式轉換

import java.util.*;import java.text.*;importjava.util.Calendar;public classVeDate {/*** 獲取現在時間**return返回時間類型 yyyy-MM-dd HH:mm:ss*/public staticString getNowDate() {Date currentTime newDate();SimpleDateFormat formatter new SimpleDateFormat("…

java 對比工具_Java幾款性能分析工具的對比

在給客戶進行應用程序維護的過程中,我注意到一些關于高負載條件下的性能問題。理論上,增加對應用程序的負載會使性能有所下降,但是我認為性能下降的比率遠遠高于負載的增加,同時我也發現,性能可以通過改變應用程序的邏…

java for循環獲取value_Java遍歷取出Map集合key-value數據的4種方法

將map集合存數據與取出數據全部放在一個類MapTest中,方便閱讀與查看隨便創建一個包,在包中新建一個class文件,(也可以不建包,直接新建一個class文件)新建class文件MapTest.java,代碼如下:import java.util.HashMap;imp…

as3調用java_關于openamf我用as3鏈接java程序,并調用相關的方法,但是能夠連上,卻不能夠調用是怎么回事...

我用的openamf做flashremoting服務器是沒問題的!這是as的代碼!package{importflash.display.Sprite;importflash.net.ObjectEncoding;importcom.riafan.remoting.PendingCall;import...我用的openamf做flash remoting服務器是沒問題的!這是as…