前端學習筆記-CSS系列(一)選擇器

CSS簡介

CSS(Cascading Style Sheets)是一種用來表現HTML標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。
嗯,簡單的說,就是用來美化網頁的。


使用方法

有三種方法可以在站點網頁上使用樣式表:

  1. 外聯式Linking(也叫外部樣式):將網頁鏈接到外部樣式表。
  2. 嵌入式Embedding(也叫內頁樣式):在網頁上創建嵌入的樣式表。
  3. 內聯式Inline(也叫行內樣式):應用內嵌樣式到各個網頁元素。
外部樣式表

當樣式需要被應用到很多頁面的時候,外部樣式表將是理想的選擇。使用外部樣式表,你就可以通過更改一個文件來改變整個站點的外觀。

    <head>
    <link rel="stylesheet" type="text/css" href="index.css">
    </head>
內部樣式表

當單個文件需要特別樣式時,就可以使用內部樣式表。你可以在 head 部分通過 <style> 標簽定義內部樣式表。

    <head>
    <style type="text/css"> 
    body {background-color: red} 
    p {margin-left: 20px}
    </style>
    </head>
內聯樣式

當特殊的樣式需要應用到個別元素時,就可以使用內聯樣式。 使用內聯樣式的方法是在相關的標簽中使用樣式屬性。樣式屬性可以包含任何 CSS 屬性。以下實例顯示出如何改變段落的顏色和左外邊距。

<p style="color: red; margin-left: 20px"> 
This is a paragraph 
</p>

基本形式

那我們看到CSS選擇器的基本形式是這樣的

selector(選擇器){
    property1:value;(屬性聲明)
    property2:value;
}

由一個選擇器表達式和括號內的屬性字典組成

兼容模式

目前的主流瀏覽器有很多種,那么我們為了兼容不同的瀏覽器,就要知道瀏覽器的私有屬性

  • Chrome,Safari
    -webkit
  • Firebox
    -moz
  • IE
    -ms
  • Opera
    -o
例子
  .pic{
    -webkit-transform:rotate(-3deg);
    -otransform:rotate(-3deg);
    -moz-transform:rotate(-3deg);
    -ms-transform:rotate(-3deg);
    transform:rotate(-3deg);
  }

語法

  • 屬性值語法
    margin:[<length>|<percentage>|auto]{1,4}
    上面這個表達式由基本元素、組合符號、數量符號三部分組成。下面我們將逐步對這三個部分進行詳解。

  • 基本元素組成
    1.關鍵字 auto solid bold
    2.基本類型 length percentage color
    3.其他類型 'padding-width' color-stop

  • 組合符號
    1.空格
    <‘font-size’> <font-family>
    必須按順序輸入相對屬性值
    E.g
    -12px arial
    2.&& 與空格相似 不過可以無序
    3.|| 分割的基本屬性至少出現一個
    4.| 分割的屬性只能出現一個
    5.[] 屬性分組

  • 數量符號
    1.默認只能出現一次
    2.+ 1次或多次
    3.? 表示屬性可選
    4.{int,int} 第一個數字表示最少出現次數 第二個數字表示最多出現次數
    5.* 可以出現 0次1次或者多次
    6.# 出現一次或者多次 中間要用逗號隔開
    E.g
    1
    padding-top:<length>|<percentage>

        true padding-top:1px
        false padding-top:1em 5%
        2
        border-width:[<length>|thick|medium|thin]{1,4}
    
        true border-width:2px;
        false border-width:2px small;
        3
        box-shadow:[inset?&&[<length>{2,4}&& <color>?]]#|none
    
        true box-shadow:3px 3px rgb(50%,50%,50%),red 0 0 4px inset;
        false box-shadow:inset 2px 4px,2px blue;
    
  • @規則語法
    @標識符 xxx:
    @標識符 xxx{}
    常用@規則
    @media 響應式布局
    @keyframes 用來描述css動畫中間步驟
    @font-face 引入外部字體
    不常用
    @import
    @charset
    @namespace
    @page
    @supports
    @document

