1. 程式人生 > >我與前端之間不得說的三天兩夜之css基礎

我與前端之間不得說的三天兩夜之css基礎

auto 為知筆記 外部 border got spa ttr ria 開頭


前端基礎之CSS

CSS 語法

CSS 規則由兩個主要的部分構成:選擇器,以及一條或多條聲明。
‘‘‘
        selector {
                  property: value;
                  property: value;
             ...  property: value
         
          }
         
‘‘‘

css的四種引入方式

1.行內式

行內式是在標記的style屬性中設定CSS樣式。這種方式沒有體現出CSS的優勢,不推薦使用。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<p>p1</p>
<p>p1</p>
<p>p3</p>
<!--css內嵌式-->
<p style="color: red">p3</p>
</body>
</html>

技術分享

2.嵌入式

嵌入式是將CSS樣式集中寫在網頁的<head></head>標簽對的<style></style>標簽對中。格式如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
   <style>
        p {
            color: red;
            background-color: wheat;
        }
    </style>
</head>
<body>
<p>p1</p>
<p>p1</p>
<p>p3</p>

</body>
</html>
技術分享

3 鏈接式

將一個.css文件引入到HTML文件中
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    #方式三 鏈接式 推薦
    <link rel="stylesheet" href="index.css">
</head>
<body>

<p>p1</p>
<p>p1</p>
<p>p3</p>


</body>
</html>
技術分享

4.導入式

將一個獨立的.css文件引入HTML文件中,導入式使用CSS規則引入外部CSS文件,<style>標記也是寫在<head>標記中,使用的語法如下:
#不常用
<style type="text/css">
 
          @import"mystyle.css"; 此處要註意.css文件的路徑
 
</style> 

註意:

導入式會在整個網頁裝載完後再裝載CSS文件,因此這就導致了一個問題,如果網頁比較大則會兒出現先顯示無樣式的頁面,閃爍一下之後,再出現網頁的樣式。這是導入式固有的一個缺陷。使用鏈接式時與導入式不同的是它會以網頁文件主體裝載前裝載CSS文件,因此顯示出來的網頁從一開始就是帶樣式的效果的,它不會象導入式那樣先顯示無樣式的網頁,然後再顯示有樣式的網頁,這是鏈接式的優點。

css選擇器

基本選擇器

技術分享

組合選擇器

E,F   多元素選擇器,同時匹配所有E元素或F元素,E和F之間用逗號分隔      :div,p { color:#f00; }
 
E F   後代元素選擇器,匹配所有屬於E元素後代的F元素,E和F之間用空格分隔 :li a { font-weight:bold;}
 
E > F   子元素選擇器,匹配所有E元素的子元素F            :div > p { color:#f00; }
  
E + F   毗鄰元素選擇器,匹配所有緊隨E元素之後的同級元素F  :div + p { color:#f00; } 
 
E ~ F   普通兄弟選擇器(以破折號分隔)                 :.div1 ~ p{font-size: 30px; }

註意,關於標簽嵌套:

一般,塊級元素可以包含內聯元素或某些塊級元素,但內聯元素不能包含塊級元素,它只能包含其它內聯元素。需要註意的是,p標簽不能包含塊級標簽。

屬性選擇器

E[att]          匹配所有具有att屬性的E元素,不考慮它的值。(註意:E在此處可以省略。
                比如“[cheacked]”。以下同。)   p[title] { color:#f00; }
 
 
E[att=val]      匹配所有att屬性等於“val”的E元素   div[class=”error”] { color:#f00; }
 
 
E[att~=val]     匹配所有att屬性具有多個空格分隔的值、其中一個值等於“val”的E元素
                td[class~=”name”] { color:#f00; }
 
E[attr^=val]    匹配屬性值以指定值開頭的每個元素                    
                div[class^="test"]{background:#ffff00;}
 
E[attr$=val]    匹配屬性值以指定值結尾的每個元素    div[class$="test"]{background:#ffff00;}
 
E[attr*=val]    匹配屬性值中包含指定值的每個元素    div[class*="test"]{background:#ffff00;}
示例:一、基本選擇器 1、標簽選擇器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
         /* 一 基本選擇器*/
       /*1 標簽選擇器*/
        div{
            color: red;            #根據標簽來進行定位
        }
    </style>
</head>
<body>
<p class="c3">P2</p>
<div class="c2">
    <div>
        <p>P3</p>
    </div>
    <p class="c3">P1</p>
</div>
<span>span</span>
<p class="c3">P2</p>
<div>DIV</div>
</body>
</html>
輸出結果:可以看到只要是div標簽的的字符串都變成了紅色技術分享 2、id選擇器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>



    <style>

         /* 一 基本選擇器*/

       /*1 標簽選擇器*/
        /*div{*/
            /*color: red;*/
        /*}*/
        /*2 id選擇器*/
        #p2{
            color: red;      #根據id來進行定位
        }





    </style>
</head>
<body>

<p class="c1">p1</p>
<p id="p2">p2</p>        #會把p2的字符串變紅
<p class="c1">p3</p>

<div>DIV</div>
</body>
</html>
運行結果:技術分享 3、class選擇器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>



    <style>

         /* 一 基本選擇器*/

       /*1 標簽選擇器*/
        /*div{*/
            /*color: red;*/
        /*}*/
        /*2 id選擇器*/
        /*#p2{*/
            /*color: red;*/
        /*}*/
       /*3 class選擇器*/

        .c1{                    #根據class組進行定位選擇
            color: red;
        }
    </style>
</head>
<body>

<p class="c1">p1</p>           #選擇class為c1的組
<p id="p2">p2</p>
<p class="c1">p3</p>            #選擇class為c1的組
<div>DIV</div>
</body>
</html>
技術分享 4、* 選擇
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {                      #*指代所有
            color: red;
        }
    </style>
</head>
<body>
<p class="c1">p1</p>
<p id="p2">p2</p>
<p class="c1">p3</p>
<div>DIV</div>
</body>
</html>
技術分享 二、組合選擇器 1、後代選擇器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*二 組合選擇器*/
        /*1 後代選擇器*/
        .c2 p{
            color: red;          #後代選擇器表示只要在這個標簽的下的p標簽都會進行定位選擇
        }
    </style>
</head>
<body>
<p class="c3">P2</p>
<div class="c2">               #c2
    <div>
        <p>P3</p>              #p標簽
    </div>
    <p class="c3">P1</p>       #p標簽
</div>
<span>span</span>
<p class="c3">P2</p>
<div>DIV</div>
</body>
</html>
輸出結果:技術分享 2、子代選擇器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
         /*2 子代選擇器*/
         #子代選擇器值得是在一個組下就只在這個組下找p標簽不會再這個組下的其他標簽找p標簽
        .c2>p{
            color: red;
        }
    </style>
</head>
<body>
<p class="c3">P2</p>
<div class="c2">
    <div>
        <p>P3</p>
    </div>
    <p class="c3">P1</p>
</div>
<span>span</span>
<p class="c3">P2</p>
<div>DIV</div>
</body>
</html>
輸出結果:技術分享




來自為知筆記(Wiz)

我與前端之間不得說的三天兩夜之css基礎