前端CSS(1)

前端基礎CSS(1)

 

1、css的引入方式css

如今的互聯網前端分三層:html

  HTML:超文本標記語言。從語義的角度描述頁面結構。前端

  CSS:層疊樣式表。從審美的角度負責頁面樣式。css3

  JS:JavaScript 。從交互的角度描述頁面行爲web

CSS:Cascading Style Sheet,層疊樣式表。CSS的做用就是給HTML頁面標籤添加各類樣式,定義網頁的顯示效果。簡單一句話:CSS將網頁內容和顯示樣式進行分離,提升了顯示功能。css的最新版本是css3。canvas

一、css優勢:瀏覽器

       (1) 使數據和顯示分開;ruby

  (2) 下降網絡流量;網絡

  (3) 使整個網站視覺效果一致;app

  (4) 使開發效率提升了(耦合性下降,一我的負責寫html,一我的負責寫css);

  好比說,有一個樣式須要在一百個頁面上顯示,若是是html來實現,那要寫一百遍,如今有了css,只要寫一遍。如今,html只提供數據和一些控件,徹底交給css提供各類各樣的樣式。

二、css引入方式:

       (1) 行內樣式,以下示例:

 <p style="color: green">我是一個段落</p>

  (2) 內接樣式,以下示例:

 

<style type="text/css">
        /*寫咱們的css代碼*/
        span{
               color: yellow;
        }
</style>

   (3) 外接樣式(連接式和導入式)

    <link rel="stylesheet" href="./index.css">         <!-- 連接式 -->
    <style type="text/css">                      <!-- 導入式 -->
        @import url('./index.css');
    </style>

 注意:link,visited,active這三個只有a標籤有,hover其餘元素也能夠用。

2、css選擇器

一、基本選擇器

       a、標籤選擇器

              標籤選擇器能夠選中全部的標籤元素,好比div,ul,li,p等等,無論標籤藏的多深,都能選中,選中的是全部的,而不是某一個,因此說 "共性" 而不是 」特性「。

              用法:標籤名:{ color:red;}

       b、id選擇器

              同一個頁面中id不能重複,任何的標籤均可以設置id,id命名規範,大小寫嚴格區分,aa和AA是兩個不同的屬性值。

              用法:#id名{ color:red;}

       c、類選擇器

              所謂類:就是class,class與id很是類似,任何的標籤均可以加類,可是類是能夠重複的,屬於歸類的概念,同一個標籤中能夠攜帶多個類,用空格隔開。

              用法:.類名{ color:red;}

總結:

       (1)不要去試圖用一個類將咱們的頁面寫完。這個標籤要攜帶多個類,共同設置樣式;

       (2)每一個類要儘量的小,有公共的概念,可以讓更多的標籤使用;

       (3)儘可能用class,除非特殊狀況能夠用id,id通常是用在js中的,即js是經過id來獲取到元素的;

 

二、高級選擇器

       a、後代選擇器

              使用空格表示後代選擇器,顧名思義,父元素的後代(包括兒子,孫子,重孫子)。

              用法:.container p{ color: red; }

 

       b、子代選擇器

              使用>表示子代選擇器, 好比div>p,僅僅表示的是當前div元素選中的子 (不包含孫子....)元素p。

 

       c、並集選擇器

              多個選擇器之間使用逗號隔開,表示選中頁面中的多個標籤,一些共性的元素,可使用並集選擇器。

              用法:h3,.content{color:red;}

 

       d、交集選擇器

              同時用兩種選擇器選擇一個標籤元素,例如div.active,表示類名是active又是div標籤的元素。

h4{
    width: 100px;
    font-size: 14px;
}
.active{
    color: red;
    text-decoration: underline;
}
/* 交集選擇器 */
h4.active{
    background: #00BFFF;
}
交集選擇器

三、屬性選擇器

       屬性選擇器,字面意思就是根據標籤中的屬性,選中當前的標籤。

       用法:[for]{ color: red;} 或  input[type='text']{background: red;}