選擇器

選擇器主要分

  • 簡單選擇器
  • 偽元素選擇器
  • 組合選擇器
簡單選擇器
  1. 標簽選擇器
    基本形式
    tag{color:bule;}
  2. 類選擇器
    基本形式
    .className{}
    選擇器特點
  • 由字母,數字,-,_組成
  • 必須以字母開頭
  • 區分大小寫
  • 可以出現多次
    e.g
    <p chass = "special">
    <p class = “special stress”>
    如果想讓special類為紅色
    .special{color:red;}
    屬性可以疊加
    .stress{font-weight:bold;}
    這樣第二個p標簽同時會擁有兩個屬性
  1. id選擇器
    基本形式
    #idName{}
    選擇器特點
  • 由字母,數字,-,_組成
  • 必須以#開頭
  • 區分大小寫
  • 只能出現一次
  1. 通配符選擇器
    基本形式
    *{}
    作用:會選擇頁面內所有元素
  2. 屬性選擇器
    基本形式
    []{}
e.g

不可用狀態樣式
[disabled]{background:#eee}
類型是button的樣式

    [type=button]{color:blue;}

類包含XXX
[class~=xxxx]{color:blue;}
鏈接中以#開頭
[href^=“#”]{color:red;};
鏈接中以某形式結尾比如.pdf
[herf$=pdf]{color:red;};
鏈接中包含某些值
[href*=“xxxx.xxx.com”]

  1. 偽類選擇器
    基本形式
    tag:statement{}
e.g

所有鏈接字體顏色 只能選擇herf有值的
a:link{}
表示訪問過的
a:visited{}
懸停
a:hover{}
點擊上去
a:active{}

input標簽的三種狀態
    input:enabled/disabled/checked{}
列表行li標簽

第一行或最后一行
li:first-child/last-child{}
偶數行
li:nth-child(even){}
表達式
li:nth-child(3n+1){}
倒數
li:nth-last-child(3n+1){}
標簽下只有一個子元素的
tag:only-child{}

選擇某標簽類型的

表示選擇第一個dd類型的
dd:first-of-type{}

簡單選擇器還可以進行組合

e.g

如果我們想選擇img標簽 jpg結尾的元素

img[src$=jpg]{}

id是banner hover狀態的元素
#banner:hover{}

偽元素選擇器

選擇頁面所有元素第一個字母

::first-letter{}  

第一行

::first-line{} 

在內容包含XX之前

::before{content:”XX”;};

之后

::after{content:”XX”};

內容被用戶選中樣式

::selection{} 
組合選擇器
  1. 后代選擇器
e.g

class="main" 所有是h2標簽的元素
.main h2 {}

  1. 子選擇器
    class="main" 第一個標簽h2的元素
    .main>h2 {}
  2. 相鄰兄弟選擇器
    選中h2后相鄰的p元素
    h2+p{}
  3. 通用兄弟選擇器
    h2后所有的p節點
    h2~p{}
  4. 選擇器分組
    h1,h2,h3{}

如有不足,請各位大大進行批評指正。謝謝

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載請聲明 原文鏈接地址 關注公眾號獲取更多資訊 第一部分 HTML 第一章 職業規劃和前景 職業方向規劃定位...
    前端進階之旅閱讀 16,627評論 32 459
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,813評論 1 92
  • 1.CSS 元素選擇器 最常見的 CSS 選擇器是元素選擇器。換句話說,文檔的元素就是最基本的選擇器。如果設置 H...
    饑人谷_小侯閱讀 885評論 0 1
  • 學習CSS的最佳網站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,100評論 0 1
  • 其實平時用得多的選擇器無非也就是那么幾個,時間久了,許多不常用的選擇器就慢慢忘記了。為了不讓自己忘記這些選擇器,今...
    盛夏晚清風閱讀 1,875評論 0 5