CSS樣式表


CSS介紹

CSS(Cascading Style Sheet,層疊樣式表)定義如何顯示HTML元素。

當瀏覽器讀到一個樣式表,它就會按照這個樣式表來對文檔進行格式化(渲染)。

CSS語法

CSS實例

每個CSS樣式由兩個部分組成:選擇器和聲明。聲明又包括屬性和屬性值。每個聲明之后用分號結束。
div {
    color: read;
    font-size:14px;
} 
#解釋
div 是一個選擇器
color:red;  是一個聲明,其中color是屬性,red是值.
#css的注釋方法
/**/
View Code

CSS的引入方式

1、行內樣式
<p style="color:red">Hello,word.</p>
2、內部樣式
嵌入式是將CSS樣式集中寫在網頁的頭部標簽<head></head>中的<style></style>標簽對中的。
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            color:"red";
        }
    </style>
</head>
3、外部樣式
外部樣式是寫在一個單獨的CSS結尾的文件中的、然后使用link標簽進入即可。在項目中推薦這種方式引入CSS。
<link href="mystyle.css" rel="stylesheet" type="text/css"/>

CSS選擇器

1、元素選擇器
p {color:"red";}     #針對所有的p標簽生效
2、ID選擇器
#li {backgroud-color:red;} #針對所有的標簽的ID有效
3、類選擇器
.c1 {
    font-size: 14px;
}    #所有c1的類生效
 
p.c1 {
    color:red;
}    #所有p標簽下的c1類生效
注意:
1、樣式類不要用數字開頭(有的瀏覽器不認)
2、標簽中的class屬性如果有多個、請用空格分隔開。
4、通用選擇器
* {
    color:white;
}    #針對所有生效

組合選擇器

1、后代選擇器
li a { color:green;}  /*li標簽內部的a標簽設置字體顏色*/
2、兒子選擇器
div>p { font-fize: 20px;} /*選擇所有父級是div元素的p元素*/
3、毗鄰選擇器
dev+p { margin:5px; } /*選擇所有接着的div元素之后的p元素*/
4、弟弟選擇器
#i1~p {border: 2px solid royalbue; } /*il后面所有的兄弟標簽*/

屬性選擇器

p[title] {color:red;} /*用於選取帶有指定屬性的元素*/
p[title="213"] {color:green;} /*用於選取帶有指定屬性和值得元素*/

分組和嵌套

1、分組
多個元素的樣式相同的時候、我們沒有必要重復的為每個元素都設置樣式,我們可以通過在多個選擇器之間使用逗號的分組選擇器來統一設置元素樣式。
div,p {color:red;}
上面的代碼為div標簽和p標簽統一設置為紅色。
2、嵌套
多種選擇器可以混合起來使用、比如:.c1類內部所有p標簽設置為紅色字體。
.c1 p { color:red; }

偽類選擇器

 1 /* 未訪問的鏈接 */
 2 a:link {
 3   color: #FF0000
 4 }
 5  
 6 /* 已訪問的鏈接 */
 7 a:visited {
 8   color: #00FF00
 9 } 
