接地氣的來講《rem機制》+ vw,vh單位

rem到是個什么原理?身為一個前段新手饲嗽,我發(fā)現(xiàn)還有很多身邊的朋友不能很刻骨的理解rem到底是個什么貴意思票罐,介于我不想再每次上班的時候溜出去蹲廁所打電話給身邊的朋友解釋這個,我要羅列出來我的思路暮胧,接地氣的思路锐借。

學(xué)習(xí)前端開發(fā)的很多同學(xué)都接觸過淘寶的flexible问麸,很方便的適配,它是將頁面分割成10等分钞翔,然后直接在頁面上引用cdn就可以實現(xiàn)严卖,或者將源碼copy下來放在自己的項目中本地引入,我不詳細的介紹源碼布轿,下面詳細的介紹rem的原理哮笆,看完就自然明白flexible的原理了。

在沒有rem這個單位之前汰扭,我們移動端用px或者em稠肘,em是個相對單位,是根據(jù)當前字體大小來定義的萝毛,根據(jù)W3標準启具,它們是相對于使用em單位的元素的字體大小。這句話怎么理解珊泳?假如一個p標簽,你沒有設(shè)定它的字體大小拷沸,但是因為字體大小這個屬性是會繼承的色查,它繼承了父容器的字體大小,或者是父父父撞芍。秧了。。容器的序无,那么你寫1em就會等于這個被繼承的父容器的字體大小验毡,那也就是說,

<div class="1" style="font-size:20px">

? ? <div class="2" style="font-size:16px">

? ? ? ? <p style="font-size:1em">

????????????就是我了

? ? ? ? </p>

????</div>

</div>

此時的p標簽的字體大小為16px帝嗡;也就是說要這樣

<div class="1" style="font-size:20px;">

????<span class="1-1" style="font-size:0.8em">后來的我</span>

? ? <div class="2" style="font-size:16px;">

? ? ????<p style="font-size:1em;">

? ? ? ? ? ? 就是我了

? ? ? ? </p>

? ? </div>

</div>

這樣子我的span里面的字體才能跟p里面的字體做到一樣大芯ā;看到不同了嗎哟玷?

這就是em后來漸漸被取代的原因狮辽,因為它還是不夠方便,有的時候我們要做的換算還是過多了巢寡,所以前輩們創(chuàng)造了新的單位《rem》喉脖,rem也是在px上升級的,下面我們正式介紹一下rem為什么會更方便抑月,所以被造出來

首先树叽,rem是根據(jù)跟字體的大小來定義的,什么叫跟字體大小谦絮,我們知道代碼里面頁面的根本就是html和body题诵,rem就是被定義為相對于html洁仗,body里面的字體大小來轉(zhuǎn)換的,那為什么它就方便了呢仇轻?因為跟字體的大小不會改變京痢,你定義了是多少就是多少,沒定義的話就是默認大小篷店,不會因為你后面元素的字體大小的重新設(shè)定而改變祭椰,所以,還是上面這個例子疲陕,我類名就是用數(shù)字了方淤,看著個別扭,(用圖片吧蹄殃,這上面寫的有點累)


看携茂,span里面的字體跟p里面的一樣大了(真的一樣大,我沒有把調(diào)試一起截圖下來而已诅岩,你要相信我 >_<)

區(qū)別是什么讳苦,span和p里面的字體大小已經(jīng)不被其他的div的字體大小影響了,只跟隨html吩谦,body的字體大小變化鸳谜。

這就是rem的方便之處,減少了很多換算式廷,將相對的對象統(tǒng)一成一個(——跟字體)咐扭,現(xiàn)在知道rem是個什么東西了吧,那我們來說一下有關(guān)于不同手機屏幕大小的適配問題滑废,以前用px蝗肪,em的時候要去寫@media screen { } ,(媒體查詢)蠕趁。要為每個容器去重新寫一遍單位大小薛闪,這樣是很不方便的,那rem不是不用去寫@media screen { }妻导,而是要寫的就少很多很多了逛绵,我只要去寫跟字體大小的@media screen { }就好了,來看看效果


等比例縮小了倔韭,有木有术浪!文字大小會隨屏幕的大小的變化而變大變小,再也不用單獨寫span的媒體查詢和p的媒體查詢了寿酌,這就是rem機制的方便之處

其實說白了胰苏,就這么個意思,我們用rem單位的時候不是為了省去媒體查詢不寫醇疼,寫還是要寫的硕并,只是再也不用寫一大堆重復(fù)的代碼了法焰,只要管好你的跟字體大小就好了,不同的屏幕去寫不同的跟字體的媒體查詢倔毙,比如說6p埃仪,又要再大一點 的字體,也就是多謝一行代碼的事了陕赃。

(好了卵蛉,再有朋友問我為什么我用了rem換了不同屏幕的手機還是會炸這樣的問題,我不用再溜出辦公室去打電話解釋了么库,我覺得這里我說的已經(jīng)跟接地氣了傻丝,不存在聽不懂的吧hhhhhhh)

