rem基礎、 媒體查詢、 引入資源 (理解)

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 用於所有設備
print 用於打印機和打印預覽
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.

在這裏插入圖片描述

網頁顯示圖:

在這裏插入圖片描述

好了各位,以上就是這篇文章的全部內容了。

原創】【轉載請聯繫本人】 如果本篇博客有任何錯誤,請批評指教,不勝感激 !

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章