rem基礎
rem單位
rem(root em)是一個相對單位,類似於em,em是父元素字體大小。
不同的是rem的基準是相對於html元素的字體大小。
比如,根元素(html) 設置font-size=12px; 非根元素設置width:2rem;則換成px表示就是24px。
命令演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
html{
font-size: 12px;
}
div{
font-size: 12px;
width: 15rem;
height: 15rem;
background-color: cornflowerblue;
}
p{
/* 1. em 相對於父元素 的字體大小來說 */
/* width: 10em;
height: 10em; */
/* 2. rem 相對於 html元素字體大小來說的 */
width: 10rem;
height: 10rem;
background-color: chartreuse;
/* 3. rem的優點就是可以通過修改html裏面的文字大小來改變頁面中元素的大小可以整體控制 */
}
</style>
</head>
<body>
<div>
<p></p>
</div>
</body>
</html>
網頁顯示:
媒體查詢
1. 什麼是媒體查詢
媒體查詢(Media Query) 是CSS3新語法。
使用 @media查詢,可以針對不同的媒體類型定義以不同的樣式
@media 可以針對不同的屏幕尺寸設置不同的樣式
當你重置瀏覽器大小的過程中,頁面也會根據瀏覽器的寬度和高度重新渲染頁面。
目前針對很多蘋果手機、Android手機、平板等設備都用得到多媒體查詢。
2. 語法規範
@media mediatype and|not|only (media feature) {
CSS-Code;
}
用 @media 開頭 注意 @ 符號
mediatype 媒體類型
關鍵字 and not only
media feature 媒體特性 必須有小括號包含。
1. mediatype 查詢類型
將不同的終端設備劃分成不同的類型, 稱爲媒體類型。
值 | 解釋說明 |
---|---|
all | 用於所有設備 |
用於打印機和打印預覽 | |
scree | 用於電腦屏幕,平板電腦,智能手機等 |
2. 關鍵字:
關鍵字將媒體類型或多個媒體特性連接到一起作爲媒體查詢的條件。
and: 可以將多個媒體特性連接到一起,相當於 “且” 的意思。
not : 排除某個媒體類型,可以審略。
only :指定某個特定的媒體類型,可以審略。
3. 媒體特性:
每種媒體類型都具體各自不同的特性,根據不同媒體類型的媒體特性設置不同的展示風格。
我們暫且瞭解三個。注意他們要加小括號包含。
值 | 解釋說明 |
---|---|
width | 定義輸出設備中頁面可見區域的寬度 |
min-width | 定義輸出設備中頁面最小可見區域寬度 |
max-width | 定義輸出設備中頁面最大可見區域寬度 |
命令演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* 這句話的意思就是: 在我們屏幕上 並且 最大的寬度是 800像素 設置我們想要的樣式 */
/* max-width 小於等於 800 */
/* 媒體查詢可以根據不同的屏幕尺寸在改變不同的樣式 */
@media screen and (max-width:800px){
body{
background-color: forestgreen;
}
}
@media screen and (max-width: 500px){
body{
background-color: purple;
}
}
</style>
</head>
<body>
</body>
</html>
網頁顯示:
案例: 實現思路
1. 按照從小到大的或者從小到大的思路
2. 注意我們有最大值max-width和最小值 min-width 都是包含等於的
3. 當屏幕小於540像素, 背景顏色變爲藍色 (x > 539)
4. 當屏幕大於等於540像素並且小於等於969像素的時候背景顏色爲綠色(540= <x< =969)
5. 當屏幕大於等於970像素的時候,背景顏色爲紅色(x >=970)
注意: 爲了防止混亂,媒體查詢我們要按照從小到大或者從大到小的順序來寫,但是我們最喜歡的還是從小到大來寫,
這樣代碼更簡潔。
命令演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* 1. 媒體查詢一般按照從大到小或者 從小到大的順序來 */
/* 2. 小於540px 頁面的背景顏色變爲藍色 */
@media screen and (max-width: 539px){
body{
background-color: blue;
}
}
/* 3. 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;
}
}
/* 4. 大於等於970 我們頁面的顏色改爲紅色 */
@media screen and (min-width: 970px){
body{
background-color: red;
}
}
/* 5. screen 還有 and 必須帶上不能省略的 */
/* 6. 我們的數字後面必須跟單位 970px 這個 px 不能省略的 */
</style>
</head>
<body>
</body>
</html>
網頁顯示:
案例: 媒體查詢從小到大優勢代碼分析
4. 媒體查詢+rem實現元素動態大小變化
rem 單位是跟着html來走的,有了rem頁面元素可以設置不同大小尺寸。
媒體查詢可以根據不同設備寬度來修改樣式。
媒體查詢+rem 就可以實現不同設備寬度, 實現頁面元素大小的動態變化。
媒體查詢+rem實現元素動態變化
命令演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
/* html{
font-size: 100px;
} */
/* 從小到大的順序 */
@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: .5rem;
background-color: green;
color: #fff;
text-align: center;
line-height: 1rem;
}
</style>
</head>
<body>
<div class="top">購物車</div>
</body>
</html>
網頁顯示:
引入資源 (理解)
當樣式比較繁多的時候,我們可以針對不同的媒體使用不同 stylesheets (樣式表)。
原理,就是直接在link中判斷設備的尺寸,然後引用不同的css文件。
1. 語法規範
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">
命令演示:
1.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* 當我們屏幕大於等於 640px以上的,我們讓div 一行顯示2個 */
/* 當我們屏幕小於640 我們讓div一行顯示一個 */
/* 一個建議: 我們媒體最好的方法是從小到大 */
/* 引入資源就是針對於不同的屏幕尺寸 調用不同的css文件 */
</style>
<link rel="stylesheet" href="style320.css" media="screen and (min-width: 320px)">
<link rel="stylesheet" href="style640.css" media="screen and (min-width: 640px)">
</head>
<body>
<div>1</div>
<div>2</div>
</body>
</html>
2.
3.
網頁顯示圖:
好了各位,以上就是這篇文章的全部內容了。
原創】【轉載請聯繫本人】 如果本篇博客有任何錯誤,請批評指教,不勝感激 !