/*根據屬性查找*/
            /*[for]{
                color: red;
            }*/
            
            /*找到for屬性的等於username的元素 字體顏色設爲紅色*/
            /*[for='username']{
                color: yellow;
            }*/
            
            /*以....開頭  ^*/ 
            /*[for^='user']{
                color: #008000;
            }*/
            
            /*以....結尾   $*/
            /*[for$='vvip']{
                color: red;
            }*/
            
            /*包含某元素的標籤*/
            /*[for*="vip"]{
                color: #00BFFF;
            }*/
            
            /**/
            
            /*指定單詞的屬性*/
            label[for~='user1']{
                color: red;
            }
            
            input[type='text']{
                background: red;
            }
語法

 

四、僞類選擇器

       僞類選擇器通常會用在超連接a標籤中,使用a標籤的僞類選擇器,咱們必定要遵循"愛恨準則"  LoVe HAte。

       用法:

    a:link{color:#666;}    /*沒有被訪問的a標籤樣式*/
    a:visited{color:yellow;}    /*訪問事後的a標籤樣式*/
    a:hover{color:green;}    /*鼠標懸停時a標籤的樣式*/
    a:active{color:#yellowgreen;}    /*鼠標按下時a標籤的樣式*/

 給你們介紹一種css3的選擇器(ie8以及更早版本的瀏覽器不支持):

    /*選中第一個元素*/
        div ul li:first-child{
            font-size: 20px;
            color: red;
        }
        /*選中最後一個元素*/
        div ul li:last-child{
            font-size: 20px;
            color: yellow;
        }
        
        /*選中當前指定的元素  數值從1開始*/
        div ul li:nth-child(3){
            font-size: 30px;
            color: purple;
        }
        
        /*n表示選中全部,這裏面必須是n, 從0開始的  0的時候表示沒有選中*/
        div ul li:nth-child(n){
            font-size: 40px;
            color: red;
        }
        
        /*偶數*/
        div ul li:nth-child(2n){
            font-size: 50px;
            color: gold;
        }
        /*奇數*/
        div ul li:nth-child(2n-1){
            font-size: 50px;
            color: yellow;
        }
        /*隔幾換色  隔行換色
             隔4換色 就是5n+1,隔3換色就是4n+1
            */
        
        div ul li:nth-child(5n+1){
            font-size: 50px;
            color: red;
        }    

3、css的繼承性和層疊性

       css有兩大特性:繼承性和層疊性

一、繼承性

  面嚮對象語言都會存在繼承的概念,在面嚮對象語言中,繼承的特色:繼承了父類的屬性和方法。那麼咱們如今主要研究css,css就是在設置屬性的。不會牽扯到方法的層面。

  繼承:給父級設置一些屬性,子元素繼承了父級的該屬性,這就是咱們的css中的繼承。

  記住:有一些屬性是能夠繼承下來:color 、font-*、text-*、line-* ,主要是文本級的標籤元素。

  可是像一些盒子元素屬性,定位的元素(浮動,絕對定位,固定定位)不能繼承。

二、層疊性

       層疊性: 權重大的標籤覆蓋掉了權重小的標籤,說白了,就是被幹掉了。

  權重:誰的權重大,瀏覽器就會顯示誰的屬性。

  總結:

    a、先看標籤元素有沒有被選中,若是選中了,就數數(id,class,標籤的數量)誰的權重大,就顯示誰的屬性,權重同樣大,後來者居上;

    b、若是沒有被選中標籤元素,權重爲0;

    c、若是屬性都是被繼承下來的,權重都是0 。權重都是0:"就近原則"(誰描述的近,就顯示誰的屬性);

 

三、!important的使用

       !important:設置權重爲無限大(IE6不支持)。

  !important 不影響繼承來的權重,隻影響選中的元素。不要隨便使用!important,由於使用它會影響頁面的佈局。

  用法:選擇器{樣式:值!important;}

4、盒子模型

       在CSS中,"box model"這一術語是用來設計和佈局時使用,而後在網頁中基本上都會顯示一些方方正正的盒子。咱們稱爲這種盒子叫盒模型。

盒模型有兩種:標準模型和IE模型。咱們在這裏重點介紹標準模型。

 一、盒模型示意圖

 二、盒模型的屬性

  width:內容的寬度

  height: 內容的高度

  padding:內邊距,邊框到內容的距離

  border: 邊框,就是指的盒子的寬度

  margin:外邊距,盒子邊框到附近最近盒子的距離

三、盒模型的計算

       若是一個盒子設置了width,height,padding,border,margin(我們先不要設置margin,margin有坑,後面會介紹)。

  盒子的真實寬度 = width+2*padding+2*border

  盒子的真實寬度 = height+2*padding+2*border

  那麼在這裏要注意了。標準盒模型,width不等於盒子真實的寬度。

  另外若是要保持盒子真實的寬度,那麼加padding就必定要減width,減padding就必定要加width。真實高度同樣設置。

四、padding(內邊距)

       padding就是內邊距的意思,它是邊框到內容之間的距離。另外padding的區域是有背景顏色的,而且背景顏色和內容的顏色同樣,也就是說background-color這個屬性將填充全部的border之內的區域。

       padding有四個方向,分別描述4個方向的padding。

       (1)寫單獨屬性,分別設置不一樣方向的padding,以下:

              padding-top: 30px;

    padding-right: 30px;

    padding-bottom: 30px;

    padding-left: 30px;

 

       (2)寫綜合屬性,用空格隔開,以下:

              /*上  右 下  左*/

    padding: 20px 30px 40px 50px ;

    /*上  左右  下*/

    padding: 20px 30px 40px;

    /*上下  左右*/

    padding: 20px 30px;

          /*上下左右*/

    padding: 20px;

 

五、border(邊框)

  border:邊框的意思,描述盒子的邊框,邊框有三個要素:粗細、線性樣式、顏色。

  若是顏色不寫,默認是黑色。

  若是粗細不寫,不顯示邊框。

  若是隻寫線性樣式,默認的有上下左右 3px的寬度,實體樣式,而且黑色的邊框。如:

       border: solid;

  分別設置三要素,以下:

       border-width: 3px;

    border-style: solid; /*還有dotted、double、dashed*/

    border-color: red;

              注意:值能夠是1個,2個,3個,4個,對應關係跟上篇介紹的padding同樣;

       設置一個方向的三要素,以下:

              border-top-width: 10px;

    border-top-color: red;

    border-top-style: solid;

              上面這句話至關於下面這一句,以下:

              border-top: 10px solid red;

    注意:border: none; 或者 border:0; 都表示border沒有設置樣式。

應用:使用border來製做小三角:

/*小三角 箭頭指向上方*/
    div{
        width: 0;
        height: 0;
        border-bottom: 20px solid red;
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
    }

六、margin(外邊距)

       margin:外邊距的意思,表示邊框到最近盒子的距離。也有四個方向,而且能夠設置一、二、三、4個值。

       /*表示四個方向的外邊距離爲20px*/

    margin: 20px;

  /*表示盒子向下移動了30px*/

    margin-top: 30px;

  /*表示盒子向右移動了50px*/

    margin-left: 50px;

    margin-bottom: 100px;

 

5、清除默認樣式

       有一些標籤會默認自帶樣式,好比ul標籤默認有padding-left值,有些默認有margin值,ul、ol和a標籤也自帶一些樣式,可是咱們通常在作網頁的時候不想用那些自帶的樣式,因此須要清除頁面標籤中默認的樣式,以便咱們更好的去調整元素的位置。

       雖然通配符選擇器*能夠解決問題,可是這種方法效率不高,不推薦,咱們要使用並集選擇器來選中頁面中應有的標籤,以下代碼就是清除默認樣式的一種寫法,reset.css:

       參考網址:https://meyerweb.com/eric/tools/css/reset/

  才考代碼

  /*  http://meyerweb.com/eric/tools/css/reset/
     v2.0 | 20110126
     License: none (public domain)
  */
  html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, 
  dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, 
  legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, 
  menu, nav, output, ruby, section, summary, time, mark, audio, video {
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 100%;
      font: inherit;
      vertical-align: baseline;
  }

  /* HTML5 display-role reset for older browsers */

  article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
        display: block;
  }
  body {
        line-height: 1;
  }
  ol, ul {
        list-style: none;
  }
  blockquote, q {
        quotes: none;
  }
  blockquote:before, blockquote:after, q:before, q:after {
        content: '';
        content: none;
  }
  table {
        border-collapse: collapse;
        border-spacing: 0;
  }
相關文章
相關標籤/搜索