CSS的做用就是給HTML頁面標籤添加各類樣式,定義網頁的顯示效果。簡單一句話:CSS將網頁內容和顯示樣式進行分離,提升了顯示功能。css
CSS 優勢:html
使數據和顯示分開瀏覽器
下降網絡流量網絡
使整個網站視覺效果一致字體
使開發效率提升了(耦合性下降,一我的負責寫html,一我的負責寫css)網站
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- 引入方式二:內接引入--> <style> div{ color: deepskyblue; } </style> <!-- 引入方式三:外接樣式_連接式:link導入一個連接*****--> <link rel="stylesheet" href="index.css"> <!-- 引入方式四:外接樣式:style導入一個@import url("路徑")--> <style> @import url("index.css"); </style> </head> <body> <!--引入方式一:行內引入--> <div style="color: red;">字體顏色設置</div> </body> </html>
<!--css基本設置--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ color: rebeccapurple; width: 200px; height: 400px; background-color: deepskyblue; } </style> </head> <body> <div>最簡單的基本樣式</div> </body> </html>
標籤選擇器能夠選中全部的標籤元素,好比div,ul,li ,p
等等,無論標籤藏的多深,都能選中,選中的是全部的,而不是某一個url
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ color: red; } span{ color: blue; } a{ color: green; } </style> </head> <body> <div> 標籤選擇器:div1的顏色 /* red */ <span>標籤選擇器:div中的span的顏色</span> /* blue */ </div> <span>標籤選擇器:單獨span的顏色</span> /* blue */ <div> 標籤選擇器:div2的顏色 /* red */ <a href="http://www.baidu,com">標籤選擇器:連接的顏色</a> /* green */ </div> </body> </html>
/* 1.子元素會繼承父元素的的樣式,可是a標籤除外
2.要想對a標籤進行設置,必須直接找到a標籤的位置,對a單獨設置
3.樣式之間的重疊部分是有優先級的,繼承下來的優先級爲0(最低)*/
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #div1{ color: purple; } </style> </head> <body> <div id="div1"> id選擇器:有id的div1的顏色 /* purple */ <span>id選擇器:div中的span顏色</span> /* purple */ </div> <div> id選擇器:div2的顏色 </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .cl{ color: orangered; } </style> </head> <body> <div> 類選擇器:div1的顏色 <span class="cl">類選擇器:div1中的span顏色</span> /* orangered */ </div> <div> 類選擇器:div2的顏色 <span class="cl">類選擇器:div2中的span顏色</span> /* orangered */ </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ color: yellow; } </style> </head> <body> <div> 通用選擇器:div1顏色 /* yellow */ <span>通用選擇器:span顏色</span> /* yellow */ </div> <div> 通用選擇器:div2顏色 /* yellow */ </div> </body> </html>
後代選擇器:找的是子子孫孫,所有都找出來.spa
子代選擇器:只找後面一代rest
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /*後代*/ div span{ color: tomato; } /*子代*/ div>span{ color: tomato; } </style> </head> <body> <div> 我是div標籤的content <span>後代1:西紅柿色</span> /*後代變色*/ , /*子代只有這個變色*/ <p> 在div-p標籤中 <span>後代2:西紅柿色</span> /*後代變色*/ </p> </div> <span>我只是一個單純的span標籤</span> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /*毗鄰*/ span+a{ color: tomato; } /*弟弟*/ span~a{ color: tomato; } </style> </head> <body> <div> <a>我是a0標籤</a> <span>span標籤</span> /* 若是這裏還有一個非a標籤,毗鄰.下面不變色 */ <a>我是a1標籤</a> /*弟弟:變色*/ , /*毗鄰:變色*/ <a>我是a2標籤</a> /*弟弟:變色*/ </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> a[href]{ color: green; } a[href='http://www.taobao.com']{ color: lightpink; } input[type='text']{ background-color: lightblue; } </style> </head> <body> <div> <a href="http://www.taobao.com">我是a0標籤</a> /*屬性:href變色*/ /*屬性:href有網址的變色*/ <span>span標籤</span> <a href="http://www.jd.com">我是a1標籤</a> /*屬性:href變色*/ <a href="http://www.mi.com">我是a2標籤</a> /*屬性:href變色*/ <a>沒有href屬性</a> </div> <input type="text"> /*屬性:type='texe'變色*/ <input type="password"> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 並集選擇器 */ ul,ol,span{ background-color: gainsboro; } </style> </head> <body> <ul> <li>u-first</li> /* 並集變色 */ </ul> <ol> <li>o-first</li> /* 並集變色 */ </ol> </body> </html> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 交集選擇器 */ div.box1.box2{ background-color: red; width: 200px; height: 200px; } </style> </head> <body> <div class="box1 box2">box1box2</div> /* 交集:變色 */ <div class="box1">box1</div> <div>aaa</div> <span class="box1">span標籤</span> </body> </html>
a 專屬 : link visited activecode
input 專屬 : focus
通用 : hover
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 連接點擊以前的顏色 */ a:link{ color:tomato; } /* 連接點擊以後的顏色 */ a:visited{ color: gray; } /* 點擊時的顏色 */ a:active{ color: green; } /* 點擊對話框的顏色 */ input:focus { background-color: aquamarine; } div{ width: 100px; height: 100px; background-color: lightgray; } /* 鼠標懸浮變色 */ div:hover{ background-color: pink; } </style> </head> <body> <a href="http://www.jd.com">京東</a> <a href="http://www.xiaohuar.com">校花</a> <input type="text"> <div></div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 第一個字變色 */ p:first-letter{ color: green; } /* 所選內容前面添加的內容:變色 */ p:before{ content: '**'; color: pink; } /* 所選內容後面添加的內容:變色 */ p:after{ content: '.....'; color: lightblue; } </style> </head> <body> <p>春江水暖鴨先知</p> </body> </html>
行內>id選擇器>類選擇器>標籤選擇器>繼承
1000 100 10 1 0
全部的值能夠累加可是不進位
相同優先級的放在後面的生效
!important 提升樣式的優先級到最高
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 200px; height: 200px; background-color: lavender; } div#AA{ background-color: red; } div.aa{ background-color: green; } div.aa.bb{ background-color: yellow; } div#BB{ background-color: pink; } </style> </head> <body> <div>普通的div</div> /* lavender */ <div id="AA">有一個id的div</div> /* red */ <div class="aa">有一個類的div</div> /* green */ <div class="aa bb">有兩個個類的div</div> /* yellow */ <div class="aa" id="BB">有一個類而且有一個id的div</div> /* pink */ </body> </html>
rgb表示法:
rgb:red green blue 光譜三原色
rgb(255,255,255) 白色
rgb(0,0,0) 黑色
16進制的顏色表示法:
#000000 - #ffffff
#000 - #fff
單詞表示法:
red blue yellow
rgba表示法:
a表示透明度,0-1,0是徹底透明,1是不透明
顏色對照表
https://htmlcolorcodes.com/zh/yanse-ming/
屬性 | 描述 | 屬性值 | 說明 |
---|---|---|---|
font-size | 字體大小 | 50px | |
font-family | 字體系列 | "Microsoft Yahei","微軟雅黑", "Arial", sans-serif | 瀏覽器使用它可識別的第一個值 |
font-weight | 字體粗細 | none bold border lighter 100~900 inherit | 默認值,標準粗細 粗體 更粗 更細 值,400=normal,700=bold 繼承父元素字體的粗細值 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p{ font-family: '楷體','宋體'; font-weight: bolder; font-size: 50px; } </style> </head> <body> <p>字體設置</p> </body> </html>
屬性 | 描述 | 屬性值 | 說明 |
---|---|---|---|
text-indent | 首行縮進 | 單位建議em | |
text-align | 文本對齊方式 | none center left right justify | 默認 水平居中 左對齊 右對齊 兩端對齊 |
text-decoration | 規定文本修飾的樣式 | none underline overline line-through inherit | 默認 下劃線 定義文本上的一條線 定義穿過文本下的一條線 繼承父元素text-decoration屬性的值 |
line-height * | 行高 | line-height: 200px; | 設置行高=容器高度,文字自動垂直居中 |
text-shadow | 陰影 | 5px 5px 5px #FF0000 | 水平方向偏移量 / 垂直方向偏移量 / 模糊度 / 陰影顏色 |
text-overflow | 文字溢出 | clipellipsis | 修剪文本顯示省略號表明被修剪文本 |
<!-- 文字溢出 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text-overflow</title> <style type="text/css"> .div0 { width: 300px; border: 1px solid darkblue; } .div1 { width: 300px; border: 1px solid red; /*強制在一行內顯示*/ white-space: nowrap; /*超出部分隱藏*/ overflow: hidden; } .div2 { width: 300px; border: 1px solid black; /*強制在一行內顯示*/ white-space: nowrap; /*超出部分隱藏*/ overflow: hidden; /*修剪超出的文本*/ text-overflow: clip; } .div3 { width: 300px; border: 1px solid chocolate; /*強制在一行內顯示*/ white-space: nowrap; /*超出部分隱藏*/ overflow: hidden; /*顯示省略符號來表明被修剪的文本*/ text-overflow: ellipsis; } </style> </head> <body> <div class="div0">各國領導人感謝中方做爲東道主對各國參展給予的大力支持</div><br> <div class="div1">各國領導人感謝中方做爲東道主對各國參展給予的大力支持</div><br> <div class="div2">各國領導人感謝中方做爲東道主對各國參展給予的大力支持</div><br> <div class="div3">各國領導人感謝中方做爲東道主對各國參展給予的大力支持</div><br> </body> </html>
background-repeat | 設置背景圖像的平鋪方式 |
---|---|
repeat | 默認。背景圖像將在垂直方向和水平方向重複 |
repeat-x | 背景圖像將在水平方向重複 |
repeat-y | 背景圖像將在垂直方向重複 |
no-repeate | 背景圖像將僅顯示一次 |
background-position | 設置背景圖像的起始位置 |
---|---|
100px 100px | 圖片與左邊 / 上邊的邊距 |
top / center / bottom | 垂直位置 : 上 / 中 / 下 |
left / center / right | 水平位置 : 左 / 中 / 右 |
background-size | 圖片大小 |
background-attachment: fixed | 固定背景圖片的位置,頁面滾動圖片不會移動 |
background-image: url(xxx.jpg) | 背景圖片 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 1000px; height: 1000px; background-color: deepskyblue; background-image: url(xjs.jpg); background-repeat: no-repeat; background-repeat: repeat-x; background-repeat: repeat-y; background-position: 100px 100px; background-position: center top; background-attachment: fixed; background: red url("xjs.jpg") no-repeat left center; /* 綜合寫法 */ } </style> </head> <body> <div> <p>我是一個小殭屍</p> </div> </body> </html>
可分別設置四邊的顏色,粗細,樣式,遵循上右下左的順序
一個值:上下左右
兩個值:遵循上下 / 左右
三個值:上 / 右左 / 下
四個值:遵循順時針上右下左
border的設置 | 解釋 |
---|---|
border-color | 邊框顏色 |
border-width | 邊框粗細 |
border-style | 邊框樣式 |
border: color width style | 綜合寫法:設置邊框顏色,粗細,樣式 |
border-radius | 設置圓角 |
行內元素:
與其餘行內元素並排;
對於行內標籤來講不能設置寬和高,默認的寬度,就是文字的寬度
塊級元素:
獨佔一行,不能與其餘任何元素並列;
能設置寬、高。若是不設置寬度,那麼寬度將默認變爲父親的100%。
<!-- 有些時候須要行內標籤也設置寬和高,須要進行 行內 轉 塊,行內 轉 行內塊 -->
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 100px; height: 100px; border-color: blue; border-width: 5px; border-style: solid double dotted dashed; border-top-color: orangered; border-top-style: solid; border-top-width: 3px; } </style> </head> <body> <div></div> </body> </html>
display的屬性值 | 解釋 |
---|---|
display: block; | 獨佔一行而且能夠設置寬高 |
display: inline-block; | 既能夠設置寬高又不會獨佔一行 行內\塊 轉 行內快 |
display: inline; | 表示一個行內元素,不能設置寬高 |
display: none; | 不只不顯示內容,連位置也不佔了 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> a{ /*display: block;*/ display: inline-block; /*width: 100px;*/ height: 20px; background-color: purple; text-align: center; line-height: 20px; text-decoration: none; } div{ display: inline-block; width: 50px; height: 50px; border-color: orangered; border-style: solid; } div.div{ display: none; width: 50px; height: 50px; border-color: blue; border-style: solid; } </style> </head> <body> <div class="div"></div> <div></div> <a href="">a標籤1</a> <a href="">a標籤2</a> </body> </html>
背景包含的部分: padding + content
盒模型大小計算:width/height + padding*2 + border*2
代碼 | 解釋 |
---|---|
margin | 外邊距(盒子與盒子之間的距離) |
margin-left: auto | 表示靠左 |
margin-right: auto | 表示靠右 |
margin: 0 auto | 表示居中 (父/子盒子都要有寬度) |
padding | 內邊距(內容框與邊框的距離) |
<!-- 注意 : 上下的盒子若是設置bottom和top會致使塌陷,取兩個設置的最大值做爲外邊距 -->
<!-- 設置父盒子與子盒子的距離用padding -->
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div.box1{ width: 100px; height: 100px; background-color: red; border: solid purple 10px; padding: 20px; /*margin: 20px;*/ margin-bottom: 20px; } div.box2{ width: 100px; height: 100px; background-color: red; border: solid purple 10px; padding: 20px; } </style> </head> <body> <div class="box1">盒模型大小計算:寬+padding*2+border*2</div> <div class="box2">盒子2</div> </body> </html>
<!-- 盒子模型例子 -- 三角形 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 0; height: 0; border-color: red transparent transparent transparent; /* trandparent:透明 */ border-width: 50px; border-style: solid; } </style> </head> <body> <div></div> </body> </html>
float: | 表示浮動的意思 |
---|---|
float:none | 表示不浮動,默認 |
float:left | 表示左浮動 |
float:right | 表示右浮動 |
浮動的元素會脫離標準文檔流,本來塊級元素就再也不獨佔整行了,而且在原頁面中也不佔位置了,以後的元素會擠到頁面上影響頁面的排版
浮動的四大特性:
浮動的元素會脫離標準文檔流
浮動的元素互相貼靠
浮動的元素有"子圍"效果
收縮的效果::一個浮動元素。若是沒有設置width,那麼就自動收縮爲文字的寬度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div.main{ height: 100px; background-color: darkgray; } div.box{ width: 100px; height: 100px; border: solid red; background-color: yellow; float: right; } div.father{ background-color: forestgreen; /*overflow: hidden;*/ /*清除浮動二 BFC*/ } /* .clear{ */ /* 清除浮動一 */ /* clear: both; */ /* } */ /* 僞元素清除浮動 */ .clearfix:after{ content: ''; clear: both; display: block; } </style> </head> <body> <div class="father clearfix"> <div class="box"></div> <div class="box"></div> <!-- <div class="clear"></div>--> </div> <div class="main"> 主頁的內容 </div> </body> </html>
定位 | 功能 |
---|---|
position: relative | 相對定位 |
position: absolute | 絕對定位 |
position: fixed | 固定定位 |
相對定位:相對本身原來的位置移動,移動以後還佔據原來的位置
絕對定位 :絕對定位是相對於整個html頁面,不會佔據原來的位置,層級會提高.若是設置了絕對定位的子元素的父元素沒有設置position,那麼子元素的全部設置都是基於整個頁面.若是設置了position,子元素的絕對定位會根據父元素的位置定位.父相子絕:子元素設置的絕對位置會對應着祖級元素的相對位置
固定定位 :固定是相對於整個窗口的
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 100px; height: 100px; } .d{ width: 400px; height: 1000px; background-color: lavender; position: relative; left: 200px; } .d1{ background-color: red; } .d2{ background-color: yellow; position: absolute; left: 100px; } .d3{ background-color: green; } img{ position: fixed; right: 10px; bottom: 10px } </style> </head> <body> <div class="d"> <div class="d1"></div> <div class="d2"></div> <div class="d3"></div> </div> <img src="xjs.jpg" alt="xiaojiangshi"> </body> </html>
用法說明:
z-index 值表示誰壓着誰,數值大的壓蓋住數值小的,
只有定位了的元素,纔能有z-index,也就是說,無論相對定位,絕對定位,固定定位,均可以使用z-index,而浮動元素不能使用z-index
z-index值沒有單位,就是一個正整數,默認的z-index值爲0若是你們都沒有z-index值,或者z-index值同樣,那麼誰寫在HTML後面,誰在上面壓着別人,定位了元素,永遠壓住沒有定位的元素。
從父現象:父親慫了,兒子再牛逼也沒用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .d1{ width: 100px; height: 100px; background-color: red; position: absolute; z-index: 10; } .d2{ width: 50px; height: 50px; background-color: blue; position: absolute; z-index: 5; } </style> </head> <body> <div class="d1"></div> <div class="d2"></div> </body> </html>
調整整個標籤的透明度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ opacity: 0.5; } </style> </head> <body> <div> 我只是一個小殭屍 <img src="xjs.jpg" alt="小殭屍"> </div> </body> </html>
overflow | 解釋 |
---|---|
overflow: visible | 可見(默認) |
overflow: hidden | 超出部分隱藏 |
overflow: scroll | 超出顯示滾動條 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 100px; height: 100px; background-color: chartreuse; overflow: hidden; } </style> </head> <body> <div> <p>23期的學生都餓了想吃飯 很是想</p> <p>23期的學生都餓了想吃飯 很是想</p> <p>23期的學生都餓了想吃飯 很是想</p> <p>23期的學生都餓了想吃飯 很是想</p> </div> </body> </html>
<!-- 補充: -->
分方向的設置
位置 | 上 | 右 | 下 | 左 |
---|---|---|---|---|
邊框 | border-top | border-right | border-bottom | border-left |
內邊距 | padding-top | padding-right | padding-bottom | padding-left |
盒子 | margin-top | margin-right | margin-bottom | margin-left |
在css中去掉列表的樣式 ul,li{ list-style: none; }