1. 程式人生 > 實用技巧 >前端基礎 | CSS

前端基礎 | CSS

1. 為了讓網頁元素的樣式更加豐富,也為了讓網頁的內容和樣式能拆分開,CSS由此思想而誕生.
2. CSS (Cascading Style Sheets) 層疊樣式表.
3. 有了CSS,html種大部分表現樣式的標籤就直接廢棄不用了,html就值負責文件結構和內容,表現形式完全交給CSS.

css基本語法及頁面應用

css基本語法

1. css的定義方法是: 選擇器 { 屬性:值; 屬性:值; 屬性:值;}
2. 選擇器是將樣式和頁面元素關聯起來的名稱,屬性是希望設定的樣式屬性每個屬性有一個或多個值。
<!-- code01_css的引入.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css的引入</title>
    <link rel="stylesheet" href="./css/mian.css">
</head>
<body>
    <div id="div01">這是一個div</div>
</body>
</html>

/* css/main.css*/
#div01{
    width: 100px;
    height: 100px;
    /* 字型的預設大小為16 */
    font-size: 20px;
    color: red;
}

css頁面引入方式

css由三種引入頁面的方式
<link> <style> 標籤的style屬性

1. 外聯式:通過link標籤,連結到外部樣式表到頁面中。
    (1) <link rel="stylesheet" type="text/css" href="css/main.css">    
    (2) 主要是 href 這個屬性
2. 嵌入式:通過style標籤,在網頁上建立嵌入的樣式表。
    (1) <style type="text/css">  ... </style> 
    (2) 一般網站的首頁會選擇內嵌CSS,因為載入會相對快一些
3. 內聯式: 通過標籤的style屬性,在標籤上直接寫樣式。
    (1) <div style="width:100px; height:100px; color:red "> ... </div>

/* css/main.css*/
#div01{
    width: 100px;
    height: 100px;
    /* 字型的預設大小為16 */
    font-size: 20px;
    color: red;
}
<!-- code02_css三種引入方式.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css三種引入方式</title>

    <!-- 第一種,link外部引入 -->
    <link rel="stylesheet" href="./css/main.css">
    <!-- 第二種,使用<style>內嵌 -->
    <style type="text/css">
        #div02{
            color: darkblue;
            background-color: bisque;
        }
    </style>
</head>
<body>
    <div id="div01">這是一個div,這是使用&lt;link&gt;引入的樣式</div>
    <div id="div02">這是一個div,這是使用&lt;style&gt;引入的樣式</div>
    <div id="div03" style="color: blueviolet;">這是一個div,這是使用標籤的style屬性引入的樣式</div>

</body>
</html>

css文字設定

1. color 設定文字的顏色,如: color:red;
    (1) color就是文字的顏色,不是 font-color,也沒有 font-color
2. font-size 設定文字的大小,如:font-size:12px;
3. font-family 設定文字的字型,如:font-family:'微軟雅黑';
4. font-style 設定字型是否傾斜,如:font-style:'normal'; 設定不傾斜,font-style:'italic';設定文字傾斜
    (1) 一般是用來設定字型不傾斜
    (2) em{ font-style: normal }   i{ font-style:normal }  (這些標籤本來就是帶有樣式的,現在相當於手動取消了樣式)
5. font-weight 設定文字是否加粗,如:font-weight:bold; 設定加粗 font-weight:normal 設定不加粗
    (1) h1{ font-weight: normal }
6. line-height 設定文字的行高,設定行高相當於在每行文字的上下同時加間距, 如:line-height:24px; 
    (1) line-height的理解是從這行文字的底部到上行文字的底部
7. font 同時設定文字的幾個屬性,寫的順序有相容問題,建議按照如下順序寫: font:是否加粗 字號/行高 字型;
    (1) 如: font:normal 12px/36px '微軟雅黑';
8. text-decoration 設定文字的下劃線,如:text-decoration:none; 將文字下劃線去掉
    (1) <a href="#" style="text-decoration:none;"></a>  => 取消超連結的下劃線
9. text-indent 設定文字首行縮排,如:text-indent:24px; 設定文字首行縮排24px 
    (1) div{  font-size=22px;  text-indent: 44px;  }
