移動web開發(fā)之rem布局(less基礎(chǔ)嚼隘,rem適配))

rem基礎(chǔ)

rem單位

rem (root em)是一個相對單位,類似于em袒餐,em是父元素字體大小飞蛹。

不同的是rem的基準(zhǔn)是相對于html元素的字體大小。

比如灸眼,根元素(html)設(shè)置font-size=12px; 非根元素設(shè)置width:2rem; 則換成px表示就是24px卧檐。

/* 根html 為 12px */
html {
   font-size: 12px;
}
/* 此時 div 的字體大小就是 24px */       
div {
    font-size: 2rem;
}

rem的優(yōu)勢:父元素文字大小可能不一致, 但是整個頁面只有一個html焰宣,可以很好來控制整個頁面的元素大小

媒體查詢

什么是媒體查詢

媒體查詢(Media Query)是CSS3新語法霉囚。

  • 使用 @media查詢,可以針對不同的媒體類型定義不同的樣式
  • @media 可以針對不同的屏幕尺寸設(shè)置不同的樣式
  • 當(dāng)你重置瀏覽器大小的過程中匕积,頁面也會根據(jù)瀏覽器的寬度和高度重新渲染頁面
  • 目前針對很多蘋果手機佛嬉、Android手機逻澳,平板等設(shè)備都用得到多媒體查詢

媒體查詢語法規(guī)范

  • 用 @media開頭 注意@符號
  • mediatype 媒體類型
  • 關(guān)鍵字 and not only
  • media feature 媒體特性必須有小括號包含
@media mediatype and|not|only (media feature) {
    CSS-Code;
}
1. mediatype 查詢類型
   將不同的終端設(shè)備劃分成不同的類型,稱為媒體類型
image.png
2. 關(guān)鍵字

關(guān)鍵字將媒體類型或多個媒體特性連接到一起做為媒體查詢的條件暖呕。

  • and:可以將多個媒體特性連接到一起,相當(dāng)于“且”的意思苞氮。
  • not:排除某個媒體類型湾揽,相當(dāng)于“非”的意思,可以省略笼吟。
  • only:指定某個特定的媒體類型库物,可以省略。
3 媒體特性

每種媒體類型都具體各自不同的特性贷帮,根據(jù)不同媒體類型的媒體特性設(shè)置不同的展示風(fēng)格戚揭。我們暫且了解三個。
注意他們要加小括號包含


image.png
4 媒體查詢書寫規(guī)則

注意: 為了防止混亂撵枢,媒體查詢我們要按照從小到大或者從大到小的順序來寫,但是我們最喜歡的還是從小到大來寫民晒,這樣代碼更簡潔


image.png

less 基礎(chǔ)

維護css弊端

CSS 是一門非程序式語言,沒有變量锄禽、函數(shù)潜必、SCOPE(作用域)等概念。

  • CSS 需要書寫大量看似沒有邏輯的代碼沃但,CSS 冗余度是比較高的磁滚。
  • 不方便維護及擴展,不利于復(fù)用宵晚。
  • CSS 沒有很好的計算能力
  • 非前端開發(fā)工程師來講垂攘,往往會因為缺少 CSS 編寫經(jīng)驗而很難寫出組織良好且易于維護的 CSS 代碼項目。
Less 介紹

Less(LeanerStyle Sheets 的縮寫)是一門 CSS擴展語言淤刃,也成為CSS預(yù)處理器晒他。

做為 CSS的一種形式的擴展,它并沒有減少CSS的功能钝凶,而是在現(xiàn)有的CSS語法上仪芒,為CSS加入程序式語言的特性。

它在CSS 的語法基礎(chǔ)之上耕陷,引入了變量掂名,Mixin(混入),運算以及函數(shù)等功能哟沫,大大簡化了 CSS 的編寫饺蔑,并且降低了 CSS的維護成本,就像它的名稱所說的那樣嗜诀,Less可以讓我們用更少的代碼做更多的事情猾警。
Less中文網(wǎng)址:http://lesscss.cn/

常見的CSS預(yù)處理器:Sass孔祸、Less、Stylus

一句話:Less是一門 CSS 預(yù)處理語言发皿,它擴展了CSS的動態(tài)特性崔慧。

Less安裝

①安裝nodejs,可選擇版本(8.0)穴墅,網(wǎng)址:http://nodejs.cn/download/

②檢查是否安裝成功惶室,使用cmd命令(win10是window+r 打開運行輸入cmd) ---輸入“node –v”查看版本即可

③基于nodejs在線安裝Less,使用cmd命令“npm install -g less”即可

④檢查是否安裝成功玄货,使用cmd命令“ lessc -v ”查看版本即可

Less 使用之變量

變量是指沒有固定的值皇钞,可以改變的。因為我們CSS中的一些顏色和數(shù)值等經(jīng)常使用松捉。

@變量名:值;
  • 必須有@為前綴
  • 不能包含特殊字符
  • 不能以數(shù)字開頭
  • 大小寫敏感
@color: pink;
Less 編譯 vocode Less 插件

Easy LESS 插件用來把less文件編譯為css文件

安裝完畢插件夹界,重新加載下 vscode。

只要保存一下Less文件隘世,會自動生成CSS文件可柿。


image.png
Less 嵌套
// 將css改為less
#header .logo {
  width: 300px;
}

#header {
    .logo {
       width: 300px;
    }
}

如果遇見 (交集|偽類|偽元素選擇器) ,利用&進行連接
a:hover{
    color:red;
}
a{
  &:hover{
      color:red;
  }
}
Less 運算

任何數(shù)字以舒、顏色或者變量都可以參與運算趾痘。就是Less提供了加(+)、減(-)蔓钟、乘(*)永票、除(/)算術(shù)運算。

/*Less 里面寫*/
@witdh: 10px + 5;
div {
    border: @witdh solid red;
}
/*生成的css*/
div {
  border: 15px solid red;
}
/*Less 甚至還可以這樣 */
width: (@width + 5) * 2;
  • 乘號(*)和除號(/)的寫法
  • 運算符中間左右有個空格隔開 1px + 5
  • 對于兩個不同的單位的值之間的運算滥沫,運算結(jié)果的值取第一個值的單位
  • 如果兩個值之間只有一個值有單位侣集,則運算結(jié)果就取該單位

rem適配方案

1.讓一些不能等比自適應(yīng)的元素,達到當(dāng)設(shè)備尺寸發(fā)生改變的時候兰绣,等比例適配當(dāng)前設(shè)備世分。

2.使用媒體查詢根據(jù)不同設(shè)備按比例設(shè)置html的字體大小,然后頁面元素使用rem做尺寸單位缀辩,當(dāng)html字體大小變化元素尺寸也會發(fā)生變化臭埋,從而達到等比縮放的適配。

技術(shù)方案:

1.less+rem+媒體查詢

2.lflexible.js+rem

總結(jié):

兩種方案現(xiàn)在都存在臀玄。

方案2 更簡單瓢阴,現(xiàn)階段大家無需了解里面的js代碼。

rem實際開發(fā)適配方案1

①假設(shè)設(shè)計稿是750px

②假設(shè)我們把整個屏幕劃分為15等份(劃分標(biāo)準(zhǔn)不一可以是20份也可以是10等份)

③每一份作為html字體大小健无,這里就是50px

④那么在320px設(shè)備的時候荣恐,字體大小為320/15就是 21.33px

⑤用我們頁面元素的大小除以不同的 html字體大小會發(fā)現(xiàn)他們比例還是相同的

⑥比如我們以750為標(biāo)準(zhǔn)設(shè)計稿

⑦一個100100像素的頁面元素在 750屏幕下, 就是 100/ 50 轉(zhuǎn)換為rem 是 2rem2rem 比例是1比1

⑧320屏幕下, html字體大小為21.33 則 2rem= 42.66px 此時寬和高都是 42.66 但是寬和高的比例還是 1比1

⑨但是已經(jīng)能實現(xiàn)不同屏幕下 頁面元素盒子等比例縮放的效果

總結(jié):

①最后的公式:頁面元素的rem值 = 頁面元素值(px) / (屏幕寬度 / 劃分的份數(shù))

②屏幕寬度/劃分的份數(shù)就是 htmlfont-size 的大小

③或者:頁面元素的rem值 = 頁面元素值(px) / html font-size 字體大小

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叠穆,一起剝皮案震驚了整個濱河市少漆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌硼被,老刑警劉巖示损,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嚷硫,居然都是意外死亡屎媳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門论巍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人风响,你說我怎么就攤上這事嘉汰。” “怎么了状勤?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵鞋怀,是天一觀的道長。 經(jīng)常有香客問我持搜,道長密似,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任葫盼,我火速辦了婚禮残腌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贫导。我一直安慰自己抛猫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布孩灯。 她就那樣靜靜地躺著闺金,像睡著了一般。 火紅的嫁衣襯著肌膚如雪峰档。 梳的紋絲不亂的頭發(fā)上败匹,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機與錄音讥巡,去河邊找鬼掀亩。 笑死,一個胖子當(dāng)著我的面吹牛尚卫,可吹牛的內(nèi)容都是我干的归榕。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼吱涉,長吁一口氣:“原來是場噩夢啊……” “哼刹泄!你這毒婦竟也來了外里?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤特石,失蹤者是張志新(化名)和其女友劉穎盅蝗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姆蘸,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡墩莫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逞敷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狂秦。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖推捐,靈堂內(nèi)的尸體忽然破棺而出裂问,到底是詐尸還是另有隱情,我是刑警寧澤牛柒,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布堪簿,位于F島的核電站,受9級特大地震影響皮壁,放射性物質(zhì)發(fā)生泄漏椭更。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一蛾魄、第九天 我趴在偏房一處隱蔽的房頂上張望虑瀑。 院中可真熱鬧,春花似錦畏腕、人聲如沸缴川。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽把夸。三九已至,卻和暖如春铭污,著一層夾襖步出監(jiān)牢的瞬間恋日,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工嘹狞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岂膳,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓磅网,卻偏偏與公主長得像谈截,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

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

  • 夜鶯2517閱讀 127,717評論 1 9
  • 版本:ios 1.2.1 亮點: 1.app角標(biāo)可以實時更新天氣溫度或選擇空氣質(zhì)量簸喂,建議處女座就不要選了毙死,不然老想...
    我就是沉沉閱讀 6,886評論 1 6
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭喻鳄,有人歡樂有人憂愁扼倘,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,531評論 28 53
  • 兔子雖然是枚小碩 但學(xué)校的碩士四人寢不夠 就被分到了博士樓里 兩人一間 在學(xué)校的最西邊 靠山 兔子的室友身體不好 ...
    待業(yè)的兔子閱讀 2,594評論 2 9