另: rem的原理就是這樣,其實可以寫的更優(yōu)雅一點的就是用js來實現(xiàn)這個適配诉儒,相信很多人也在網(wǎng)上看到過這樣的js葡缰,我順帶提一下,這樣的js原理也就是自動去獲取屏幕的寬度忱反,然后根據(jù)不同屏幕的寬度用js去修改跟字體的大小泛释,這樣就可以連媒體查詢也省略了呢,但其實也就是我們手寫的媒體查詢一樣的原理


vw單位用的人較少温算,vw是我寫移動端很喜歡的用的單位(vh一樣)胁澳,vw的原理很好理解,view width米者,可視區(qū)域的寬度,也就是手機的寬度(vh 就是view height宇智,后面只說vw蔓搞,vh一樣理解就可以);這里vw算的是屏幕的百分比随橘,舉一個例子很直觀的理解


50%跟50vw簡直一摸一樣嘛喂分,是嗎?在這里是一樣的机蔗,還有不一樣的情況蒲祈,再來看這一個效果就了然了


當我把這個叫aa的div容器寬度改為100px時,50%自然就變成了50px萝嘁,像上面一樣


這個叫aa的div容器寬度依然還是100px梆掸,子容器bb的寬度為50vw,結(jié)果牙言,50vw代表的是屏幕的一半酸钦,并不是100px的一半,這樣看起來vw跟%的區(qū)別就好像rem跟em的區(qū)別一樣咱枉,一個是相對于父容器定義大小卑硫,一個是相對于某個指定不變的參照物(rem相對于跟字體徒恋,vw相對于屏幕寬度)而且,vw不用做響應(yīng)式操作欢伏,因為是相對于手機屏幕來寫的寬度入挣,所以你用iphone6看的話它就是ip6的一半寬,用iphone5看的話硝拧,它就是ip5的一半寬径筏,簡直方便的不要不要的

vh跟vw一樣的原理,相對于屏幕的高度河爹,一般移動端的開發(fā)匠璧,寫死高度的地方稍微少一點,其實高度用px也可以咸这,畢竟移動端是可以上下滾動的嘛夷恍,這里說一下,高度也可以用vw的媳维,建議酿雪,移動端開發(fā)的時候,一半普通的小號字體的文字侄刽,直接就用px就好了指黎,沒必要這樣的文字也要根據(jù)屏幕大小變化而變化(有特殊需求除外)

rem跟vw都能實現(xiàn)不同大小的屏幕兼容,具體用哪一個州丹,看你的心情了emmmmmmmmmmm

<小菜鳥心得,有問題請拍磚>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末醋安,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子墓毒,更是在濱河造成了極大的恐慌吓揪,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件所计,死亡現(xiàn)場離奇詭異柠辞,居然都是意外死亡,警方通過查閱死者的電腦和手機主胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門叭首,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踪栋,你說我怎么就攤上這事焙格。” “怎么了夷都?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵间螟,是天一觀的道長。 經(jīng)常有香客問我,道長厢破,這世上最難降的妖魔是什么荣瑟? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮摩泪,結(jié)果婚禮上笆焰,老公的妹妹穿的比我還像新娘。我一直安慰自己见坑,他們只是感情好嚷掠,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荞驴,像睡著了一般不皆。 火紅的嫁衣襯著肌膚如雪向楼。 梳的紋絲不亂的頭發(fā)上飘言,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音拣宏,去河邊找鬼鲫骗。 笑死犬耻,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的执泰。 我是一名探鬼主播枕磁,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼术吝!你這毒婦竟也來了计济?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤排苍,失蹤者是張志新(化名)和其女友劉穎峭咒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纪岁,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年则果,在試婚紗的時候發(fā)現(xiàn)自己被綠了幔翰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡西壮,死狀恐怖遗增,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情款青,我是刑警寧澤做修,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響饰及,放射性物質(zhì)發(fā)生泄漏蔗坯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一燎含、第九天 我趴在偏房一處隱蔽的房頂上張望宾濒。 院中可真熱鬧,春花似錦屏箍、人聲如沸绘梦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卸奉。三九已至,卻和暖如春颖御,著一層夾襖步出監(jiān)牢的瞬間榄棵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工郎嫁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秉继,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓泽铛,卻偏偏與公主長得像尚辑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盔腔,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案杠茬? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,728評論 1 92
  • 什么是Rem rem和em很容易混淆,其實兩個都是css的單位弛随,并且也都是相對單位瓢喉,現(xiàn)有的em,css3才引入的r...
    tobAlier閱讀 27,828評論 2 38
  • 作者:HelKyle鏈接:http://www.w3cplus.com/css/when-to-use-em-vs...
    紅葉丶秋鳴閱讀 3,204評論 0 3
  • 單位舀透,在各個領(lǐng)域都是很常見的栓票。那么在前端領(lǐng)域用到了哪些單位呢,這篇文章讓我們細細了解一下愕够! 下面我講列舉:pt走贪、p...
    貴在隨心閱讀 5,445評論 0 7
  • 今日立春。 2017年2月3日惑芭,農(nóng)歷正月初七坠狡。年后上班第一天。 而我遂跟,正是在這一天逃沿,準備做一項改變自己的行動婴渡,努力...
    薛靜春閱讀 416評論 8 4