1. 程式人生 > 其它 >前端開發技術之css樣式學習筆記分享

前端開發技術之css樣式學習筆記分享

概述

前端培訓開發中將前端結構化,html 是文件結構、css 是設定樣式(美化頁面)、js是邏輯結構

重點是 "選擇器" 和 "盒子模型"

發展史

CSS1.0CSS2.0:DIV(塊)+CSS,HTML與CSS結構分離的思想,網頁變得簡單,SEOCSS2.1:浮動,定位CSS3.0:圓角、陰影、(動畫…瀏覽器相容性~)

快速入門

1. 位置

  1. 行內關聯 :就是在標籤內部設定樣式,在標籤內 寫style <div id ="env" style ="color:red;"></div>
  2. 內部關聯和 html 在一個檔案中,即寫入head 裡面<html>
    <head>
    <style> 樣式內容 </style>
    </head>
    <body></body>
    </html>
  3. 外部關聯就是將css 專門寫成一個單獨的檔案<link rel="stylesheet" href="css/style.css" />

2. 匯入方式

主要是外部關聯的方式,如何匯入

  1. 使用 link 關鍵字,在href 加入地址
  2. 使用improt <style>@import url("css/style.css");</style>

3. 優先順序

就近原則,誰離的近 誰的樣式就生效 ---行內樣式離的最近

基本選擇器

1. 標籤選擇器 --標籤名

<style>
 body{
      //具體的樣式
    }
 div{
  //具體的樣式
}
</style>

2. 類選擇器 -- ".類名"

<style>
 .classname{
      //具體的樣式
    }
</style>

3. Id 選擇器 --“#id名”

<style>
 #env{
      //具體的樣式
    }
</style>

4. 優先順序關係

id 選擇器>類選擇器>標籤選擇器

高階選擇器

1. 層次選擇器

可以依據 html 文件數的層次來進行 樣式的選擇設定

後代選擇器

<style>
  div p{
      //div 標籤下的 p 標籤樣式
    }
</style>
  1. 子代選擇器
<style>
  div>p{
      //div 標籤下的第一個 p 標籤樣式
    }
</style>
  1. 相鄰/兄弟選擇器--/相鄰兄弟選擇器:只選擇一個,相鄰(向下)/
<style>
  .classname+p{
      //classsname 後一個標籤---非子標籤
    }
</style>
  1. 通用選擇器
<style>
  .classname-p{
      //classsname 後所有的標籤
    }
</style>

2. 偽類結構選擇器

  1. 概述:什麼是偽類,就是有邏輯的,並沒有直接指明是 那裡變化,就是依據邏輯位置來判斷
  2. 使用:標籤、類、id 後 使用:
<style>
       ul li:first-child{/*ul的第一個子元素*/
           background: aqua;
      }
       ul li:last-child{/*ul的最後一個子元素*/
           background: blue;
      }
       /*選中p1:定位到父元素,選擇當前的第一個元素
          選擇當前p元素 的父級元素,選中父級元素的第一個,
⚠️⚠️⚠️注意:並且是當前元素才生效!*/
       p:nth-child(1){
           background: orange;
      }
       p:nth-of-type(2){/*選中父元素下的,第2個p元素*/
           background: red;
      }
       a:hover{
           color: green;
      }
   </style>

3. 屬性選擇器 --常用

屬性名=屬性值(正則)

  1. = 表示絕對等於
  2. *=表示包含
  3. ^=表示以...開頭
  4. $=表示以...結尾
  5. 存在id屬性的元素a[]{}
<style>
     a[id]{
            background: yellow;
        }
a[id=first]{/*id=first的元素*/
    background: green;
}
a[class*="links"]{/*class 中有links的元素*/
    background: bisque;
}
a[href^=http]{/*選中href中以http開頭的元素*/
    background: aquamarine;
}
a[href$=pdf]{/*選中href中以http開頭的元素*/
    background: aquamarine;
}
</style>

文字美化

font-family:字型

font-size:字型大小

font-weight:字型粗細

顏色–>color   rgb   rgba

文字對齊方式–>text-align:center

首行縮排–>text-indent:2em

行高–>line-height:300px;

下劃線–>text-decoration
> text-decoration:underline/*下劃線*/
> text-decoration:line-through/*中劃線*/
> text-decoration:overline/*上劃線*/
> text-decoration:none/*超連結去下劃線*/

圖片和文字 中心線在一行 img,span{vetical-align:middle}

背景:background

漸變背景網址:https://www.grabient.com

盒子模型

  1. margin --外邊距離:就是容器(元素)邊框離父 容器的邊距位置可以巧妙的使用外邊框,使容器居中
  2. padding -- 內邊距:邊框 向內 一圈的距離
  3. border --邊框 :就是容器的框框,引數 border:粗細 樣式 顏色border:1px solid red;邊框 style 引數:none定義無邊框。hidden與 "none" 相同。不過應用於表時除外,對於表,hidden 用於解決邊框衝突。dotted定義點狀邊框。在大多數瀏覽器中呈現為實線。dashed定義虛線。在大多數瀏覽器中呈現為實線。solid定義實線。double定義雙線。雙線的寬度等於 border-width 的值。groove定義 3D 凹槽邊框。其效果取決於 border-color 的值。ridge定義 3D 壟狀邊框。其效果取決於 border-color 的值。inset定義 3D inset 邊框。其效果取決於 border-color 的值。outset定義 3D outset 邊框。其效果取決於 border-color 的值。inherit規定應該從父元素繼承邊框樣式。
  4. 盒子的大小計算:margin+border+padding+內容,不然會有對不齊--或者windows 窗口出現滑塊

浮動

1. 標準文件流

文件流指的是元素排版佈局過程中,元素會預設自動從左往右,從上往下的流式排列方式。並最終窗體自上而下分成一行行,並在每行中從左至右的順序排放元素。

標準文件流的兩種等級:

塊級元素 <div>\ <h>\ <li>

行級元素 <p>\ <span>

2. dipaly

  1. 引數block:塊元素inline行內元素inline-block是塊元素,但是可以內聯,在一行none消失
  2. 使用示例:<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--block 塊元素
    inline 行內元素
    inline-block 是塊元素,但是可以內聯 ,在一行
    -->
    <style>
    div{
    width: 100px;
    height: 100px;
    border: 1px solid red;
    display: inline-block;
    }
    span{
    width: 100px;
    height: 100px;
    border: 1px solid red;
    display: inline-block;
    }
    </style>
    </head>
    <body>
    <div>div塊元素</div>
    <span>span行內元素</span>
    </body>
    </html>

3. float

left

左浮動

right

右浮動

clear:both

3. 對比

定位(重點)--後續

1. 相對定位

相對於自己原來的位置偏移

2. 絕對定位(absolute)

基於某一位置進行定位:上下左右~ 相對於網頁 位置不動

1、沒有父級元素定位的前提下,相對於瀏覽器定位

2、假設父級元素存在定位,我們通常會相對於父級元素進行偏移

3、在父級元素範圍內移動

總結:相對於父級或瀏覽器的位置,進行指定的偏移,絕對定位的話,它不在標準文件流中,原來的位置不會被保留

3. 固定定位(fixed)

在某一位置固定不動

比如:導航欄位於瀏覽器上方位置,固定不動--execle 的鎖定位置

層級(z-index)

和ps中的圖層概念相似,可以相互覆蓋--遮罩

可以和 透明度 (opacity) 相互配合使用