整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          25、簡(jiǎn)述彈性盒子 flex 布局及 rem 布局?

          25、簡(jiǎn)述彈性盒子 flex 布局及 rem 布局?(必會(huì))

          em 是 CSS3 新增的一個(gè)相對(duì)單位,相對(duì)于根節(jié)點(diǎn)(html)字體大小的值,r 就是 root html{font-size:10px} ,則 2rem=20px,通過(guò)它就可以做到只修改根元素的大小,就能成比例地調(diào)整所有的字體大小,只依賴 html字體的大小。

          適配方案步驟:

          1、首先動(dòng)態(tài)計(jì)算 html 的 font-size

          2、將所有的 px 換算成 rem(計(jì)算過(guò)程請(qǐng)看下面代碼和注釋(注意:rem 的換算是根據(jù)設(shè)計(jì)圖稿的像素計(jì)算的,下面的計(jì)算只是動(dòng)態(tài)計(jì)算 html 的 font-size 大小),請(qǐng)看下面的注意事項(xiàng):

          注意:

          1、必須動(dòng)態(tài)地去設(shè)置 html 的大小,才能適配

          2、根據(jù)頁(yè)面的寬度除以一個(gè)系數(shù),把算出的這個(gè)值賦給 html 的 font-size 屬性,rem 換算值是根據(jù) psd 設(shè)計(jì)圖的寬度/系數(shù)的 rem 系數(shù)以 640px 設(shè)計(jì)稿和 750px 的視覺(jué)稿,網(wǎng)易這樣處理的:

          這樣不管是 750px 設(shè)計(jì)稿還是 640px 設(shè)計(jì)稿,1rem 等于設(shè)計(jì)稿上的 100px。故 px 轉(zhuǎn)換 rem 時(shí):1rem=1px * 0.01;

          在 750px 設(shè)計(jì)稿上:

          故對(duì)于設(shè)計(jì)稿上任何一個(gè)尺寸換成 rem 后,在任何屏下對(duì)應(yīng)的尺寸占屏幕寬度的百分比相同。故這種布局可以百分比還原設(shè)計(jì)圖

          (2.1)為什么要除一個(gè)數(shù)字,原因是:一個(gè)頁(yè)面里,不可能全都是整屏的元素,肯定有一行中放多個(gè)元素。所以就把一行分成 n 份。

          (2.2)不除一個(gè)數(shù)字的話,那 1 個(gè) rem 就是屏幕的寬度,這個(gè)值太大,如果一個(gè)元素的寬度比它小的話,就不方便計(jì)算。

          (2.3)這個(gè)系數(shù),自己定。多少都可以,但是建議給一個(gè)能整除的值(這個(gè)能整除的數(shù),還要根據(jù)設(shè)計(jì)稿能整除的數(shù)。)

          3、對(duì)于切的圖片,尺寸是根據(jù)設(shè)計(jì)圖的尺寸寬度的,顯示起來(lái)會(huì)很大,如果是 Img 標(biāo)簽,可以設(shè)置寬度為切出的圖片尺寸,換算成 rem,如果是 background-img,用background-size 屬性,設(shè)置設(shè)計(jì)圖尺寸寬高,換算成 rem 進(jìn)行圖片的縮放適配。

          對(duì)于上述的第二點(diǎn),根據(jù)設(shè)計(jì)稿動(dòng)態(tài)轉(zhuǎn)換 rem,這里說(shuō)一下,前面的計(jì)算是動(dòng)態(tài)的設(shè)置 html的 font-size 的大小,這是根據(jù)設(shè)備的獨(dú)立像素計(jì)算的。而設(shè)計(jì)稿往往是根據(jù)物理像素,即設(shè)備像素設(shè)計(jì)的,往往很大,是 750px 及以上,所以在轉(zhuǎn)換 rem 的時(shí)候,轉(zhuǎn)換是根據(jù) psd設(shè)計(jì)稿的像素進(jìn)行轉(zhuǎn)換,即 1rem=設(shè)計(jì)稿像素寬度/系數(shù),例如,如果是 1080px 的設(shè)計(jì)稿,那么,就用 1rem=1080/18=60px(這里用 18 做系數(shù),是因?yàn)槟苷缓蟛季值臅r(shí)候就根據(jù)設(shè)計(jì)稿的元素尺寸轉(zhuǎn)換,例如設(shè)計(jì)稿一個(gè)元素的高為 60px,那么就可以轉(zhuǎn)化為 1rem 了。

          特點(diǎn):

          1、所有有單位的屬性會(huì)根據(jù)屏幕的尺寸自動(dòng)計(jì)算大小

          2、同樣一個(gè)元素,在不同的設(shè)備下的大小是不一樣的。在尺寸小的設(shè)備下顯示的小,在尺寸大的設(shè)備下顯示的大

          3、一般以 iphone6 為基準(zhǔn),以它的寬度 750 除上一個(gè)系數(shù),再去算 rem

          Tips:上述步驟 2 中換算可以通過(guò) Hbuilder 將 px 自動(dòng)轉(zhuǎn) rem 以及通過(guò) less 自動(dòng)計(jì)算成 rem,sublime 也可以通過(guò)插件進(jìn)行自動(dòng)轉(zhuǎn)換

          (3.1)打開(kāi) Hbuilder,頂部欄的工具》選項(xiàng)》Hbuilder》代碼助手》px 自動(dòng)轉(zhuǎn) rem 設(shè)置

          (3.2)less 自動(dòng)轉(zhuǎn)換:Hbuilder 也可以將 less 文件自動(dòng)轉(zhuǎn)成 css 文件。less 文件的書(shū)寫如下所示:

          彈性布局適配(會(huì)配合 rem 適配使用 )

          兼容情況

          IE10 及以上、ios9 及以上、android4.4 及以上版本支持

          特點(diǎn)1、默認(rèn)所有子元素都會(huì)在一行中顯示,即使給子元素一個(gè)很大的寬度

          2、父級(jí)加了這條屬性,子級(jí)的 float、vertical-align 就會(huì)失效

          3、如果兼容低版本的機(jī)型要加前綴-webkit-,包括后面講的所有屬性容器屬性(父元素樣式) 具體看菜鳥(niǎo)教程或阮一峰的教程,這里說(shuō)一下一些重點(diǎn)知識(shí)。

          (3.1)flex-direction:子元素排列方向(主軸的方向,如果設(shè)置了 column,則意味著主軸旋轉(zhuǎn)了 90 度)

          (3.2)flex-wrap:換行方式

          (3.3)flex-flow:以上兩種方式的簡(jiǎn)寫

          (3.4)justify-content:水平對(duì)齊方式(子元素在主軸上的對(duì)齊方式)

          (3.5)align-items:垂直對(duì)齊方式(子元素在交叉軸上的對(duì)齊方式)

          (3.6)align-content:多行垂直對(duì)齊方式(多根軸線的對(duì)齊方式)

          項(xiàng)目屬性(子元素樣式)

          1、order:排列位置 //如果有兩個(gè)的值是相等,按書(shū)寫順序排列

          2、flex-grow:擴(kuò)展比例

          flex-grow 當(dāng)父級(jí)的寬度大于所有子元素寬度之和時(shí),根據(jù)父級(jí)的剩余空間,設(shè)置子元素的擴(kuò)展比例(設(shè)置后,元素給的固定寬度會(huì)被覆蓋)它是一個(gè)系數(shù)默認(rèn)為 0,即如果存在剩余空間也不擴(kuò)展。

          剩余空間:剩余空間=父級(jí)的寬度-所有子元素的寬度和

          注意:如果沒(méi)有設(shè)置初始寬度,也沒(méi)有內(nèi)容,則默認(rèn)為 0,否則為內(nèi)容的寬度。例如設(shè)置了文字,會(huì)撐開(kāi)有初始寬度。

          子元素寬度計(jì)算公式

          子元素的寬度=(父級(jí)的寬度-所有子元素的寬度和)/所有子元素的 flex-grow 屬性值之和*子元素的 flex-grow 屬性值+子元素初始寬度

          3、flex-shrink:收縮比例

          flex-shrink 當(dāng)所有子元素寬度之和大于父級(jí)寬度的時(shí)候,根據(jù)超出的空間,設(shè)置子元素的收縮比例(設(shè)置后,元素給的固定寬度會(huì)被覆蓋)它是一個(gè)系數(shù)默認(rèn)為 1,如果給個(gè) 0 的話,就不會(huì)收縮。

          超出空間:超出空間=所有子元素的寬度和-父級(jí)的寬度

          子元素寬度計(jì)算公式

          1、算出超出空間,所有子元素的寬度和-父級(jí)的寬度

          2、子元素的初始寬度*子元素的 flex-shrink 值

          3、算出第二步所有結(jié)果的和

          4、每個(gè)子元素的第二步/第三步*第一步

          5、子元素的初始寬度-第四步

          flex-basis:元素的大小

          flex:以上三個(gè)屬性的簡(jiǎn)寫

          align-self:?jiǎn)为?dú)的垂直對(duì)齊方式(交叉軸方向上)

          單闡述下px、em、rem之前的關(guān)系

          為什么要選擇rem?

          px:像素是相對(duì)于顯示器屏幕分辨率而言的相對(duì)長(zhǎng)度單位。pc端使用px倒也無(wú)所謂,可是在移動(dòng)端,因?yàn)槭謾C(jī)分辨率種類頗多,不可能一個(gè)個(gè)去適配,這時(shí)px就顯得非常無(wú)力,所以就要考慮em和rem。

          em:繼承父級(jí)的,假設(shè)html的font-size默認(rèn)為16px,body字體大小定義為50%,那么在body里字體大小就是1em=8px了。可當(dāng)你又定義了一個(gè)div,然后把字體設(shè)置成了50%,請(qǐng)問(wèn),現(xiàn)在div下的1em等于多少?因?yàn)槔^承了父級(jí)的值,現(xiàn)在這個(gè)div里的1em=4px,這么嵌套下去的話,抱歉,我數(shù)學(xué)不好!所有rem就出現(xiàn)了。

          rem:是em的升級(jí)版,rem只會(huì)相對(duì)html的值,不會(huì)受到父級(jí)的影響,這樣的好處在于:從em里的例子來(lái)講,1rem始終會(huì)等于8px。使用的時(shí)候不需要重新計(jì)算rem此時(shí)的大小。rem因?yàn)槭莄ss3增加的,所以ie8或以下請(qǐng)無(wú)視(始終想不明白,為什么國(guó)人至今對(duì)微軟都放棄的ie這么戀戀不舍)。

          以上也算是講清了他們之間的區(qū)別和關(guān)系,rem更多的運(yùn)用于移動(dòng)H5頁(yè)面的適配使用。

          下面來(lái)說(shuō)說(shuō)怎么更方便的使用rem和自己開(kāi)文處提到的坑!

          之前遇到的坑是這樣的。瀏覽器默認(rèn)的字體大小都是16px(注意這里),所以要使1rem=10px,那么只要在html選擇器中聲明Font-size=62.5%(10÷16*100%=62.5%)就可以直接使用1rem=10px單位進(jìn)行換算,其實(shí)這個(gè)算法是沒(méi)有錯(cuò)的。可是,哪里來(lái)的自信讓每個(gè)瀏覽器默認(rèn)字體都是16px????反正我也不知道自信哪來(lái)。。現(xiàn)在Chrome默認(rèn)大小可以是12px也可以是16px,那么問(wèn)題來(lái)了,國(guó)內(nèi)瀏覽器,有幾個(gè)不是用的谷歌內(nèi)核。所以html選擇器中聲明Font-size=62.5%,1rem就等于10px的換算就有點(diǎn)坑爹了,對(duì)于我這種一個(gè)像素都糾結(jié)的人來(lái)說(shuō),很蛋疼。這坑是我當(dāng)時(shí)買書(shū)學(xué)h5的時(shí)候預(yù)留下的后遺癥,現(xiàn)在這個(gè)毛病還有,因?yàn)榭旌头奖?T_T!真是矛盾。。。

          因?yàn)閞em是相對(duì)html的,那么只要將html選擇器設(shè)置一個(gè)絕對(duì)大小的值:比如在html選擇器設(shè)置font-size:20px;那么1rem=20px(解釋下為什么是20而不是其他的,首先10的倍數(shù)容易計(jì)算,那為什么不是10本身而是20?現(xiàn)在Chrome最小的字體是12px,所以10px是無(wú)效的,進(jìn)一步就取20px);現(xiàn)在是不是和效果圖一個(gè)像素都不差?!!!

          且要兼容手機(jī)各個(gè)分別率,使用媒體查詢media 可以設(shè)置不同的大小,這樣在常規(guī)的設(shè)備中都可以精準(zhǔn)到每一個(gè)像素。

          這么換算來(lái)?yè)Q算去好麻煩有木有!!所有發(fā)現(xiàn)了下面的換算工具,媽媽再也不用說(shuō)我數(shù)學(xué)題不會(huì)做了!

          下面是我直接在工具復(fù)制過(guò)來(lái)的現(xiàn)成rem換算適配代碼↓(設(shè)計(jì)稿寬度:640,字體值:20)

          @media only screen and (max-width: 1080px), only screen and (max-device-width:1080px) {

          html,body {

          font-size:16.875px;

          }

          }

          @media only screen and (max-width: 960px), only screen and (max-device-width:960px) {

          html,body {

          font-size:15px;

          }

          }

          @media only screen and (max-width: 800px), only screen and (max-device-width:800px) {

          html,body {

          font-size:12.5px;

          }

          }

          @media only screen and (max-width: 720px), only screen and (max-device-width:720px) {

          html,body {

          font-size:11.25px;

          }

          }

          @media only screen and (max-width: 640px), only screen and (max-device-width:640px) {

          html,body {

          font-size:10px;

          }

          }

          @media only screen and (max-width: 600px), only screen and (max-device-width:600px) {

          html,body {

          font-size:9.375px;

          }

          }

          @media only screen and (max-width: 540px), only screen and (max-device-width:540px) {

          html,body {

          font-size:8.4375px;

          }

          }

          @media only screen and (max-width: 480px), only screen and (max-device-width:480px) {

          html,body {

          font-size:7.5px;

          }

          }

          @media only screen and (max-width: 414px), only screen and (max-device-width:414px) {

          html,body {

          font-size:6.46875px;

          }

          }

          @media only screen and (max-width: 400px), only screen and (max-device-width:400px) {

          html,body {

          font-size:6.25px;

          }

          }

          @media only screen and (max-width: 375px), only screen and (max-device-width:375px) {

          html,body {

          font-size:5.859375px;

          }

          }

          @media only screen and (max-width: 360px), only screen and (max-device-width:360px) {

          html,body {

          font-size:5.625px;

          }

          }

          @media only screen and (max-width: 320px), only screen and (max-device-width:320px) {

          html,body {

          font-size:5px;

          }

          }

          @media only screen and (max-width: 240px), only screen and (max-device-width:240px) {

          html,body {

          font-size:3.75px;

          擊右上方紅色按鈕關(guān)注“web秀”,讓你真正秀起來(lái)!

          簡(jiǎn)言

          em 和 rem這種相對(duì)長(zhǎng)度單位進(jìn)行頁(yè)面排版是web開(kāi)發(fā)中的最好的選擇。在頁(yè)面排版中較好應(yīng)用em 和 rem,根據(jù)設(shè)備尺寸縮放顯示元素的大小。這就使得組件在不同設(shè)備上都達(dá)到最佳的顯示效果成為可能。

          web開(kāi)發(fā)中該用 em 還是 rem 呢?


          但問(wèn)題是究竟該用 em 還是 rem 呢?關(guān)于這個(gè)問(wèn)題一直存在比較大的爭(zhēng)議。本文將會(huì)給大家介紹究竟什么是 em 和 rem 和如何進(jìn)行兩者的選擇,以及結(jié)合兩者優(yōu)勢(shì)構(gòu)建模塊化的web組件。

          什么是em

          em 是相對(duì)長(zhǎng)度單位。它相對(duì)于當(dāng)前元素字體尺寸,即font-size。舉例來(lái)說(shuō),如果當(dāng)前元素的字體是20px,那么當(dāng)前元素中的1em就等于20px。

          h1 { font-size: 20px } /* 1em=20px */
          p { font-size: 16px } /* 1em=16px */
          

          實(shí)際開(kāi)發(fā)中,用相對(duì)長(zhǎng)度單位(如 em)表示字體大小是WEB開(kāi)發(fā)中的最好的選擇。請(qǐng)看下面的代碼:

          h1 { font-size: 2em }
          

          這里的h1元素字體大小究竟是多少呢?

          這時(shí),我們需要根據(jù)<h1>父元素字體的大小,來(lái)計(jì)算<h1>字體的尺寸大小。如果父元素是<html>,而且<html>的字體大小是16px。就可以計(jì)算出<h1>的字體大小是32px,即2*16px。

          用代碼表示如下:

          html { font-size: 16px }
          h1 { font-size: 2em } /* 16px * 2=32px */
          

          設(shè)置<html>字體的大小一般來(lái)說(shuō)都不是一個(gè)好主意,因?yàn)檫@樣重寫了用戶瀏覽器的默認(rèn)設(shè)置。相反,可以使用百分比值或者根本不聲明<html>字體大小

          html { font-size: 100% } /* 缺省 16px */
          

          對(duì)于大多數(shù)用戶或?yàn)g覽器,字體缺省大小是16px(未做瀏覽器缺省字體尺寸設(shè)置)。

          em 還能用來(lái)指定除字體大小外的其它屬性,象margin或padding等屬性都可以用em來(lái)表示。

          看下面的代碼, 對(duì)于<h1>和<p>元素,margin-bottom值應(yīng)該是多少? (假設(shè)<html>的字號(hào)被設(shè)置為100%)

          h1 {
           font-size: 2em; /* 1em=16px */
           margin-bottom: 1em; /* 1em=32px */
          }
          p {
           font-size: 1em; /* 1em=16px */
           margin-bottom: 1em; /* 1em=16px */
          }
          

          上述<h1>和<p>的margin-bottom都是1em,但是外邊距結(jié)果值卻不相同。上述現(xiàn)象的出現(xiàn),是因?yàn)閑m是相對(duì)于當(dāng)前元素字體的大小。由于<h1>中的字體大小現(xiàn)在設(shè)置為2em, 因此<h1>中其它屬性的1em值就是 1em= 32px。這里比較容易引起誤解的地方。

          什么是rem

          rem表示 root em,它是相對(duì)于根元素的長(zhǎng)度單位。這里根元素就是<html>中定義的字體大小。這意味著任何地方的1rem總是等于<html>中定義的字體大小。

          利用上述相同的代碼,我們用 rem 來(lái)代替 em,查看margin-bottom的計(jì)算值究竟是多少?

          h1 {
           font-size: 2rem;
           margin-bottom: 1rem; /* 1rem=16px */
          }
          p {
           font-size: 1rem;
           margin-bottom: 1rem; /* 1rem=16px */
          }
          

          如上述代碼所示,1rem總是等于16px(除非變更了<html>字體的大小)。rem的大小相較于em來(lái)說(shuō)意義更直接明確,也很容易理解。

          抉擇rem/em

          在項(xiàng)目開(kāi)發(fā)中究竟是選用 rem 還是 em 一直以來(lái)爭(zhēng)議不斷。一些開(kāi)發(fā)人員不使用rem,因?yàn)閞em使組件不那么模塊化。而另一些開(kāi)發(fā)人員喜歡rem的簡(jiǎn)單性,使用rem處理所有元素。

          其實(shí) em和rem都有各自的優(yōu)勢(shì)和劣勢(shì),在實(shí)際項(xiàng)目開(kāi)發(fā)中,應(yīng)該結(jié)合使用兩者,利用各自的優(yōu)勢(shì),從而實(shí)現(xiàn)較好代碼質(zhì)量和顯示效果。

          那么在具體的應(yīng)用中如何在兩者中做選擇呢?有兩條簡(jiǎn)單的指導(dǎo)原則:


          • 如果屬性尺寸要根據(jù)元素字體進(jìn)行縮放,則使用em
          • 其它情況下都使用rem


          上述規(guī)則太簡(jiǎn)單了。 為了更好的理解上述規(guī)則,我們就以一個(gè)簡(jiǎn)單的header組件為例,說(shuō)明單獨(dú)使用兩者來(lái)實(shí)現(xiàn)組件遇到的問(wèn)題,并體會(huì)結(jié)合使用兩者所帶來(lái)的優(yōu)勢(shì)。


          只使用rem

          這里我們只使用rem來(lái)編寫一個(gè)header組件,代碼及運(yùn)行結(jié)果如下:

          .header {
           font-size: 1rem;
           padding: 0.5rem 0.75rem;
           background: #7F7CFF;
          }
          
          


          web開(kāi)發(fā)中該用 em 還是 rem 呢?


          接下來(lái),網(wǎng)站需要一個(gè)尺寸更大的header組件。變更CSS代碼如下:

          .header {
           font-size: 1rem;
           padding: 0.5rem 0.75rem;
           background: #7F7CFF;
          }
          .header-large {
           font-size: 2rem;
          }
          

          web開(kāi)發(fā)中該用 em 還是 rem 呢?

          從上述運(yùn)行結(jié)果可以看出,文字的內(nèi)邊距(padding)過(guò)小,顯示效果不協(xié)調(diào)。如果我們堅(jiān)持只使用rem,只能變更c(diǎn)ss代碼如下:

          .header {
           font-size: 1rem;
           padding: 0.5rem 0.75rem;
           background: #7F7CFF;
          }
          .header-large {
           font-size: 2rem;
           padding: 1rem 1.5rem;
          }
          

          web開(kāi)發(fā)中該用 em 還是 rem 呢?


          上述代碼及運(yùn)行結(jié)果,雖然達(dá)到了預(yù)期的顯示效果,但卻違背了代碼復(fù)用的原則。如果網(wǎng)站有多種尺寸的.header樣式,就要多次重復(fù)的定義內(nèi)邊距。重復(fù)的代碼增加了項(xiàng)目復(fù)雜度,降低了可維護(hù)性。

          這時(shí)可以利用em可以變更上述代碼如下:

          .header {
           font-size: 1rem;
           padding: 0.5em 0.75em;
           background: #7F7CFF;
          }
          .header-large {
           font-size: 2rem;
          }
          

          當(dāng)元素屬性值的大小需要根據(jù)元素字體尺寸縮放時(shí),就應(yīng)該應(yīng)用 em 來(lái)定義屬性尺寸。這就是前述規(guī)則中的第一條規(guī)則。

          只使用em

          如果只使用em來(lái)定義上述組件,結(jié)果會(huì)怎樣呢?

          我們變更上述代碼如下(em替換rem):

          .header {
           font-size: 1em;
           padding: 0.5em 0.75em;
           background: #7F7CFF;
          }
          .header-large {
           font-size: 2em;
          }
          p {
           padding: 0.5em 0.75em;
          }
          

          為更接近實(shí)際,我們引入了<p>元素,并變更html代碼如下:

          div class="header header-large">名人名言</div>
          <p>簡(jiǎn)單是穩(wěn)定的前提</p>
          <div class="header">名人名言</div>
          <p>簡(jiǎn)單是穩(wěn)定的前提</p>
          

          web開(kāi)發(fā)中該用 em 還是 rem 呢?

          從上述運(yùn)行經(jīng)果中,不難看出.header-large部分的標(biāo)題并沒(méi)有和文本左對(duì)齊。而如果只使用em實(shí)現(xiàn)左對(duì)齊,則需要變更CSS代碼如下:

          .header {
           font-size: 1em;
           padding: 0.5em 0.75em;
           background: #7F7CFF;
          }
          .header-large {
           font-size: 2em;
           padding-left: 0.375em;
           padding-right: 0.375em;
          }
          

          web開(kāi)發(fā)中該用 em 還是 rem 呢?


          上述代碼及運(yùn)行結(jié)果,雖然達(dá)到了預(yù)期的顯示效果,但卻違背了代碼復(fù)用的原則。如果網(wǎng)站有多種尺寸的.header樣式,就要多次重復(fù)的定義左右邊距。重復(fù)的代碼增加了項(xiàng)目復(fù)雜度,降低了可維護(hù)性。

          解決上述問(wèn)題的辦法是結(jié)合使用em和rem,即使用em定義上下邊距,使用rem定義左右邊距。變更后代碼如下:

          .header {
           padding: 0.5em 0.75rem;
           font-size: 1em;
           background: #7F7CFF;
          }
          .header-large {
           font-size: 2em;
          }
          

          總結(jié)

          究竟是該使用em還是rem呢?答案應(yīng)該是結(jié)合使用rem和rem。當(dāng)屬性值的大小需要根據(jù)當(dāng)前元素字體尺寸縮放時(shí),就選用em,其它的情況都使用更簡(jiǎn)單的rem。

          最后提供小技巧:em及rem值的設(shè)定

          em及rem值的設(shè)定

          em和rem 屬性值都要經(jīng)過(guò)計(jì)算轉(zhuǎn)化成絕過(guò)長(zhǎng)度單位。常用的字體尺寸用相對(duì)長(zhǎng)度單位表示會(huì)很困難。看下面常用字體值的rem表示(基本字體尺寸是16px):

          • 10px=0.625rem
          • 12px=0.75rem
          • 14px=0.875rem
          • 16px=1rem (base)
          • 18px=1.125rem
          • 20px=1.25rem
          • 24px=1.5rem
          • 30px=1.875rem
          • 32px=2rem

          如上述列表所示,上述尺寸值的表示及計(jì)算都不分的不便。為了解決上述問(wèn)題要用到一個(gè)小技巧,即著名的 "62.5%"技術(shù)。具體請(qǐng)查看下述代碼:

          body { font-size:62.5%; } /*=10px */
          h1 { font-size: 2.4em; } /*=24px */
          p { font-size: 1.4em; } /*=14px */
          

          通過(guò)62.5%的設(shè)定,就可以很容易用em來(lái)定義具體屬性的尺寸了(10倍的關(guān)系)。

          而rem,則需要采用如下的方式:


          主站蜘蛛池模板: 亚洲不卡av不卡一区二区| 国产精品久久无码一区二区三区网 | 好吊妞视频一区二区| 国产成人精品无码一区二区| 一区二区三区免费在线视频 | 精品国产AV无码一区二区三区| 麻豆AV一区二区三区| 久久人做人爽一区二区三区| 亚洲人AV永久一区二区三区久久| 国产精品成人国产乱一区| 久久国产精品一区二区| 无码国产精成人午夜视频一区二区| 国产精品一区二区av| 亚洲第一区香蕉_国产a| 人妖在线精品一区二区三区| 一区二区三区在线观看视频| 亚洲熟女www一区二区三区| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产福利一区视频| 一区二区三区日本电影| 色欲AV蜜臀一区二区三区| 无码欧精品亚洲日韩一区夜夜嗨 | 日本精品视频一区二区| 国产精品女同一区二区久久| 国产精品一区视频| 亚洲第一区二区快射影院| 日本在线视频一区| 日韩视频一区二区三区| 成人精品一区二区电影| 亚洲一区二区三区无码中文字幕| 加勒比无码一区二区三区| 国产一区二区精品久久凹凸 | 美女视频一区三区网站在线观看| 无码人妻一区二区三区在线水卜樱| 国产精品日本一区二区不卡视频 | 久久一区二区三区免费播放| 国产一区在线视频观看| 99无码人妻一区二区三区免费| www一区二区三区| 理论亚洲区美一区二区三区| 末成年女A∨片一区二区|