10. text-align 設定文字水平對齊方式,如text-align:center 設定文字水平居中
<!-- code03_常用文字樣式.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>css中常用文字樣式</title>
    <style type="text/css">
      div {
        color: pink; /* 字型顏色 color */
        font-size: 20px; /* 字型大小 font-size  預設16px */
        /* 字型的格式  font-family  */
        font-family: Arial, Helvetica, sans-serif;
        /* 設定文字是否傾斜 font-style */
        font-style: italic;
        /* 設定文字是否加粗 font-weight */
        font-weight: bold;
        /* 設定文字行高 line-height */
        line-height: 40px;
        /* 設定首行空格 text-indent*/
        text-indent: 40px;
        /* 設定文字對齊方式 text-align   預設是left */
        text-align: center;
      }

     #div01 #span01 {
        font-size: 30px;
        color: blue;
        font-style:normal;
    }
    </style>
  </head>
  <body>
    <div id="div01">
      大部分的資料都來自已有的資料庫,如果沒有的話也可以交給很多<span id="span01">爬蟲工程師</span>去採集,來提供。
      <br />也可以來自平時的記錄,反正資料無處不在,大都是可用的。
    </div>
  </body>
</html>

css顏色表示法

css中有三種表示顏色的方式
rgb 是表示三種光的顏色
取色的話要藉助取色器來取色

1. 顏色名錶示,比如:red 紅色,gold 金色
    (1) 只要基礎一些常見的顏色單詞
2. rgb表示,比如:rgb(255,0,0)表示紅色
3. 16進位制數值表示,比如:#ff0000 表示紅色,這種可以簡寫成 #f00
    (1) 其實最多的就是這中16進位制RGB

css選擇器

常用的css選擇器就6種
標籤,id,類,層次,組,偽類及偽元素

標籤選擇器

標籤名{...}
標籤選擇器影響範圍大,建議儘量應用在層級選擇器種

/* *是選擇全部的標籤 */
*{margin:0;padding:0}
/* div是選擇全部的div標籤 */
div{color:red}   

id選擇器

#id名稱{...}
通過id名來選擇元素,元素的id名稱不能重複,所以一個樣式設定項只能對於頁面的一個元素
id名一般給程式使用,所以css的話不推薦使用id作為選擇器(類選擇器在css中可複用)

#box{color:red} 

/*
<div id="box">....</div>   <!-- 對應以上一條樣式,其它元素不允許應用此樣式 -->
*/

類選擇器

.類名稱{...}
通過類名來選擇元素,一個類可以應用於多個元素,一個元素上也可以使用多個類,應用靈活,可複用
類選擇是css應用最多的一種選擇器
id就算寫重複了也不會報錯.... html本來就是弱語法....知識口頭約束不要這麼寫


/* 先寫好類選擇器,然後再html中使用 => 實現了樣式的複用 */
.red{color:red}
.big{font-size:20px}
.mt10{margin-top:10px} 

/*

<div class="red">....</div>
<h1 class="red big mt10">....</h1>
<p class="red mt10">....</p>
*/

層級選擇器

父選擇器 子選擇器 子子選擇器{...}
主要應用在選擇父元素下的子元素,或者子元素下面的子元素,可與標籤元素結合使用
使用層級選擇器幫助減少命名,同時也通過層級,防止命名衝突

.box span{color:red}
.box .red{color:pink}
.red{color:red}

/*
<div class="box">
    <span>....</span>
    <a href="#" class="red">....</a>
</div>

<h3 class="red">....</h3>
*/

組選擇器

選擇器1,選擇器2,...,選擇器n{...}
多個選擇器,如果有同樣的樣式設定,可以使用組選擇器

.box1,.box2,.box3{width:100px;height:100px}
.box1{background:red}
.box2{background:pink}
.box2{background:gold}

/*
<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>
*/

偽類和偽元素選擇器

選擇器:偽類/元素{...} => 偽類可以理解為事件觸發的樣式
常用的偽類選擇器有hover,表示滑鼠懸浮在元素上時的狀態
偽元素選擇器有before和after,它們可以通過樣式在元素中插入內容

/* 偽類選擇器記住 hover即可 */
.box1:hover{color:red}
/* 偽元素選擇器知道  before 和 after 即可 */
.box2:before{content:'行首文字';}
.box3:after{content:'行尾文字';}


<div class="box1">....</div>
<div class="box2">....</div>
<div class="box3">....</div>
<!-- code05_偽類_偽元素選擇器.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>偽類_偽元素選擇器</title>
    <style type="text/css">
      /* 寫css也要有面向物件的實現... 封裝樣式 */
      .link {
        font-size: 30px;
        text-decoration: none;
        color: green;
      }

      /* 現在加上一個hover事件的樣式 */
      .link:hover {
        font-weight: bold;
        color: gold;
      }

      .input:hover {
        background-color: gold;
      }
      .input:focus {
        background-color: rgb(0, 255, 213);
      }
    </style>
  </head>
  <body>
    <a href="http://www.baidu.com" class="link">百度</a><br />
    First name: <input type="text" name="fname" class="input" /><br />
    Last name: <input type="text" name="lname" class="input" /><br />
  </body>
</html>

css盒模型

盒模型使用技巧及相關問題

css元素溢位

塊元素,內聯元素,內聯塊元素

浮動

定位

background屬性

特徵佈局例項