10  
11 /* 鼠標移動到鏈接上 */
12 a:hover {
13   color: #FF00FF
14 } 
15  
16 /* 選定的鏈接 */ 
17 a:active {
18   color: #0000FF
19 }
20  
21 /*input輸入框獲取焦點時樣式*/
22 input:focus {
23   outline: none;
偽類選擇器

偽類元素選擇器

1、first-letter

/*常用的給首字母設置特殊樣式*/
p:first-letter {
  font-size: 48px;
  color: red;
}

2、before

/*在每個<p>元素之前插入內容*/
p:before {
  content:"*";
  color:red;
}

3、after

/*在每個<p>元素之后插入內容*/
p:after {
  content:"[?]";
  color:blue;
} 
before和after多用於清除浮動。

選擇器的優先級

1、CSS繼承

繼承是CSS的一個主要特征、他是依賴於祖先-后代的關系的。繼承是一種機制、他允許樣式不僅可以應用於某個特定的元素、還可以應用於他的后代、例如:一個body定義了的字體顏色值也會應用到段落的文本中。

 

body { color:red;}
此時頁面上所有標簽都會繼承body的字體顏色。然而CSS繼承性的權重是非常低的,是比普通元素的權重還要低的0。
我們只要給對應的標簽設置字體顏色就可覆蓋掉它繼承的樣式。
p { color:green;}
此外,繼承是CSS重要的一部分,我們甚至不用去考慮它為什么能夠這樣,但CSS繼承也是有限制的。有一些屬性不能被繼承,如:border, margin, padding, background等。

2、選擇器的優先級

我們上面學了很多的選擇器,也就是說在一個HTML頁面中有很多種方式找到一個元素並且為其設置樣式,那瀏覽器根據什么來決定應該應用哪個樣式呢?
CSS樣式的優先級為:
內聯樣式 > id選擇器 > 類選擇器 >元素選擇器
注意:

除此之外還可以通過添加 !import方式來強制讓樣式生效,但並不推薦使用。因為如果過多的使用!import會使樣式文件混亂不易維護。

萬不得已可以使用!import

CSS的屬性

字體屬性

1、文本字體

font-family可以把多個字體名稱作為一個“回退”系統來保存。如果瀏覽器不支持第一個字體,則會嘗試下一個。瀏覽器會使用它可識別的第一個值。

 

body {
  font-family: "Microsoft Yahei", "微軟雅黑", "Arial", sans-serif #如果系統不支持第一個字體就使用第二個字體、然后依次類推.
}

 

2、字體大小

 

p {
  font-size: 14px;
}
#如果設置成inherit表示繼承父元素的字體大小值。

 

3、字重

font-weight用來設置字體的字重(粗細)。

描述

normal

默認值,標准粗細

bold

粗體

bolder

更粗

lighter

更細

100~900

設置具體粗細,400等同於normal,而700等同於bold

inherit

繼承父元素字體的粗細值

4、文本顏色

顏色屬性被用來設置文字的顏色。

顏色是通過CSS最經常的指定:

  • 十六進制值 - 如:#FF0000

  • 一個RGB值 -如:RGB(225,0,0)

  • 顏色的名稱 - 如:red

還有rgba(255,0,0,0.3),第四個值為alpha, 指定了色彩的透明度/不透明度,它的范圍為0.0到1.0之間。

文字屬性

1、對齊方式

text-align 屬性規定元素中的文本的水平對齊方式。

描述

left

左邊對齊 默認值

right

右對齊

center

居中對齊

justify

兩端對齊

2、文字裝飾

text-decoration 屬性用來給文字添加特殊效果。

描述

none

默認。定義標准的文本。

underline

定義文本下的一條線。

overline

定義文本上的一條線。

line-through

定義穿過文本下的一條線。

inherit

繼承父元素的text-decoration屬性的值。

常用的為去掉a標簽默認的自划線:

a {
    text-decoration: none;
}

3、首行縮進

將段落的第一行縮進 32像素:
p {
  text-indent: 32px;
}

背景屬性

 1 /*背景顏色*/
 2  
 3 /*背景圖片*/
 4 background-image: url('1.jpg');
 5 /*
 6  背景重復
 7  repeat(默認):背景圖片平鋪排滿整個網頁
 8  repeat-x:背景圖片只在水平方向上平鋪
 9  repeat-y:背景圖片只在垂直方向上平鋪
10  no-repeat:背景圖片不平鋪
11 */
12 background-repeat: no-repeat; 
13 /*背景位置*/
14 background-position: right top(20px 20px);
15  
16 簡寫為:background:#ffffff url('1.png') no-repeat right top;
背景設置

使用背景圖片的一個常見案例就是很多網站會把很多小圖標放在一張圖片上,然后根據位置去顯示圖片。減少頻繁的圖片請求。

例如:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>滾動背景圖示例</title>
 8     <style>
 9         * {
10             margin: 0;
11         }
12         .box {
13             width: 100%;
14             height: 500px;
15             background: url("https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike150%2C5%2C5%2C150%2C50/sign=78996ead8882b90129a0cb6112e4c212/f3d3572c11dfa9ec3d76139d60d0f703908fc1e4.jpg") no-repeat center center;
16             background-attachment: fixed;
17         }
18         .d1 {
19             height: 500px;
20             
21         }
22         .d2 {
23             height: 500px;
24             
25         }
26         .d3 {
27             height: 500px;
28             
29         }
30     </style>
31 </head>
32 <body>
33     <div class="d1"></div>
34     <div class="box"></div>
35     <div class="d2"></div>
36     <div class="d3"></div>
37 </body>
38 </html>
固定背景圖片

邊框屬性

邊框屬性:
  • border-width

  • border-style

  • border-color

#i1 {
  border-width: 2px;
  border-style: solid;
  border-color: red;
}
簡寫的方式:
#i1 { border: 2px solid red;}
邊框樣式:

描述

none

無邊框。

dotted

點狀虛線邊框。

dashed

矩形虛線邊框。

solid

實線邊框。

 除了可以統一設置邊框外還可以單獨為某一個邊框設置樣式,如下所示:
1 #i1 {
2   border-top-style:dotted;
3   border-top-color: red;
4   border-right-style:solid;
5   border-bottom-style:dotted;
6   border-left-style:none;
7 }
邊框樣式
#border-radius

用這個屬性能實現圓角邊框的效果。

將border-radius設置為長或高的一半即可得到一個圓形。

display屬性

用於控制HTML元素的顯示效果。

意義

display:"none"

HTML文檔中元素存在,但是在瀏覽器中不顯示。一般用於配合JavaScript代碼使用。

display:"block"

默認占滿整個頁面寬度,如果設置了指定寬度,則會用margin填充剩下的部分。

display:"inline"

按行內元素顯示,此時再設置元素的width、height、margin-top、margin-bottom和float屬性都不會有什么影響。

display:"inline-block"

使元素同時具有行內元素和塊級元素的特點。

 display:"none"與visibility:hidden的區別:

1、visibility:hidden: 可以隱藏某個元素,但隱藏的元素仍需占用與未隱藏之前一樣的空間。也就是說,該元素雖然被隱藏了,但仍然會影響布局。

2、display:none: 可以隱藏某個元素,且隱藏的元素不會占用任何空間。也就是說,該元素不但被隱藏了,而且該元素原本占用的空間也會從頁面布局中消失。

CSS盒子模型

margin:用於控制元素與元素之間的距離、margin最基本的用途就是控制元素周圍空間的間隔、從視覺角度上來達到互相隔開的目的。

padding:用於控制內容與邊框之間的距離

border(邊框):圍繞在內邊距和內容外的邊框

content(內容):盒子的內容、顯示文本和圖像

示例圖:
 
         
 
 
         

1、margin外邊框

 1 .margin-test {
 2   margin-top:5px;
 3   margin-right:10px;
 4   margin-bottom:15px;
 5   margin-left:20px;
 6 }
 7 #推薦使用簡寫
 8 .margin-test {
 9   margin: 5px 10px 15px 20px;
10 }
11 順序:上右下左
12 常見居中:
13 .mycenter {
14   margin: 0 auto;
15 }
邊框設置

2、padding內填充

 1 .padding-test {
 2   padding-top: 5px;
 3   padding-right: 10px;
 4   padding-bottom: 15px;
 5   padding-left: 20px;
 6 }
 7 #簡寫
 8 .padding-test {
 9   padding: 5px 10px 15px 20px;
10 }
11 #順序:上右下左
12 補充padding的常用簡寫方式:
13 一個值,用於四邊;
14 二個值,第一個值用於上下,第二個值用於左右
15 三個值,第一個用於上,第二個用於左右,第三個用於下
16 四個之,用於上右下左
內填充

float浮動

在 CSS 中,任何元素都可以浮動。

浮動元素會生成一個塊級框,而不論它本身是何種元素。

浮動的兩個特點:

  • 浮動的框可以向左或者向右移動、知道它的外邊緣碰到包含框或者另一個浮動框的邊框為止。

  • 由於浮動框不在文檔的普通流中、所以文檔的普通流中的塊框表現就想浮動框不存在一樣。

1、三種取值

