em :
相對於父元素的字體大小來講的javascript
<div> <p></p> </div>
div { font-size: 12px; } p { width: 10em; height: 10em; background-color: pink; }
rem:
相對於 html 元素字體大小來講的css
html { font-size: 16px; } div { font-size: 12px; } p { /*width: 10em;*/ /*height: 10em;*/ width: 10rem; height: 10rem; background-color: pink; }
總結:rem的優勢就是能夠經過修改html裏面的文字大小來改變頁面中元素的大小,頁面中元素大小能夠控制html
mediatype
媒體類型
栗子:java
<style> /*這句話的意思就是:在咱們屏幕上,而且 最大的寬度是 800像素 設置咱們想要的樣式*/ /*max-width 小於等於800*/ /*媒體查詢能夠根據不一樣的屏幕尺寸在改變不一樣的樣式*/ @media screen and (max-width: 900px){ body{ background-color: pink; } } @media screen and (max-width: 600px) { body{ background-color: purple; } } </style>
栗子2:根據頁面寬度改變頁面背景顏色
less
<style> /*1. 小於 540 px 頁面的背景變爲藍色*/ @media screen and (max-width: 539px){ body{ background-color: blue; } } /*2. 540~970 頁面的背景變成綠色*/ /*@media screen and (min-width: 540px) and (max-width: 969px) {*/ /* body {*/ /* background-color: green;*/ /* }*/ /*}*/ /*簡寫爲:*/ @media screen and (min-width: 540px){ body{ background-color: green; } } /*3.大於等於 970 頁面背景變成紅色 */ @media screen and (min-width:970px){ body{ background-color: red; } } </style>
栗子:字體
<style> *{ margin: 0; padding: 0; } @media screen and (min-width: 320px) { html{ font-size: 50px; } } @media screen and (min-width: 640px){ html{ font-size: 100px; } } .top { height: 1rem; font-size: 0.5rem; background-color: deeppink; color: #ffffff; text-align: center; line-height: 1rem; } </style> <body> <div class="top">購物車</div> </body>
栗子:flex
需求:當咱們屏幕大於等於 640px 以上的,咱們讓 div 一行顯示 2 個
當咱們屏幕小於 640 咱們讓div一行顯示一個
建議媒體查詢最好的方法是從小到大插件
<link rel="stylesheet" href="style320.css" media="screen and (min-width:320px)"> <link rel="stylesheet" href="style640.css" media="screen and (min-width:640px)">
<body> <div>1</div> <div>2</div> </body>
style320.css
設計
div { width: 100%; height: 100px; } div:nth-child(1){ background-color: pink; } div:nth-child(2){ background-color: purple; }
style640.css
3d
div { width: 50%; height: 100px; float: left; } div:nth-child(1){ background-color: pink; } div:nth-child(2){ background-color: purple; }
總結:引入資源就是 針對不一樣的屏幕尺寸 調用不一樣的 CSS 文件
栗子:
//定義一個顏色爲粉色的變量 @color:pink; //定義一個 字體爲141像素的變量 @font14:14px; body { background-color: @color; } div { background-color: @color; font-size: @font14; } a{ font-size: @font14; }
注意:
錯誤的變量名 @1color @color~#
變量名區分大小寫 @color 和 @Color 是兩個不一樣的變量
vocode Less插件
Easy LESS 插件用來把 less 文件編譯成 css 文件
栗子:
my.less
//定義一個顏色爲粉色的變量 @color:pink; //定義一個 字體爲24像素的變量 @font14:24px; //錯誤的變量名 @1color @color~# //變量名區分大小寫 @color 和 @Color 是兩個不一樣的變量 body { background-color: @color; } div { background-color: @color; font-size: @font14; }
21.less的使用.html
<link rel="stylesheet" href="my.css">
<body> <div>誰還不是一個小仙女呢!</div> </body>
栗子:
less文件
.header { width: 200px; height: 200px; background-color:pink; // less嵌套 子元素的樣式直接寫到父元素裏面便可 a { color: red; } }
被編譯成css文件以下
.header { width: 200px; height: 200px; background-color: pink; } .header a { color: red; }
僞類栗子:
less文件
.header { width: 200px; height: 200px; background-color:pink; a { color: red; &:hover { color: blue } } }
被編譯成css文件以下
.header { width: 200px; height: 200px; background-color: pink; } .header a { color: red; } .header a:hover { color: blue; }
僞元素栗子:
less 文件
.nav { .logo{ color: red; } &::before{ content: ""; } }
被編譯成css 文件以下
.nav .logo { color: red; } .nav::before { content: ""; }
栗子1:
less文件
@border:5px + 5; div { width: 200px - 50; height: 200px * 2; border:@border solid red } img { width:82 / 50rem; height: 82 / 50rem; }
css 文件
div { width: 150px; height: 400px; border: 10px solid red; } img { width: 1.64rem; height: 1.64rem; }
栗子2:
less文件
@baseFont:50px; html{ font-size: @baseFont; } img { width: 82rem / @baseFont; height: 82rem / @baseFont; }
css 文件
html { font-size: 50px; } img { width: 1.64rem; height: 1.64rem; }
總結:
1.運算符的左右兩側必須用空格隔開
2. 兩個數參與運算,若是隻有一個數有單位,則最後的結果就以這個單位爲準
3. 兩個數參與運算,若是兩個數都有單位,而且單位不一致,則最後的結果以第一個數的單位爲準
注意:
顏色也能夠參與運算,好比
less文件
background-color:#666 - #222
css 文件:
background-color:#444
rem + 媒體查詢 + less
栗子:
<style> *{ margin: 0; padding: 0; } @media screen and (min-width:320px){ html{ font-size: 22px; } } @media screen and (min-width:750px){ html{ font-size: 50px; } } div { width: 2rem; height: 2rem; background-color:pink; } </style> </head> <body> <div></div> </body>
大屏下寬和高是 100px * 100px的
小屏下寬和高是 44px * 44px的
達到等比例縮放的效果
總結:
原型大小的盒子 就是頁面元素值: 100px * 100px
屏幕寬度:750px
劃分的份數:15等份
屏幕寬度 / 劃分的份數 就是 html font-size 的大小 = 750 / 15 = 50
頁面元素的 rem值 : 100 / 50 = 2rem
http://www.javashuo.com/article/p-njkichck-ny.html
flexible.js