CSS筆記_jp(完整)

CSS(cascading style sheet,層疊樣式表)

       

一  CSS簡介

            CSS(cascading style sheet,層疊樣式表)是描述文檔怎麼樣被呈現的語言,使用CSS可以對HTML文檔進行描述。

            語法: ①CSS屬性和值之間用冒號分隔
                         ②CSS屬性之間用分號分隔(建議每個屬性後都書寫分號)
                         ③CSS的值有多個的時候使用空格分隔
            

 二  CSS在網頁中的使用

            1  內嵌式

                每個HTML元素都包含有一個style屬性,使用該屬性可以直接指定樣式。如<p style=""></p>

                存在問題:①.不方便修改   ②結構與顯示不能很好的分離    ③建議在測試或個別情況下使用


            2  嵌入式

                CSS樣式定義內容位於style元素之間,其type屬性必須被定義爲text/css
                <head>
                    <style type="text/css">   css樣式   </style>

                </head>


            3  外部引用時

                可以在多個文檔間共享樣式表,提高效率;可以改變樣式表而無須改變HTML文檔。
                <head>
                    <link rel="stylesheet" href="url" type="text/css">
                    或者
                    <style type="text/css">
                        @import "style.css";
                        @import url("style.css");
                    </style>
                </head>
                推薦使用第一種方式