left:向左浮動

right:向右浮動

none:默認值,不浮動

clear清除浮動

clear屬性規定元素的哪一側不允許其他浮動元素。

 
         

描述

left

在左側不允許浮動元素。

right

在右側不允許浮動元素。

both

在左右兩側均不允許浮動元素。

none

默認值。允許浮動元素出現在兩側。

inherit

規定應該從父元素繼承 clear 屬性的值。

注意:clear屬性只會對自身起作用,而不會影響其他元素。

父標簽塌陷的問題:

 

1 .clearfix:after {
2   content: "";
3   display: block;
4   clear: both;
5 }
父標簽塌陷問題

Overflow溢出屬性

描述

visible

默認值。內容不會被修剪,會呈現在元素框之外。

hidden

內容會被修剪,並且其余內容是不可見的。

scroll

內容會被修剪,但是瀏覽器會顯示滾動條以便查看其余的內容。

auto

如果內容被修剪,則瀏覽器會顯示滾動條以便查看其余的內容。

inherit

規定應該從父元素繼承 overflow 屬性的值。

溢出方向:

  • overflow(水平和垂直均設置)

  • overflow-x (設置水平方向)

  • overflow-y (設置垂直方向)

Position定位

1、static

static 默認值,無定位,不能當作絕對定位的參照物,並且設置標簽對象的left、top等值是不起作用的的。

2、relative(相對定位)

相對定位是相對於該元素在文檔流中的原始位置,即以自己原始位置為參照物。有趣的是,即使設定了元素的相對定位以及偏移值,元素還占有着原來的位置,即占據文檔流空間。對象遵循正常文檔流,但將依據top,right,bottom,left等屬性在正常文檔流中偏移位置。而其層疊通過z-index屬性定義。

注意:position:relative的一個主要用法:方便絕對定位元素找到參照物。

3、absolute(絕對定位)

定義:設置為絕對定位的元素框從文檔流完全刪除,並相對於最近的已定位祖先元素定位,如果元素沒有已定位的祖先元素,那么它的位置相對於最初的包含塊(即body元素)。元素原先在正常文檔流中所占的空間會關閉,就好像該元素原來不存在一樣。元素定位后生成一個塊級框,而不論原來它在正常流中生成何種類型的框。

重點:如果父級設置了position屬性,例如position:relative;,那么子元素就會以父級的左上角為原始點進行定位。這樣能很好的解決自適應網站的標簽偏離問題,即父級為自適應的,那我子元素就設置position:absolute;父元素設置position:relative;,然后Top、Right、Bottom、Left用百分比寬度表示。

另外,對象脫離正常文檔流,使用top,right,bottom,left等屬性進行絕對定位。而其層疊通過z-index屬性定義。

4、fixed(固定)

fixed:對象脫離正常文檔流,使用top,right,bottom,left等屬性以窗口為參考點進行定位,當出現滾動條時,對象不會隨着滾動。而其層疊通過z-index屬性 定義。 注意點: 一個元素若設置了 position:absolute | fixed; 則該元素就不能設置float。這 是一個常識性的知識點,因為這是兩個不同的流,一個是浮動流,另一個是“定位流”。但是 relative 卻可以。因為它原本所占的空間仍然占據文檔流。

在理論上,被設置為fixed的元素會被定位於瀏覽器窗口的一個指定坐標,不論窗口是否滾動,它都會固定在這個位置。

#返回頂部按鈕實例

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <meta http-equiv="x-ua-compatible" content="IE=edge">
 6   <meta name="viewport" content="width=device-width, initial-scale=1">
 7   <title>返回頂部示例</title>
 8   <style>
 9     * {
10       margin: 0;
11     }
12  
13     .d1 {
14       height: 1000px;
15       
16     }
17  
18  
19  
20     .scrollTop {
21       
22       padding: 10px;
23       text-align: center;
24       position: fixed;
25       right: 10px;
26       bottom: 20px;
27     }
28   </style>
29 </head>
30 <body>
31 <div class="d1">111</div>
32 <div class="scrollTop">返回頂部</div>
33 </body>
34 </html>
頂部按鈕


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM