39. css_01

hbutmeng發表於2024-12-03

1. css的概念

CSS(Cascading Style Sheets,層疊樣式表)是一種用於描述HTML文件的表現形式的樣式語言。它被設計用於將網頁的內容與表現形式分離,可以控制網頁的外觀和佈局,包括間距、顏色、字型等視覺元素,而不需要直接修改HTML的結構。

2. 語法結構

選擇符 {
    樣式屬性: 樣式屬性值;
    樣式屬性: 樣式屬性值;
    樣式屬性: 樣式屬性值, 樣式屬性值, 樣式屬性值;
}

2. 註釋語法

/* 這是註釋 */

3. 引入css的方式

3.1 head內style標籤內部直接編寫css程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p {
            color: aqua;
        }
    </style>
</head>
<body>
    <p>avril lavigne</p>
</body>
</html>

3.2 head內link標籤引入外部css檔案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="newcss.css">
</head>
<body>
    <p>avril lavigne</p>
</body>
</html>

3.3 行內式

標籤內部透過style屬性直接編寫

將HTML和css糅合到了一起(不推薦)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p style="color: blue">avril lavigne</p>
</body>
</html>

4. 基本選擇器

4.1 標籤選擇器(範圍查詢)

透過標籤名查詢標籤

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        h1 {
            color: cornflowerblue;
        }
    </style>
</head>
<body>
    <h1>avril</h1>
    <h1>lavigne</h1>
    <h1>haaland</h1>
</body>
</html>

4.2 類選擇器(範圍查詢)

透過標籤的class屬性查詢標籤  .類名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1 {
            color: cornflowerblue;
        }
    </style>
</head>
<body>
    <h1 class="c1">avril</h1>
    <h1 class="c1">lavigne</h1>
    <h1 class="c2">haaland</h1>
</body>
</html>

4.3 id選擇器(精確查詢)

透過標籤的id屬性查詢標籤  #id

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 {
            color: lightseagreen;
        }
    </style>
</head>
<body>
    <h1 class="c1" id="d1">avril</h1>
    <h1 class="c1" id="d2">lavigne</h1>
    <h1 class="c2" id="d3">haaland</h1>
</body>
</html>

5. 關係選擇器

5.1 分類

後代選擇器、子代選擇器、相鄰兄弟選擇器、通用兄弟選擇器

5.2 演示說明

    <div>div1
        <div>div2
            <p>p1</p>
        </div>
        <p>p2
            <span>span1</span>
        </p>
        <span>span2</span>
    </div>

透過巢狀來表示標籤關係:

[1]對於div1來說,div2、p2、span2是子代

[2]對於div1來說,內部的所有標籤無論層級都是div1的後代

[3]div2、p2、span2是兄弟

5.3 程式碼

[1] 子代選擇器

關鍵符號是大於號  

查詢id是d1標籤內部所有的子代span

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 > span {
            color: blueviolet;
        }
    </style>
</head>
<body>
    <div id="d1">div1
        <div>div2
            <p>p1</p>
        </div>
        <p>p2
            <span>span1</span>
        </p>
        <span>span2</span>
        <span>span3</span>
    </div>
</body>
</html>

[2]後代選擇器

關鍵符號是空格

查詢id是d1標籤內部所有的後代span

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 span {
            color: blueviolet;
        }
    </style>
</head>
<body>
    <div id="d1">div1
        <div>div2
            <p>p1</p>
        </div>
        <p>p2
            <span>span1</span>
        </p>
        <span>span2</span>
        <span>span3</span>
    </div>
</body>
</html>

[3]相鄰兄弟選擇器

關鍵符號是加號

查詢id是d2標籤同級別緊隨其後的span標籤

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d2 + span {
            color: blueviolet;
        }
    </style>
</head>
<body>
    <div id="d1">div1
        <div>div2
            <p>p1</p>
        </div>
        <p id="d2">p2
            <span>span1</span>
        </p>
        <span>span2</span>
        <span>span3</span>
    </div>
</body>
</html>

[4]通用兄弟選擇器

關鍵符號是波浪號

查詢id是d2標籤同級別下所有的h1標籤

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d2 ~ h1{
            color: blueviolet;
        }
    </style>
</head>
<body>
    <div>div1
        <div id="d2">div2
            <p>p1</p>
        </div>
        <p>p2
            <span>span1</span>
        </p>
        <span>span2</span>
        <h1>avril</h1>
        <h1>lavigne</h1>
    </div>
</body>
</html>

6. 屬性選擇器

根據標籤內部的屬性名和屬性值查詢標籤(關鍵符號是中括號)

方式一:直接透過屬性名查詢

將帶有id屬性的標籤背景顏色改為blueviolet

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        [id] {
            background: blueviolet;
        }
    </style>
</head>
<body>
    <input type="text" name="aaa" id="1">
    <input type="text" name="bbb" id="2">
    <p id="3">avril</p>
    <p id="4">lavigne</p>
</body>
</html>

方式二:屬性名+屬性值

將屬性名為id,屬性值為1的標籤背景顏色改為blueviolet

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        [id="1"] {
            background: blueviolet;
        }
    </style>
</head>
<body>
    <input type="text" name="aaa" id="1">
    <input type="text" name="bbb" id="2">
    <p id="3">avril</p>
    <p id="4">lavigne</p>
</body>
</html>

方法三:標籤名+屬性名+屬性值

將標籤名為p、屬性名為id、屬性值為3的標籤背景顏色改為blueviolet

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p[id="3"] {
            background: blueviolet;
        }
    </style>
</head>
<body>
    <input type="text" name="aaa" id="1">
    <input type="text" name="bbb" id="2">
    <p title="666" id="3">avril</p>
    <p title="666" id="4">lavigne</p>
</body>
</html>

7. 分組與巢狀

7.1 分組

[1] 語法

/*查詢div或者p或者span*/
div, p, span {
    color: red;
}

[2]示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    div {
      color: blue;
    }

    p {
      color: blue;
    }

    span {
      color: blue;
    }
  </style>

</head>
<body>
    <div>這是div標籤</div>
    <p>這是p標籤</p>
    <span>這是span標籤</span>
</body>
</html>

上述方法,重複程式碼造成了程式碼的冗餘

[3]最佳化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    /* 逗號表示並列關係 */
    div,span,p {
      color: blue;
    }
  </style>

</head>
<body>
<div>這是div標籤</div>
<p>這是p標籤</p>
<span>這是span標籤</span>
</body>
</html>

7.2 巢狀

/*查詢id是d1或者class包含c1或者span*/
#d1, .c1, span {
    color: red;
}

7.3 綜合運用

div#d1    查詢id是d1的div標籤
div.c1    查詢class包含c1的div標籤
div #d1   查詢div內部id是d1的後代標籤
#d1>.c1   查詢id是d1的內部class包含c1的子代標籤

8. 偽類選擇器

8.1 hover

設定滑鼠懸停在標籤時的樣式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    p {
        color: grey;
    }
    p:hover {
        color: deepskyblue;
    }
  </style>

</head>
<body>
    <p>Avril lavigne</p>
</body>
</html>

8.2 focus

設定標籤在成為輸入焦點時的樣式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        input:focus {
            background-color: deepskyblue;
        }
    </style>
</head>
<body>
    <input type="text">
</body>
</html>

相關文章