三   CSS基本語法規則

   1  選擇器

            用於選擇html中的元素

       html標籤選擇器

                即html標籤,任何一個HTML元素的標籤名都可以是css的選擇器。如p{    text-indent:10px}  /*段落第一行縮進10像素*/      ;h1{ color:red}
                優先級: ①默認情況下,子級通常先繼承父級標籤屬性
                                 ②如果子級和父級擁有相同的屬性,子級優先,就近原則

                                 ③類選擇器的優先級高於標籤選擇器

        類選擇器

                 class屬性
                  .類名(類名不能使用數字開頭,不能使用關鍵字來命名)   如:.rr{ color :red}

                  使用class屬性來調用類名稱
                          <p class="rr">one</p>
                          <p class="rr">two</p>
                          <p class="rr">three</p>

        ID選擇器

                 id屬性( #id名)
                  #two{background-color:green}
                 <p class="rr">one</p>
                 <p id="two" class="rr">two</p>
                 <p class="rr">three</p>

        關聯選擇器

                 它們的優先級比單一的選擇器大。
                 後代選擇器  選擇a元素裏面所有後代元素中的b元素。如: a b{...}
                 子代選擇器  選擇a元素裏面第一代子元素中的b元素。如:  a>b{...}

        組合選擇器

                 使用逗號,隔開選擇器,可以減少樣式表的重複聲明。如: h1,h2,h3,h4{color:red}

         僞元素選擇器

                 是指對同一個HTML元素的不同狀態的一種定義方式
                 HTML標籤:僞元素{}
                a:link{}    超鏈接沒有任何動作前的狀態
                a:hover{}    光標移動到超鏈接上的狀態
                a:active{}    點擊超鏈接時的狀態
                a:visited{} 訪問過超鏈接的狀態
                text-decoration:none  去掉下劃線

2  選擇器優先級

            多個CSS選擇器同時作用於同一個html時,聲明不同的屬性具有繼承的關係,如果聲明的是相同的屬性,則以優先級高的爲主。

            內嵌式   > 關聯選擇器(後代,子代,組合(且))      > ID選擇器      > 類選擇器     > HTML選擇器

            同級別的後者覆蓋前者就近原則

3  樣式

            樣式是零個或多個以分號分割的【屬性名:屬性值】列表

4  規則集

            選擇器 樣式

            選擇器{屬性名:屬性值;屬性名:屬性值}

5  註釋

            /*    註釋內容  */


四   CSS常見的樣式屬性和值

 1  CSS 尺寸屬性

            (注意塊級元素和行內元素的區別)
             height    設置元素高度。    
             width    設置元素的寬度。

2   字體屬性
         font-family字體族科
                宋體 SimSun    
                黑體 SimHei
                微軟雅黑 Microsoft YaHei
                微軟正黑體 Microsoft JhengHei
                新宋體 NSimSun
                新細明體 PMingLiU
                細明體 MingLiU
                標楷體 DFKai-SB
                仿宋 FangSong
                仿宋_GB2312 FangSong_GB2312
                楷體_GB2312 KaiTi_GB2312
            font-size    字體大小
            font-style    字體風格(normal    正常;italic  斜體;oblique  傾斜)
            font-weight字體加粗( normal  正常;bold  粗體;bolder 更粗;lighter  更細)
            text-decoration 規定添加到文本的修飾 :
                  none         默認。定義標準的文本。
                  underline     定義文本下的一條線。
                  overline     定義文本上的一條線。
                  line-through定義穿過文本下的一條線。
                  blink         定義閃爍的文本。

3   顏色
            color    設定文本的顏色

            opacity    設置透明度( 所有瀏覽器都支持 opacity 屬性)

            注:IE8 以及更早的版本支持替代的 filter 屬性。例如:filter:Alpha(opacity=50)。   一般兩個屬性一起寫,保證兼容性。 filter:Alpha(opacity=50);   opacity:0.5;


4   背景

            background-color:#CCC;設置元素的背景顏色。

            background-image : 設置元素的背景圖像。屬性值url("1.png");

            background-repeat : 設置是否及如何重複背景圖像。
                repeat     默認。背景圖像將在垂直方向和水平方向重複。
                repeat-x     背景圖像將在水平方向重複。
                repeat-y     背景圖像將在垂直方向重複。
                no-repeat     背景圖像將僅顯示一次。
                inherit     規定應該從父元素繼承 background-repeat 屬性的設置。    

            background-attachment:設置背景圖像是否固定或者隨着頁面的其餘部分滾動。(屬性值:①fixed    固定    ②scroll    滾動)


            background-position:設置背景圖像的開始位置。這個屬性設置背景原圖像(由 background-image 定義)的位置,背景圖像如果要重複,將從這一點開始。您需要把 background-attachment屬性設置爲 "fixed",才能保證該屬性在 Firefox 和 Opera 中正常工作。
                  橫向關鍵字: left center right
                  縱向關鍵字: top center bottom
                百分比:左上角是 0% 0%。右下角是 100% 100%。


            background : 簡寫屬性在一個聲明中設置所有的背景屬性。如:background:#ff0000 url('smiley.gif') no-repeat;

5   邊框屬性
            border-style  設置4個邊框的樣式
                dotted     定義點狀邊框。在大多數瀏覽器中呈現爲實線。
                solid     定義實線。
                double     定義雙線。
                dashed  定義虛線。
                none     定義無邊框
                ...
                如果4個值都給定了,分別應用於上,右,下,左。如:border-style: solid dashed dashed solid;
                如果給定1個值,應用於各邊;  如:border-style: solid;
                如果給定2個值,第一個值應用於上下邊,第二個值應用於左右邊。如: border-style: solid dashed;

            border-width  設置4個邊框的寬度
            border-color  設置邊框顏色
            border  在一個聲明設置所有的邊框屬性。如:order:1px solid #ff0000

6  鼠標光標屬性
            cursor    屬性規定要顯示的光標的類型(形狀)。
                none    無
                auto     默認。瀏覽器設置的光標。
                pointer 光標呈現爲指示鏈接的指針(一隻手)
                wait     此光標指示程序正忙(通常是一隻表或沙漏)。

                help     此光標指示可用的幫助(通常是一個問號或一個氣球)。


 7   列表屬性

            list-style-image     將圖象設置爲列表項標記。 如:list-style-image:url("/i/arrow.gif");
            list-style-position 設置列表項標記的放置位置。
                inside     列表項目標記放置在文本以內,且環繞文本根據標記對齊。
                outside 默認值。保持標記位於文本的左側。列表項目標記放置在文本以外,且環繞文本不根據標記對齊。
                在Firefox中的查看器中選中ul即可看出區別

            list-style-type     設置列表項標記的類型。
                none     無標記。
                disc     默認。標記是實心圓。
                circle     標記是空心圓。
                square     標記是實心方塊。
                decimal 標記是數字。
                ower-roman    小寫羅馬數字(i, ii, iii, iv, v, 等。)
                upper-roman    大寫羅馬數字(I, II, III, IV, V, 等。)
                lower-alpha    小寫英文字母The marker is lower-alpha (a, b, c, d, e, 等。)
                upper-alpha    大寫英文字母The marker is upper-alpha (A, B, C, D, E, 等。)
                lower-latin    小寫拉丁字母(a, b, c, d, e, 等。)
                upper-latin    大寫拉丁字母(A, B, C, D, E, 等。)

             list-style         在一個聲明中設置所有的列表屬性。如:list-style: square inside url('/i/eg_arrow.gif')

 8   表格
            優先級:  td,th-->tr-->tbody,thead,tfoot-->table (從裏向外的規則)
            color,font-size
            text-align    文字對齊
            background
            border   邊框,只能用於table,th,td
            margin   間距,只能用於table,caption
            padding  內間距,只能用於th,td
            width    寬,只能用於table,td,th
            height     高,只能用於table,td,th、可以用於tr並且優先級高於td
            caption-side 標題位置:top/left/right/botton


 五  盒子模型

        網頁就是由許多個盒子通過不同的排列方式堆積而成,網頁上每個元素都被瀏覽器看成是一個矩形的盒子,這個盒子由元素的內容,填充,邊框,邊界組成。默認盒子邊框無,背景色透明,默認看不到盒子

   1   盒子模型

            margin  外邊距,定義區塊外邊界與上級元素距離的屬性,值爲長度
            padding 內邊距(填充),是設置區塊的內邊距的屬性,是邊框和元素內容之間的間隔距離
            border  邊框(注意邊框是有內外倆條邊界的)
            width   盒子的寬度
            height  盒子的高度
            內容    盒子裏面所包含的元素和內容

            屬性值:
                1個:上下左右都是該值
                2個:前者表示上下的值,後者表示左右的值
                3個:前者表示上邊的值,中間表示左右的值,後者表示下邊的值

                4個:上右下左,順時針排序

2   不同瀏覽器解析盒子模型的差異

            IE5盒子  width = 內容 + border + padding
                盒子佔據的寬度 = margin*2+width
                盒子佔據的高度 = margin*2+height
                盒子實際的寬度 = width
                盒子實際的高度 = height

            W3C盒子 width = 內容
                盒子佔據的寬度 = margin*2+border*2+padding*2+width
                盒子佔據的高度 = margin*2+border*2+padding*2+height
                盒子實際的寬度 = border*2+padding*2+width
                盒子實際的高度 = border*2+padding*2+height

3   設置瀏覽器去遵循w3c標準

            只需要在網頁的頂部加上DOCTYPE聲明即可
            另外注意 !important 的使用
            p{
                color:red !important;
                color:blue;
            }
            當不加!important;的時候,後者覆蓋前者,當加上之後說明第一個,樣式優先級更高,採用前者,但是Ie6不支持!important;

4  其他屬性

            border-width    邊框高度
            border-color    邊框顏色
            border-style    邊框樣式
                none    無樣式
                dotted    點線
                dashed    虛線
                solid    實線
                double    雙線
                groove    槽線
                ridge    脊線
                inset    內凹
                outset    外凸

5  關於填充和邊框的常見問題

        1. 大部分的html元素的盒子屬性(margin,padding)默認值爲0,有少數html元素的(marigin,padding不爲0)例如:body,p,ul,li,form等標籤,有時需要將其先設置爲0
        2. 相鄰兩個兄弟元素的外邊框會發生合併,一般瀏覽器會自動設定他們的外邊距(注意我們可以margin設置爲負值)
        3. 如果沒有設置父級元素的內邊距或邊框,那麼它的子元素的邊界會和其合併。(注意邊框是有內外倆條邊界的)
        4. 設置一個塊元素居中: marigin:0 auto;   (  第一個表示top和bottom,第二個表示left和right)
        5. margin可以設置負值,padding不可以設置
        6. 行內元素的margin值,只有左右值,沒有上下值

6  行內元素與塊級元素

     行內元素
            行內元素不可以設置寬(width)和高(height【但是可以通過line-height設置】),但可以與其他行內元素位於同一行,行內元素內一般不可以包含塊級元素。行內元素的高度一般由元素內部的字體大小決定,寬度由內容的長度控制。常見的行內元素有:em,font,b,span,a,strong

     塊級元素
            塊級元素排斥其他元素與其位於同一行,可以設定元素的寬(width)和高(height),塊級元素一般是其他元素的容器,可容納塊級元素和行內元素。常見的塊級元素有div, p ,h1~h6等

                IE6/7及IE8混雜模式中(當IE瀏覽器識別不了DTD就會顯示成混雜模式),text- align:center可以使塊級元素也居中對齊。其他瀏覽器中,text-align:center僅作用於行內內容上。

            改變元素類型:
                display
                    可以將一個行級元素轉換爲塊級元素,但是這種轉換並不能改變元素本質,轉換的只是CSS的盒子的外觀
                    需要轉換盒子類型的情況:
                    水平的列表菜單,不斷行的標題,隱藏元素
                    none     隱藏元素。不會被顯示,不佔空間
                    block    塊級元素。獨佔一行空間
                    inline  默認。此元素會被顯示爲內聯元素,元素前後沒有換行符。
                    inline-block    兼有塊級和行級元素特性,在行內顯示但是可以設定寬高

                    list-item         此元素會作爲列表顯示。

                    table     此元素會作爲塊級表格來顯示(類似 <table>),表格前後帶有換行符。
                    inline-table     此元素會作爲內聯表格來顯示(類似 <table>),表格前後沒有換行符。
                    table-row-group     此元素會作爲一個或多個行的分組來顯示(類似 <tbody>)。
                    table-header-group     此元素會作爲一個或多個行的分組來顯示(類似 <thead>)。
                    table-footer-group     此元素會作爲一個或多個行的分組來顯示(類似 <tfoot>)。
                    table-row         此元素會作爲一個表格行顯示(類似 <tr>)。
                    table-column     此元素會作爲一個單元格列顯示(類似 <col>)
                    table-cell         此元素會作爲一個表格單元格顯示(類似 <td> 和 <th>)
                    table-caption     此元素會作爲一個表格標題顯示(類似 <caption>)
                    inherit         規定應該從父元素繼承 display 屬性的值。
                float,position
                    應用了浮動和絕對定位的元素,變成了塊級元素,因此display屬性一般被忽略
                如果元素應用了display:none,該元素(以及子元素)被隱藏起來,對其再使用float,position將不再有意義


六   浮動 float

        任何元素都可以浮動,可以改變普通文檔流的排列方式,可以使得塊元素在同一行中排列,使我們的佈局更加方便,浮動是脫離文檔流的,也就是其他元素看不見這個浮動的元素。瀏覽器將窗體自上而下分成一行一行,並在每行中按從左至右的挨次排放元素,即爲文檔流。

        浮動何時停止?
            1. 當遇到一個浮動元素後
            2. 當遇到父級元素後
        多個盒子都浮動後,就產生了塊級元素水平排列的效果。 多個浮動元素不會相互覆蓋。 若包含的容器太窄,無法容納水平排列的多個浮動元素,那麼最後的浮動盒子會向下移動,但如果浮動元素的高度不同,那麼它們向下移動時可能會被卡住。

        float:
             left     元素向左浮動。
             right     元素向右浮動。
             none     默認值。元素不浮動,並會顯示在其在文本中出現的位置。


七  定位 position

        定位屬性:
            相對定位 relative: 參照元素原來的位置進行移動,元素原來的空間位不變,元素在移動時會覆蓋其他元素。
            固定定位 fixed: 將元素固定在窗口中的某個位置,絕對定位是相對於元素的,固定定位是相對於窗口的,會隨着窗口的一定而移動。在低版本IE中不支持該屬性
            絕對定位 absolute:元素完全脫離文檔流,頁面中的其他元素視它不存在,絕對定位元素不會影響到其他元素。絕對定位是參照距離他最近的父級有定位屬性的元素,如果父級元素沒有定位屬性,則會參照文檔
            默認定位 static:默認屬性,指定了元素按照常規的文檔流進行定位,靜態定位元素不允許使用top,left和類似其他屬性定位。position的值爲static爲非定位元素,爲其他值時候爲定位元素,因爲static元素不能自定義元素的位置,而其他可以

        top:  層距離頁面頂點縱座標的距離
        left: 層距離頁面定點橫座標的距離
        text-align:    橫向排列 left right center
        line-height:行高,內容都在行的中間,可以使用這個屬性設置內容垂直居中
        z-index :  第三個維度 ,值高的元素會覆蓋值低的元素。該屬性可以使得元素脫離文檔流,可能會覆蓋其他元素。   
發佈了30 篇原創文章 · 獲贊 6 · 訪問量 4815
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章