概述
在網(wǎng)易云課堂學(xué)習(xí)李南江老師的《從零玩轉(zhuǎn)HTML5前端+跨平臺(tái)開發(fā)》時(shí),所整理的筆記。
筆記內(nèi)容為根據(jù)個(gè)人需求所整理,并不完善,僅供參考。
于2018.05.16 23時(shí)學(xué)習(xí)完全部課程。
1. WebStorm設(shè)置&快捷鍵
1.1 WebStorm設(shè)置
-
代碼區(qū)背景色改成黑色
File —— Setting —— Editor —— Colors&Fonts —— Scheme,選擇“Darcula”
-
改字體大小
File —— Setting —— Editor —— Colors&Fonts —— Fonts
-
文檔內(nèi)容自動(dòng)換行
File —— Setting —— Editor —— General —— Soft Wraps,勾選“Use soft wraps in editor”
1.2 WebStorm快捷鍵
- 新建HTML文件:Ctrl + Alt + Insert
- 快速將光標(biāo)移至行首/行末:Home/End
- 光標(biāo)在多行中閃爍(可同時(shí)輸入相同的內(nèi)容):按住Alt不放, 然后再按住左鍵不放, 拖動(dòng)鼠標(biāo)即可
- 快速?gòu)?fù)制光標(biāo)所在行所有內(nèi)容:Ctrl + D
- 快速刪除表表所在行所有內(nèi)容:Ctrl + X
- 自動(dòng)在一段內(nèi)容的前后加上標(biāo)簽:Ctrl + Alt + T,回車,然后輸入對(duì)應(yīng)的標(biāo)簽即可
- 快速注釋:Ctrl + /,要取消注釋則再按一下Ctrl + /
1.3 快捷編輯
- 快速生成無(wú)序列表:ul>li*數(shù)字,即可快速生成一個(gè)有“數(shù)字”項(xiàng)的無(wú)序列表,“數(shù)字為1時(shí)可省略。
2. 字符集
<html>
<head>
<meta charset=“UTF-8” />
</head>
<body>
......
</body>
</html>
常用字符集:
- GBK
- UTF-8
注意:
- 在HTML文件中指定的字符集必須和保存這個(gè)文件的字符集一致,否則還是會(huì)出現(xiàn)亂碼。
- 所以僅僅指定字符集不一定能解決亂碼問題,還需要保存文件的時(shí)候,文件的保存格式必須和指定的字符集一致才能保證沒有亂碼。
3. DTD文檔聲明
在HTML文件第一行告訴瀏覽器,當(dāng)前網(wǎng)頁(yè)用的是哪個(gè)版本的HTML規(guī)范來(lái)編寫的。
HTML5:
<!DOCTYPE html>
該聲明是向下兼容的,即兼容HTML和XHTML。
4. 標(biāo)簽
4.1 img標(biāo)簽
作用
- 插入圖片
代碼
<img src="圖片路徑">
屬性
- width:寬度
- height:高度
- 如果只指定了width/height,系統(tǒng)會(huì)自動(dòng)根據(jù)寬高比調(diào)整height/width
- title:鼠標(biāo)懸停時(shí)顯示的內(nèi)容
- alt:圖片掛掉后顯示的內(nèi)容
4.2 br標(biāo)簽
作用
- 換行
代碼
<br>
注意:
盡量別用,用p標(biāo)簽代替。
4.3 a標(biāo)簽
作用
- 超鏈接
代碼
<a href=“目標(biāo)地址”>要顯示的內(nèi)容(可以是文字也可以是圖片)</ a>
屬性
- target
- _self:在當(dāng)前頁(yè)打開鏈接,是默認(rèn)屬性
- _blank:在新標(biāo)簽頁(yè)打開鏈接
- title
- 鼠標(biāo)懸停時(shí)顯示的內(nèi)容
4.4 base標(biāo)簽
作用
- 統(tǒng)一當(dāng)前網(wǎng)頁(yè)所有超鏈接的打開方式(當(dāng)前頁(yè)跳轉(zhuǎn)/新窗口打開)
代碼
<head>
<base target=“_blank/_self”>
</head>
注意
如果base標(biāo)簽和a標(biāo)簽都指定了網(wǎng)頁(yè)打開方式,則以a標(biāo)簽指定的方式打開。
4.5 假鏈接
也就是空鏈接,沒有具體指向
代碼
-
#:點(diǎn)擊后會(huì)自動(dòng)返回網(wǎng)頁(yè)頂部,具有“回到頂部”的作用 -
javascript::不會(huì)自動(dòng)返回網(wǎng)頁(yè)頂部
4.6 錨點(diǎn)
操作
- 給目標(biāo)位置標(biāo)簽添加id屬性
- 給a標(biāo)簽的href屬性添加對(duì)應(yīng)的
#id
注意
- 利用a標(biāo)簽做錨點(diǎn)是沒有過(guò)度動(dòng)畫的。
- 利用a標(biāo)簽做錨點(diǎn)不僅可以跳轉(zhuǎn)到當(dāng)前頁(yè)面的指定位置,還可以跳轉(zhuǎn)到其他頁(yè)面的指定位置。方法:href屬性為
指定頁(yè)面#id。
4.7 列表
無(wú)序列表(用得最多)
格式
<ul>
<li>列表?xiàng)l目?jī)?nèi)容</li>
</ul>
應(yīng)用場(chǎng)景
- 新聞列表
- 商品列表
- 導(dǎo)航條
注意
ul標(biāo)簽里面只放li標(biāo)簽,但是li標(biāo)簽里面還可以放其他標(biāo)簽
有序列表(用得最少,不建議用)
格式
<ol>
<li>列表?xiàng)l目?jī)?nèi)容</li>
</ol>
應(yīng)用場(chǎng)景
- 新聞列表
- 商品列表
- 導(dǎo)航條
注意
ol標(biāo)簽里面只放li標(biāo)簽,但是li標(biāo)簽里面還可以放其他標(biāo)簽
定義列表
格式
<dl>
<dt>標(biāo)題</dt>
<dd>標(biāo)題對(duì)應(yīng)的描述</dd>
</dl>
應(yīng)用場(chǎng)景
- 網(wǎng)站底部相關(guān)信息
- 圖文混排
注意
- dl標(biāo)簽中只放dt和dd
- 建議一個(gè)dt只對(duì)應(yīng)一個(gè)dd,當(dāng)需要豐富界面時(shí),可以在dt和dd標(biāo)簽中添加其他標(biāo)簽。
4.8 表格標(biāo)簽table
格式
<table>
<tr>
<td></td>
</tr>
</table>
- table標(biāo)簽代表表格整體
- tr標(biāo)簽代表表格的行
- td標(biāo)簽表示表格中的單元格
屬性
- 邊框(border):默認(rèn)為0
- 寬度(width)和高度(height):可以給table標(biāo)簽和td標(biāo)簽使用
- 給table標(biāo)簽用意味著設(shè)定了整個(gè)表格的寬高
- 如果table標(biāo)簽設(shè)置了寬高,td標(biāo)簽再設(shè)置寬高時(shí),不影響整個(gè)表格設(shè)置的寬高
- 水平對(duì)齊(align)和垂直對(duì)齊(valign):水平對(duì)齊都可以使用、垂直對(duì)齊只能給tr標(biāo)簽和td標(biāo)簽使用
- 外邊距(cellspacing)和內(nèi)邊距(cellpadding):只能給table標(biāo)簽使用
- 外邊距默認(rèn)為2像素
- 內(nèi)邊距默認(rèn)為1像素
細(xì)線表格
- 給table標(biāo)簽設(shè)置bgcolor
- 給tr標(biāo)簽設(shè)置bgcolor
- 給table標(biāo)簽設(shè)置cellspacing="1px"
表格標(biāo)簽的其他標(biāo)簽
表格標(biāo)題標(biāo)簽:caption
- caption一定要寫在table標(biāo)簽中,并緊跟在table標(biāo)簽后面,否則無(wú)效
標(biāo)題單元格標(biāo)簽:th
- 定義當(dāng)前單元格為表格標(biāo)題欄,標(biāo)簽中的內(nèi)容會(huì)自動(dòng)居中&加粗
單元格合并
給td標(biāo)簽添加單元格合并屬性
- 水平方向單元格合并:colspan
- 垂直方向單元格合并:rowspan
4.9 表單標(biāo)簽form
表單就是專門用來(lái)收集用戶信息的
格式
<form>
<表單元素>
</form>
常見表單元素:
input標(biāo)簽
輸入標(biāo)簽,重點(diǎn)是type屬性。
type屬性值說(shuō)明:
- text:明文輸入框,配合value可以設(shè)置默認(rèn)值
- password:暗文輸入框,配合value可以設(shè)置默認(rèn)值
- radio:?jiǎn)芜x框
注意:- 要實(shí)現(xiàn)單選效果,必須給同類別的單選框都添加一個(gè)相同值得name屬性
- 要實(shí)現(xiàn)默認(rèn)選中某個(gè)單選框,需要添加checked屬性,并賦值“checked”
- checked屬性可以不賦值實(shí)現(xiàn)相同的效果,但企業(yè)開發(fā)中一般推薦賦值
- checkbox:復(fù)選框
- button:普通按鈕,配合value可以設(shè)置按鈕上的文字。
- image:圖片按鈕,配合src加載圖片,實(shí)現(xiàn)圖片按鈕功能。
- reset:重置按鈕,用于情況表單中已經(jīng)填寫好的數(shù)據(jù)。默認(rèn)按鈕上顯示“重置”,可以配合value更改默認(rèn)文字。
- submit:提交按鈕,將表單中填寫好的數(shù)據(jù)到遠(yuǎn)程服務(wù)器。要實(shí)現(xiàn)以上功能要具備兩個(gè)條件:
- 給form標(biāo)簽添加action屬性,通過(guò)這個(gè)屬性指定遠(yuǎn)程服務(wù)器的地址。
- 給需要提交到服務(wù)器的表單元素添加一個(gè)name屬性
- hidden:隱藏域,配合提交按鈕將一些數(shù)據(jù)默默的提交到服務(wù)器。需要學(xué)習(xí)Ajax
label標(biāo)簽
把文字和輸入框關(guān)聯(lián)起來(lái)
格式
- 給文字添加label標(biāo)簽
- 給input添加id屬性
- 在label標(biāo)簽中用for屬性將其與input中的id綁定
注意
也可以直接給文字&輸入框添加label標(biāo)簽,但是不推薦。
datalist標(biāo)簽
格式
<datalist>
<option>待選項(xiàng)內(nèi)容</option>
</datalist>
綁定
- 給datalist標(biāo)簽設(shè)置id
- 給input標(biāo)簽添加list屬性并賦上需綁定的datalist標(biāo)簽的id值
注意
不推薦使用,因?yàn)槎鄶?shù)瀏覽器不支持。
除了按鈕類型的input標(biāo)簽以外,其他類型的標(biāo)簽都可以通過(guò)value屬性來(lái)指定將來(lái)提交到服務(wù)器的值
非input標(biāo)簽
select標(biāo)簽
下拉列表
格式
格式一
<select>
<option>列表數(shù)據(jù)</option>
</select>
格式二
<select>
<optgroup label=“分組名稱”>
<option>列表數(shù)據(jù)</option>
</optgroup>
</select>
注意
- 不能輸入內(nèi)容
- 可以用selected屬性設(shè)置默認(rèn)選項(xiàng)
- 可以給option標(biāo)簽外包裹一個(gè)optgroup標(biāo)簽,并在label屬性中設(shè)置值來(lái)給下拉列表中的數(shù)據(jù)分類
textarea標(biāo)簽
定義一個(gè)多行的輸入框
格式
<textarea></textarea>
注意
- 默認(rèn)情況下可以無(wú)限換行
- 默認(rèn)情況下有自己的寬度和高度,可以通過(guò)cols和rows屬性來(lái)調(diào)整列數(shù)和行數(shù),但是依然可以無(wú)限往下輸內(nèi)容
- 默認(rèn)情況下輸入框是可以手動(dòng)拉伸調(diào)整的
4.10 video標(biāo)簽
格式一
<video src=“資源路徑”></video>
格式二
<video>
<source src=“webm格式文件路徑” type=“video/webm”></source>
<source src=“mp4格式文件路徑” type=“video/mp4”></source>
<source src=“ogg格式文件路徑” type=“video/ogg”></source>
</video>
屬性
- autoplay:自動(dòng)播放屬性
- controls:控制條屬性
- poster:視頻封面
- loop:循環(huán)播放,一般用于廣告視頻
- preload:預(yù)加載視頻,preload屬性和autoplay屬性向沖
- muted:靜音
- width:寬度
- height:高度
注意
- video只支持三種格式:webm、mp4、ogg
- 各瀏覽器支持的視頻格式不同,因此建議用格式二來(lái)解決瀏覽器不支持的問題。采用格式二,瀏覽器會(huì)依次嘗試,直到播放可以支持的格式。
- 一些不支持html5標(biāo)簽的(老版本)瀏覽器,可以通過(guò)一個(gè)叫html5media的JS框架來(lái)實(shí)現(xiàn)支持video標(biāo)簽
4.11 audio標(biāo)簽
格式一
<audio src=“資源路徑”></audio>
格式二
<audio>
<source src=“wav格式文件路徑” type=“audio/wav”></source>
<source src=“mp3格式文件路徑” type=“audio/mp3”></source>
<source src=“ogg格式文件路徑” type=“audio/ogg”></source>
</audio>
屬性
- autoplay:自動(dòng)播放屬性
- controls:控制條屬性
- loop:循環(huán)播放,一般用于廣告視頻
- preload:預(yù)加載視頻,preload屬性和autoplay屬性向沖
- muted:靜音
4.12 詳情和概要標(biāo)簽
格式
<details>
<summary>概要信息</summary>
詳情信息
</details>
4.13 marquee標(biāo)簽(滾動(dòng)條&公告欄)
格式
<marquee>滾動(dòng)內(nèi)容</marquee>
屬性
- direction:滾動(dòng)方向,默認(rèn)從右到左。left、right、up、down
- scrollamount:移動(dòng)速度
- loop:滾動(dòng)次數(shù)
- behavior:
- slide:滾動(dòng)到邊界就停止
- alternate:滾動(dòng)到邊界就彈回
注意
marquee標(biāo)簽不是W3C推薦的,但是各大瀏覽器對(duì)其支持特別好
4.14 更多標(biāo)簽
- strong標(biāo)簽:定義重要性強(qiáng)調(diào)的文字,相當(dāng)于以前的b標(biāo)簽,加粗效果
- ins標(biāo)簽:定義插入的文字,相當(dāng)于以前的u標(biāo)簽,下劃線效果
- em標(biāo)簽:定義強(qiáng)調(diào)的文字,相當(dāng)于以前的i標(biāo)簽,傾斜效果
- del標(biāo)簽:定義被刪除的文字,相當(dāng)于以前的s標(biāo)簽,刪除線效果
4.15 字符實(shí)體
-  :空格
- <:小于號(hào) <
- >:大于號(hào) >
- ©:版權(quán)符號(hào)?
4.16 div和span標(biāo)簽
div作用:一般用于配合CSS完成網(wǎng)站基本布局
span作用:一般用于配合CSS修改網(wǎng)頁(yè)中的一些局部信息
div和span的區(qū)別
- div會(huì)單獨(dú)占領(lǐng)一行,而span不會(huì)單獨(dú)占領(lǐng)一行
- div是一個(gè)容器級(jí)的標(biāo)簽,而span是一個(gè)文本級(jí)的標(biāo)簽
容器級(jí)的標(biāo)簽和文本級(jí)的標(biāo)簽的區(qū)別
- 容器級(jí)的標(biāo)簽中可以嵌套其他所有的標(biāo)簽
- 文本級(jí)的標(biāo)簽中只能嵌套文字/超鏈接/圖片
5. CSS
格式
<style type="text/css">
標(biāo)簽名稱{
屬性名稱:屬性對(duì)應(yīng)的值;
......
}
</style>
5.1 文字屬性
樣式屬性
- font-style
- 正常:normal,默認(rèn)值
- 傾斜:italce
粗細(xì)屬性
- font-weight
- 單詞取值:
- 加粗:bold
- 比加粗更粗:bolder
- 細(xì)線:lighter,默認(rèn)值
- 數(shù)值取值:100~900之間整百的數(shù)值
- 單詞取值:
大小屬性
-
font-size
注意點(diǎn):后面一定要帶單位px。
字體屬性
-
font-family
注意點(diǎn):取值是中文時(shí),需要用""或''將字體名稱括起來(lái)。
知識(shí)點(diǎn):
-
可以給字體設(shè)置備選方案
格式:
font-family:"字體1","備選字體1",...; -
如何分別給網(wǎng)頁(yè)內(nèi)的中英文設(shè)置不同的字體
格式:
font-family:"英文字體","中文字體";
網(wǎng)頁(yè)開發(fā)中常見的字體:
- 中文:宋體、黑體、微軟雅黑
- 英文:Arial、Times New Roman
-
文字屬性的縮寫
格式
font:style weight size family;
注意
- style和weigh屬性可以省略,size和family屬性不可以省略
- style和weigh屬性可以互換位置,size和family屬性不可以互換位置,且必須寫在所有屬性的最后
文字陰影
格式:
text-shadow:水平偏移 垂直偏移 模糊度 陰影顏色;
注意點(diǎn):
- 可以簡(jiǎn)寫為
text-shadow:水平偏移 垂直偏移 模糊度;。 - 默認(rèn)情況下陰影的顏色和盒子內(nèi)容的顏色一致。
5.2 文本屬性
裝飾屬性
- text-decoration
- 下劃線:underline
- 刪除線:line-through
- 上劃線:overline
- 無(wú)裝飾:none,常見于去掉超鏈接的下劃線
水平對(duì)齊屬性
- text-align
- 居中:center
- 左對(duì)齊:left
- 右對(duì)齊:right
縮進(jìn)屬性
- text-indent
- 縮進(jìn)兩個(gè)字符:2em,em是一個(gè)文字寬度的單位
5.3 顏色屬性
格式:color:值;
取值
英文單詞
RGB:rgb(0255,0255,0~255);
-
RGBA:rgba(0255,0255,0255,01);
a代表透明度(0~1):值越小越透明
十六進(jìn)制:#FFEE00;
十六進(jìn)制縮寫:#FE0;
5.4 CSS選擇器
標(biāo)簽選擇器
作用:根據(jù)指定的標(biāo)簽名稱,選擇當(dāng)前頁(yè)面中所有指定的標(biāo)簽,然后設(shè)置屬性。
格式:
標(biāo)簽名稱{
屬性:值;
...
}
注意點(diǎn)
- 標(biāo)簽選擇器選中的是當(dāng)前界面中所有的標(biāo)簽,而不能單獨(dú)選中某一個(gè)標(biāo)簽。
- 標(biāo)簽選擇器無(wú)論標(biāo)簽藏得多深都能選中。
- 只要是HTML中的標(biāo)簽就可以作為標(biāo)簽選擇器(h/a/img/ul/ol/dl/input...)。
id選擇器
作用:根據(jù)指定的id名稱找到對(duì)應(yīng)的標(biāo)簽,然后設(shè)置屬性。
格式:
#id名稱{
屬性:值;
...
}
注意點(diǎn)
- 每個(gè)HTML標(biāo)簽都有一個(gè)屬性叫做id
- 在同一個(gè)界面中id的名稱不可重復(fù)
- 在編寫id選擇器時(shí)一定要在id名稱前面加上#
- id的名稱只能由字母、數(shù)字、下劃線組成,名稱不能以數(shù)字開頭,不能喝HTML標(biāo)簽重名。
- 網(wǎng)站開發(fā)中一般不用id選擇器,因?yàn)閕d是留給JS使用的。
類(class)選擇器
作用:根據(jù)指定的類名稱找到對(duì)應(yīng)的標(biāo)簽,然后設(shè)置屬性。
格式
.類名稱{
屬性:值;
...
}
注意點(diǎn)
每個(gè)HTML標(biāo)簽都有一個(gè)class屬性。
每個(gè)頁(yè)面中的class名稱可以重復(fù)。
在編寫class選擇器時(shí)一定要在名稱前面加上.
命名規(guī)范和id選擇器的命名規(guī)范一樣。
類名就是專門用來(lái)給某個(gè)特定的標(biāo)簽設(shè)置樣式的。
-
在HTML中每個(gè)標(biāo)簽可以同時(shí)綁定多個(gè)類名。
格式:
<標(biāo)簽名稱 class="類名1 類名2 ..."
后代選擇器
作用:找到指定標(biāo)簽的所有后代標(biāo)簽,設(shè)置屬性。
格式
標(biāo)簽名稱1 標(biāo)簽名稱2{
屬性:值;
}
注意點(diǎn)
- 后代選擇器必須用空格隔開
- 后代不僅僅是兒子,也包括孫子、重孫等等。
- 后代選擇器不僅僅可以使用標(biāo)簽,可以使用其他選擇器。
- 后代選擇器可以無(wú)限延伸下去。
子元素選擇器
作用:找到指定標(biāo)簽中所有特定的直接子元素,然后設(shè)置屬性。
格式
標(biāo)簽名稱1>標(biāo)簽名稱2{
屬性:值;
}
注意點(diǎn)
- 子元素選擇器只會(huì)查找兒子,不會(huì)查找其他被嵌套的標(biāo)簽
- 子元素選擇器之間要用>符號(hào)鏈接,并且不能有空格
- 子元素選擇器不僅僅可以使用標(biāo)簽名稱,還可以使用其他選擇器
- 子元素選擇器可以通過(guò)>符號(hào)一直延續(xù)查找下去
交集選擇器
作用:給所有選擇器選中的標(biāo)簽中,相交的那部分標(biāo)簽設(shè)置屬性
格式
選擇器1選擇器2{
屬性:值;
}
注意點(diǎn)
- 選擇器和選擇器之間沒有任何的連接符號(hào)
- 選擇器可以使用標(biāo)簽名稱/id名稱/class名稱
- 一般不推薦使用
并集選擇器
作用:給所有選擇器選中的標(biāo)簽設(shè)置屬性
格式
選擇器1,選擇器2{
屬性:值;
}
注意點(diǎn)
- 選擇器之間用,鏈接
- 選擇器可以使用標(biāo)簽名稱/id名稱/class名稱
兄弟選擇器
相鄰兄弟選擇器
作用:給指定選擇器后面緊跟的那個(gè)選擇器選中的標(biāo)簽設(shè)置屬性
選擇器1+選擇器2{
屬性:值;
}
注意點(diǎn)
- 相鄰兄弟選擇器必須通過(guò)+連接
- 相鄰兄弟選擇器只能選中緊跟其后的那個(gè)標(biāo)簽,不能選中被隔開的標(biāo)簽。
通用兄弟選擇器
作用:給指定選擇器后面的所有選擇器選中的所有標(biāo)簽設(shè)置屬性
選擇器1~選擇器2{
屬性:值;
}
注意點(diǎn)
- 通用兄弟選擇器必須用~連接
- 通用兄弟選擇器選中的是指定選擇器后面某個(gè)選擇器選中的所有標(biāo)簽,無(wú)論有沒有被隔開都可以選中。
序選擇器
用法
- 同級(jí)別的第幾個(gè)
- 標(biāo)簽:first-child 選中同級(jí)別中的第一個(gè)標(biāo)簽
- 標(biāo)簽:last-child 選中同級(jí)別中的最后一個(gè)標(biāo)簽
- 標(biāo)簽:nth-child(n) 選中同級(jí)別中的第n個(gè)標(biāo)簽
- 標(biāo)簽:nth-last-child(n) 選中同級(jí)別中的倒數(shù)第n個(gè)標(biāo)簽
- 標(biāo)簽:only-child 選中父元素中唯一的一個(gè)標(biāo)簽
- 同類型的第幾個(gè)
- 標(biāo)簽:first-of-type 選中同級(jí)別中同類型中的第一個(gè)標(biāo)簽
- 標(biāo)簽:last-of-type 選中同級(jí)別中同類型中的最后一個(gè)標(biāo)簽
- 標(biāo)簽:nth-of-type(n) 選中同級(jí)別中同類型中的第n個(gè)標(biāo)簽
- 標(biāo)簽:nth-last-of-type(n) 選中同級(jí)別中同類型中的倒數(shù)第n個(gè)標(biāo)簽
- 標(biāo)簽:only-of-type 唯一類型的某個(gè)標(biāo)簽
關(guān)于n的其他用法
- n=odd 選中奇數(shù)
- n=even 選中偶數(shù)
- xn+y x.y是用戶自定義的數(shù)字;n是計(jì)數(shù)器,從0開始遞增
屬性選擇器
作用:根據(jù)指定的屬性名稱找到對(duì)應(yīng)的標(biāo)簽,然后設(shè)置屬性
用法
標(biāo)簽[attribute]
標(biāo)簽[attribute=value]:最常用于區(qū)分input屬性
-
標(biāo)簽[attribute|=value]:同下標(biāo)簽[attribute^=value]:屬性的取值是否以什么開頭
標(biāo)簽[attribute$=value]:屬性的取值是否以什么結(jié)尾
-
標(biāo)簽[attribute~=value]:同下標(biāo)簽[attribute*=value]:取值是否包含某個(gè)特定的值
通配符選擇器
作用:給當(dāng)前頁(yè)面所有標(biāo)簽設(shè)置屬性
用法
*{
屬性:值;
}
注意點(diǎn):因選擇了當(dāng)前頁(yè)面所有標(biāo)簽,所以當(dāng)頁(yè)面標(biāo)簽多時(shí),性能就會(huì)降低,所以不推薦使用。
<a name="wys">偽元素選擇器</a>
作用:
給指定標(biāo)簽的內(nèi)容前面或后面添加一個(gè)子元素
格式:
選擇器名稱::before{
/*指定添加的子元素中存儲(chǔ)的內(nèi)容*/
content:"內(nèi)容";
/*指定添加的子元素的寬高*/
width:值;
height:值;
/*指定添加的子元素的顯示模式*/
display:值;
/*隱藏添加的子元素*/
visibility:值;
}
選擇器名稱::after{
/*指定添加的子元素中存儲(chǔ)的內(nèi)容*/
content:"內(nèi)容";
/*指定添加的子元素的寬高*/
width:值;
height:值;
/*指定添加的子元素的顯示模式*/
display:值;
/*隱藏添加的子元素*/
visibility:值;
}
a標(biāo)簽的偽類選擇器
a標(biāo)簽的偽類選擇器是專門用來(lái)修改a標(biāo)簽不同狀態(tài)下的樣式的。
a標(biāo)簽的狀態(tài):
- 默認(rèn)狀態(tài),從未被訪問過(guò),藍(lán)色+下劃線
- 被訪問過(guò)狀態(tài),紫色+下劃線
- 鼠標(biāo)長(zhǎng)按狀態(tài),紅色+下劃線
- 鼠標(biāo)懸停時(shí)狀態(tài)
格式:
/*修改從未被放過(guò)狀態(tài)下的樣式*/
:link{
屬性:值;
}
/*修改被訪問過(guò)狀態(tài)下的樣式*/
:visited{
屬性:值;
}
/*修改鼠標(biāo)懸停狀態(tài)下的樣式*/
:hover{
屬性:值;
}
/*修改鼠標(biāo)長(zhǎng)按狀態(tài)下的樣式*/
:active{
屬性:值;
}
注意點(diǎn):
- a標(biāo)簽的偽類選擇器可以單獨(dú)出現(xiàn),也可以一起出現(xiàn)
- a標(biāo)簽的偽類選擇器如果一起出現(xiàn),那么有嚴(yán)格的順序要求。編寫的順序必須要按照
link visited hover active的順序編寫,即愛恨原則(love&hate)。 - 如果默認(rèn)狀態(tài)的樣式和被訪問過(guò)狀態(tài)的樣式一樣,那么可以縮寫——寫到標(biāo)簽選擇器中。
- 在企業(yè)開發(fā)中編寫a標(biāo)簽的偽類選擇器最好都寫在標(biāo)簽選擇器的后面
- 在企業(yè)開發(fā)中和a標(biāo)簽盒子相關(guān)的屬性(限時(shí)模式、寬高、padding、margin等)都寫在標(biāo)簽選擇器中
- 在企業(yè)開發(fā)中和a標(biāo)簽文字、背景相關(guān)的屬性都寫在偽類選擇器中
5.5 CSS大三特性
繼承性
作用
給父元素設(shè)置一些屬性,子元素也可以使用。
注意點(diǎn)
- 并不是所有的屬性都可以繼承,只有以color/font-/text-/line開頭的屬性才可以繼承
- 在CSS的繼承中不僅僅是兒子可以繼承,只要是后代都可以繼承
- 繼承性中的特殊性
- a標(biāo)簽的文字顏色和下劃線是不能繼承的
- h標(biāo)簽的文字大小是不能繼承的
應(yīng)用場(chǎng)景
一般用于設(shè)置網(wǎng)頁(yè)上的一些共性信息,例如網(wǎng)頁(yè)的文字顏色、字體、文字大小內(nèi)容,一般為body{}
層疊性
作用
層疊性就是CSS處理沖突的能力。
注意點(diǎn)
層疊性只有在多個(gè)選擇器選中“同一個(gè)標(biāo)簽”,然后又設(shè)置了“相同的屬性”,才會(huì)發(fā)生層疊性。
優(yōu)先級(jí)
作用
當(dāng)多個(gè)選擇器選中同一個(gè)標(biāo)簽,并且給同一個(gè)標(biāo)簽設(shè)置相同的屬性時(shí),如何層疊就由優(yōu)先級(jí)來(lái)確定。
優(yōu)先級(jí)判斷的三種方式
-
是否直接選中(簡(jiǎn)介選中就是指繼承)
如果是間接選中,那么就是誰(shuí)離目標(biāo)標(biāo)簽近就聽誰(shuí)的。
-
是否是相同選擇器
如果都是直接選中,并且都是同類型的選擇器,那么就是誰(shuí)寫在后面聽誰(shuí)的。
-
不同選擇器
如果都是直接選中,并且不是相同類型的選擇器,那么就會(huì)按照選擇器的優(yōu)先級(jí)來(lái)層疊。
id>類>標(biāo)簽>通配符>繼承>瀏覽器默認(rèn)
!important
作用
用于提升某個(gè)直接選中標(biāo)簽的選擇器中的某個(gè)屬性的優(yōu)先級(jí)的,可以將被指定的屬性的優(yōu)先級(jí)提升為最高。
用法
在屬性: 值;的值后面;前面添加!important。
注意點(diǎn)
- important只能用于直接選中,不能用于間接選中。
- 通配符選擇器選中的標(biāo)簽也是直接選中。
- !important只能提升被指定的屬性的優(yōu)先級(jí),其他的屬性的優(yōu)先級(jí)不會(huì)被提升。
- !important必須寫在屬性值的分號(hào)前面。
- !important前面的感嘆號(hào)不能省略。
權(quán)重問題
作用
當(dāng)多個(gè)選擇器混合在一起使用時(shí),我們可以通過(guò)計(jì)算權(quán)重來(lái)判斷誰(shuí)的優(yōu)先級(jí)最高
權(quán)重規(guī)則
- 首先計(jì)算選擇器中有多少個(gè)id,id多的選擇器優(yōu)先級(jí)最高
- 如果id個(gè)數(shù)一樣,那么再看類名的個(gè)數(shù),類名個(gè)數(shù)多的優(yōu)先級(jí)最高
- 如果類名的個(gè)數(shù)一樣,那么再看標(biāo)簽名稱的個(gè)數(shù),標(biāo)簽名稱個(gè)數(shù)多的優(yōu)先級(jí)最高
- 如果id個(gè)數(shù)一樣,類名個(gè)數(shù)一樣,標(biāo)簽名稱個(gè)數(shù)也一樣,那么就不會(huì)繼續(xù)往下計(jì)算了,那么此時(shí)誰(shuí)在寫后面聽誰(shuí)的;也就是說(shuō)優(yōu)先級(jí)如果一樣,那么誰(shuí)寫在后面聽誰(shuí)的。
注意點(diǎn)
- 只有選擇器是直接選中標(biāo)簽的才需要計(jì)算權(quán)重
5.6 CSS元素的顯示模式
在HTML中HTML將所有的標(biāo)簽分為兩類,分別是容器級(jí)和文本級(jí);
在CSS中CSS也將所有的標(biāo)簽分為兩類,分別是塊級(jí)元素和行內(nèi)元素。
塊級(jí)元素=容器級(jí)標(biāo)簽+p標(biāo)簽
行內(nèi)元素=文本級(jí)標(biāo)簽-p標(biāo)簽
塊級(jí)元素和行內(nèi)元素的區(qū)別
塊級(jí)元素會(huì)獨(dú)占一行,行內(nèi)元素不會(huì)獨(dú)占一行
-
塊級(jí)元素:如果沒有設(shè)置寬度,那么默認(rèn)和父元素一樣寬;如果設(shè)置了寬高那么就按照設(shè)置的來(lái)顯示。
行內(nèi)元素:如果沒有設(shè)置寬度,那么默認(rèn)和內(nèi)容一樣寬;行內(nèi)元素是不可以設(shè)置寬度和高度的。
行內(nèi)塊級(jí)元素:能夠讓元素既能夠不獨(dú)占一行,又可以設(shè)置寬度和高度。
5.7 CSS元素顯示模式轉(zhuǎn)換
塊級(jí)元素、行內(nèi)元素、行內(nèi)塊級(jí)元素三者之間可以相互轉(zhuǎn)換
方法:
設(shè)置元素的display屬性
- block 轉(zhuǎn)換為塊級(jí)元素
- inline 轉(zhuǎn)換為行內(nèi)元素
- inline-block 轉(zhuǎn)換為行內(nèi)塊級(jí)元素
5.8 CSS背景和精靈圖
背景顏色
用法:background-color: 值;
取值:
英文單詞
RGB:rgb(0255,0255,0~255);
-
RGBA:rgba(0255,0255,0255,01);
a代表透明度(0~1):值越小越透明
十六進(jìn)制:#FFEE00;
十六進(jìn)制縮寫:#FE0;
背景圖片
用法:background-image:url();
注意點(diǎn):
- 在括號(hào)內(nèi)填寫圖片地址,地址可以是本地地址,也可以是網(wǎng)絡(luò)地址。
- 如果圖片大小比標(biāo)簽的大小小,圖片會(huì)自動(dòng)在水平和垂直方向填滿標(biāo)簽。
背景平鋪屬性
用法:background-repeat: 值;
取值
- repeat:默認(rèn),在水平和垂直方向平鋪
- no-repeat:不平鋪
- repeat-x:水平平鋪
- repeat-y:垂直平鋪
應(yīng)用場(chǎng)景
可以通過(guò)背景圖片的平鋪來(lái)降低圖片的大小,提升網(wǎng)頁(yè)的訪問速度。
背景定位
用法:background-position: 水平值 垂直值;
取值
- 具體方位名詞
- 水平值:left center right
- 垂直值:top center bottom
- 具體像素
注意點(diǎn):填寫像素時(shí)一定要寫單位px
背景關(guān)聯(lián)
作用:默認(rèn)情況下背景圖片會(huì)隨著滾動(dòng)條滾動(dòng)而滾出界面,修改背景圖片和滾動(dòng)條的關(guān)聯(lián)方式可以實(shí)現(xiàn)背景圖片不跟隨滾動(dòng)條的效果。
用法:background-attachment:值;
取值
- scroll:默認(rèn),背景圖片跟隨滾動(dòng)條滾動(dòng)。
- fixed:背景圖片不跟隨滾動(dòng)條滾動(dòng)。
背景縮寫
用法:background:背景顏色 背景圖片 平鋪方式 關(guān)聯(lián)方式 定位方式;
注意點(diǎn)
- 任何一個(gè)都可以省略
CSS精靈圖
作用:可以減少請(qǐng)求的次數(shù),降低服務(wù)器的處理壓力,需要配合背景圖片和背景定位來(lái)實(shí)現(xiàn)。
5.9 盒模型
邊框?qū)傩?/h4>
用法:
-
連寫
-
同時(shí)設(shè)置四條邊框
border:邊框的寬度 邊框的樣式 邊框的顏色; -
分別設(shè)置四條邊框
border-top:邊框的寬度 邊框的樣式 邊框的顏色;border-bottom:邊框的寬度 邊框的樣式 邊框的顏色;border-left:邊框的寬度 邊框的樣式 邊框的顏色;border-right:邊框的寬度 邊框的樣式 邊框的顏色; -
分別設(shè)置四條邊框
border-width:上 右 下 左border-style:上 右 下 左border-color:上 右 下 左注意點(diǎn):取值省略時(shí)的規(guī)律
上右下左→上右下:左邊=右邊
上右下左→上右:左邊=右邊、下邊=上邊
上右下左→上:右下左邊=上邊
-
-
不連寫
border-top-width:設(shè)置上邊框的寬度border-top-style:設(shè)置上邊框的樣式border-top-color:設(shè)置上邊框的顏色border-right-width:設(shè)置右邊框的寬度border-right-style:設(shè)置右邊框的樣式border-right-color:設(shè)置右邊框的顏色border-bottom-width:設(shè)置下邊框的寬度border-bottom-style:設(shè)置下邊框的樣式border-bottom-color:設(shè)置下邊框的顏色border-left-width:設(shè)置左邊框的寬度border-left-style:設(shè)置左邊框的樣式border-left-color:設(shè)置左邊框的顏色
取值
- 邊框樣式
- solid:實(shí)線
- dashed:虛線
內(nèi)邊距
邊框和內(nèi)容的距離就是內(nèi)邊距
格式
-
非連寫
padding-top: 值; padding-right: 值; padding-bottom: 值; padding-left: 值; -
連寫
padding:上 右 下 左注意點(diǎn):取值省略時(shí)的規(guī)律
上右下左→上右下:左邊=右邊
上右下左→上右:左邊=右邊、下邊=上邊
上右下左→上:右下左邊=上邊
注意點(diǎn)
- 給標(biāo)簽設(shè)置內(nèi)邊距之后,標(biāo)簽占有的寬度和高度會(huì)發(fā)生變化。
- 內(nèi)邊距也會(huì)有背景顏色。
外邊距
標(biāo)簽和標(biāo)簽之間的距離就是外邊距
格式
-
非連寫
margin-top: 值; margin-right: 值; margin-bottom: 值; margin-left: 值; -
連寫
margin:上 右 下 左注意點(diǎn):取值省略時(shí)的規(guī)律
上右下左→上右下:左邊=右邊
上右下左→上右:左邊=右邊、下邊=上邊
上右下左→上:右下左邊=上邊
注意點(diǎn)
外邊距是沒有背景顏色的。
-
在默認(rèn)布局的垂直方向上,默認(rèn)情況下外邊距是不會(huì)疊加的,會(huì)出現(xiàn)合并現(xiàn)象,誰(shuí)的外邊距比較大就聽誰(shuí)的。
image 在嵌套的盒子中
margin:0 auto可以是使盒子自動(dòng)水平居中,但是無(wú)法垂直居中。
盒子模型
HTML中所有的標(biāo)簽都可以設(shè)置:
- 寬度/高度:指定可以存放內(nèi)容的區(qū)域
- 內(nèi)邊距:填充物
- 邊框:盒子的邊框
- 外邊距:盒子和盒子之間的間隙
盒子的寬度和高度
-
內(nèi)容的寬度和高度
就是通過(guò)標(biāo)簽的width和height屬性設(shè)置的寬度和高度
-
元素的寬度和高度
寬度=左邊框+左內(nèi)邊距+width+右內(nèi)邊距+右邊框高度 同理 -
元素空間的寬度和高度
寬度=左外邊距+左邊框+左內(nèi)邊距+width+右內(nèi)邊距+右邊框+右外邊距高度 同理
盒子box-sizing屬性
保證盒子新增padding或border之后,盒子元素的寬度和高度不變
取值
-
content-box
元素的寬高=邊框+內(nèi)邊距+內(nèi)容寬高
-
border-box
元素的寬高=width屬性
盒子陰影
格式:
box-shadow:水平偏移 垂直偏移 模糊度 陰影擴(kuò)展 陰影顏色 內(nèi)外陰影;
注意點(diǎn):
- 盒子陰影分內(nèi)外陰影,默認(rèn)是外陰影。
- 可以簡(jiǎn)寫為
box-shadow:水平偏移 垂直偏移 模糊度;。 - 默認(rèn)情況下陰影的顏色和盒子內(nèi)容的顏色一致。
清空默認(rèn)邊距
原因及作用
在企業(yè)開發(fā)中為了更好的空值盒子的寬高和計(jì)算盒子的寬高等等。<u>所以在企業(yè)開發(fā)中,編寫代碼之前第一件事情就是清空默認(rèn)的邊距。</u>
用法:在CSS中添加
*{
margin: 0;
padding: 0;
}
注意點(diǎn)
通配符選擇器會(huì)找到當(dāng)前界面中所有的標(biāo)簽,所以性能不好。不推薦使用。
高效清空默認(rèn)邊距:百度搜索“yui css reset”,或直接點(diǎn)擊CSS Reset
行高和字號(hào)
行高:line-height
5.10 網(wǎng)頁(yè)布局方式
- 標(biāo)準(zhǔn)流(文檔流、普通流)排版方式
- 浮動(dòng)流排版方式
- 定位流排版方式
標(biāo)準(zhǔn)流(文檔流、普通流)排版方式
瀏覽器默認(rèn)排版方式,有兩種排版方式:垂直排版(塊級(jí)元素)和水平排版(行內(nèi)元素、行內(nèi)塊級(jí)元素)。
浮動(dòng)流排版方式
是一種“半脫離標(biāo)準(zhǔn)流”的排版方式,<u>只有水平排版方式,且只有左對(duì)齊和右對(duì)齊兩個(gè)屬性</u>。
格式
float:left;
float:right;
特點(diǎn)
- 在浮動(dòng)流中不區(qū)分塊級(jí)元素、行內(nèi)元素、行內(nèi)塊級(jí)元素,均可水平排版。
- 在浮動(dòng)流中不區(qū)分塊級(jí)元素、行內(nèi)元素、行內(nèi)塊級(jí)元素,均可設(shè)置寬高。
- 綜上所述,浮動(dòng)流中的元素和標(biāo)準(zhǔn)流中的行內(nèi)塊級(jí)元素很像。
浮動(dòng)元素排序規(guī)則
- 相同方向上的浮動(dòng)元素,先浮動(dòng)的元素會(huì)顯示在前面,后浮動(dòng)的元素會(huì)顯示在后面。
- 不同方向上的浮動(dòng)元素,左浮動(dòng)會(huì)找左浮動(dòng),右浮動(dòng)會(huì)找右浮動(dòng)。
- 浮動(dòng)元素浮動(dòng)之后的位置,由浮動(dòng)元素浮動(dòng)之前在標(biāo)準(zhǔn)流中的位置來(lái)確定。
浮動(dòng)元素高度問題
- 在標(biāo)準(zhǔn)流中內(nèi)容的高度可以撐起父元素的高度
- 在浮動(dòng)流中浮動(dòng)的元素不可以撐起父元素的高度
清除浮動(dòng)
-
方式一:給前面一個(gè)父元素設(shè)置高度
注意點(diǎn):在企業(yè)開發(fā)中,我們能不寫高度就不寫高度,所以這種方式用得很少
-
方式二:給后面的盒子添加clear屬性
取值:
none:默認(rèn)取值,按照浮動(dòng)元素的排序規(guī)則來(lái)排序(左浮動(dòng)找左浮動(dòng),右浮動(dòng)找右浮動(dòng))
left:不要找前面的左浮動(dòng)元素
right:不要找前面的右浮動(dòng)元素
both:不要找前面的左浮動(dòng)元素和右浮動(dòng)元素
注意點(diǎn):
一般直接使用
clear:both;添加clear屬性后的標(biāo)簽,margin屬性會(huì)失效。
-
方式三:隔墻法
-
外墻法:在兩個(gè)標(biāo)簽中間添加一個(gè)塊級(jí)元素(如div),并給該元素設(shè)置
clear:both;屬性。注意點(diǎn):
外墻法可以讓第二個(gè)標(biāo)簽使用margin-top屬性,但是不可以讓第一個(gè)標(biāo)簽使用margin-bottom屬性。
-
內(nèi)墻法:在第一個(gè)標(biāo)簽所有子元素最后添加一個(gè)塊級(jí)元素(如div),并給該元素設(shè)置
clear:both;屬性。注意點(diǎn):
內(nèi)墻法既可以讓第二個(gè)標(biāo)簽使用margin-top屬性,也可以讓第一個(gè)標(biāo)簽使用margin-bottom屬性。
區(qū)別:
外墻法不能撐起第一個(gè)標(biāo)簽的高度,而內(nèi)墻法可以撐起第一個(gè)標(biāo)簽的高度。
注意點(diǎn):
企業(yè)開發(fā)中不常使用隔墻法。
-
-
方法四:利用偽元素選擇器,給前一個(gè)標(biāo)簽的后面添加一個(gè)塊級(jí)元素。
方法:
選擇器名稱::after{ /*指定添加的子元素的內(nèi)容為空*/ content: ""; /*指定添加的子元素為塊級(jí)元素*/ display: block; /*指定添加的子元素的高為0*/ height: 0; /*設(shè)置添加的子元素看不見*/ visibility: hidden; /*給添加的子元素設(shè)置clear:both;*/ clear: both; } /*僅僅有上面的CSS,會(huì)出現(xiàn)不兼容IE6的情況,要想兼容IE6還需要添加下面的代碼*/ 選擇器名稱{ *zoom:1; } -
方法五:給前一個(gè)選擇器添加
overflow: hidden;作用:
- 可以將超出選擇器方位的內(nèi)容裁剪掉
- 清除浮動(dòng),但是也會(huì)出現(xiàn)不兼容IE6的情況,需要添加一條
*zoom:1; - 可以通過(guò)
overflow: hidden;讓里面的盒子設(shè)置margin-top之后,外面的盒子不被頂下來(lái)
定位流排版方式
- 相對(duì)定位
- 絕對(duì)定位
- 固定定位
- 靜態(tài)定位
相對(duì)定位
就是相對(duì)于自己以前在標(biāo)準(zhǔn)流中的位置來(lái)移動(dòng)。
用法:
position:relative;
注意點(diǎn):
- 需要配合
top right bottom left來(lái)使用 - 相對(duì)定位是不脫離標(biāo)準(zhǔn)流的,會(huì)繼續(xù)在標(biāo)準(zhǔn)流中占用一份空間。
- 在相對(duì)定位中同一個(gè)方向上的定位屬性只能使用一個(gè)。
- 由于相對(duì)定位是不脫離標(biāo)準(zhǔn)流的,所以在相對(duì)定位中是區(qū)分塊級(jí)元素、行內(nèi)元素和行內(nèi)塊級(jí)元素的。
- 由于相對(duì)定位是不脫離標(biāo)準(zhǔn)流的,并且相對(duì)定位的元素會(huì)占用標(biāo)準(zhǔn)流中的位置,所以當(dāng)給相對(duì)定位的元素設(shè)置margin、padding等屬性的時(shí)候會(huì)影響到標(biāo)準(zhǔn)流的布局。
應(yīng)用場(chǎng)景:
- 用于對(duì)元素的進(jìn)行微調(diào)
- 配合后面學(xué)習(xí)的絕對(duì)定位來(lái)使用
絕對(duì)定位
絕對(duì)定位就是相對(duì)于body來(lái)定位
用法:
position:absolute;
規(guī)律/參考點(diǎn):
以下提到的“定位流”指的是相對(duì)定位、絕對(duì)定位、固定定位,不包含靜態(tài)定位。
- 默認(rèn)情況下所有的絕對(duì)定位的元素,無(wú)論有沒有祖先元素,都會(huì)以body作為參考點(diǎn)。
- 如果一個(gè)絕對(duì)定位的元素有祖先元素,并且祖先元素也是定位流,那么這個(gè)絕對(duì)定位的元素就會(huì)以定位流的那個(gè)祖先元素作為參考點(diǎn)。
- 如果一個(gè)絕對(duì)定位的元素有祖先元素,并且祖先元素也是定位流,而且祖先元素中有多個(gè)元素都是定位流,那么這個(gè)絕對(duì)定位的元素會(huì)以離它最近的那個(gè)定位流的祖先元素為參考點(diǎn)。
注意點(diǎn):
- 需要配合
top right bottom left來(lái)使用 - 絕對(duì)定位的元素是脫離標(biāo)準(zhǔn)流的
- 絕對(duì)定位的元素是不區(qū)分塊級(jí)元素、行內(nèi)元素和行內(nèi)塊級(jí)元素的
- 如果一個(gè)絕對(duì)定位的元素是以body作為參考點(diǎn),那么其實(shí)是以網(wǎng)頁(yè)首屏的寬度和高度作為參考點(diǎn),而不是以整個(gè)網(wǎng)頁(yè)的寬度和高度作為參考點(diǎn)。
- 一個(gè)絕對(duì)定位的元素會(huì)忽略祖先元素的padding屬性。
水平居中:
- 設(shè)置絕對(duì)定位元素的
left:50%; - 設(shè)置絕對(duì)定位元素的
margin-left:-元素寬度的一半px;
子絕父相
相對(duì)定位的弊端:相對(duì)定位不會(huì)脫離標(biāo)準(zhǔn)流,會(huì)繼續(xù)在標(biāo)準(zhǔn)流中占用一份空間,所以不利于布局。
絕對(duì)定位的弊端:默認(rèn)情況下絕對(duì)定位的元素會(huì)以body作為參考點(diǎn),所以會(huì)隨著瀏覽器的寬度高度的變化而變化。
<u>鑒于以上情況,因此企業(yè)開發(fā)中都是相對(duì)定位和絕對(duì)定位相結(jié)合使用,而其中99.99%的組合是子絕父相——子元素使用絕對(duì)定位,父元素使用相對(duì)定位。</u>
固定定位
可以實(shí)現(xiàn)背景關(guān)聯(lián)background-attachment:fixed;的作用,即元素和滾動(dòng)條的關(guān)聯(lián)方式可以實(shí)現(xiàn)元素不跟隨滾動(dòng)條的效果。
用法:
position:fixed;
注意點(diǎn):
- 固定定位的元素是脫離標(biāo)準(zhǔn)流的,不會(huì)占用標(biāo)準(zhǔn)流中的空間
- 固定定位和絕對(duì)定位一樣不區(qū)分行內(nèi)元素、塊級(jí)元素、行內(nèi)塊級(jí)元素。
- IE6不支持固定定位。
靜態(tài)定位
所有元素默認(rèn)情況下就是靜態(tài)定位
z-index屬性
默認(rèn)情況下所有的元素都有一個(gè)默認(rèn)的z-index屬性,取值是0。z-index屬性的作用是專門用于控制定位流元素的覆蓋關(guān)系的。
覆蓋關(guān)系
- 默認(rèn)情況下定位流的元素會(huì)蓋住標(biāo)準(zhǔn)流的元素。
- 默認(rèn)情況下定位流的元素后面編寫的會(huì)蓋住前面編寫的。
- 如果定位流的元素設(shè)置了z-index屬性,那么z-index屬性值大的元素會(huì)顯示在z-index屬性值小的元素上面。
注意點(diǎn):
-
從父現(xiàn)象
1.1 如果兩個(gè)元素的父元素都沒有設(shè)置z-index屬性,那么誰(shuí)的z-index屬性值比較大,誰(shuí)就顯示在上面。
1.2 如果兩個(gè)元素的父元素設(shè)置了z-index屬性,那么子元素的z-index屬性就會(huì)失效,也就是說(shuō)誰(shuí)的父元素的z-index屬性值比較大,誰(shuí)就會(huì)顯示在上面。
網(wǎng)頁(yè)布局總結(jié)
- 垂直方向使用標(biāo)準(zhǔn)流,水平方向使用浮動(dòng)流。
- 拿到一個(gè)很復(fù)雜的界面后如何入手?
- 從上至下布局
- 從外向內(nèi)布局
- 水平方向可以先劃分為一左一右再對(duì)左邊或者右邊進(jìn)行進(jìn)一步布局
5.11 過(guò)渡模塊
過(guò)渡三要素
- 必須要有屬性發(fā)生變化
- 必須告訴系統(tǒng)哪個(gè)屬性需要執(zhí)行過(guò)渡效果
- 必須告訴系統(tǒng)過(guò)渡效果持續(xù)時(shí)長(zhǎng)
實(shí)現(xiàn)方法:
- 給元素添加偽類選擇器
:hover,設(shè)置要實(shí)現(xiàn)過(guò)渡效果的屬性。 - 給元素設(shè)置過(guò)渡參數(shù),參考
格式。
格式:
/*高速系統(tǒng)那個(gè)屬性需要執(zhí)行過(guò)渡效果*/
transition-property:屬性;
/*告訴系統(tǒng)過(guò)渡效果持續(xù)的時(shí)長(zhǎng)*/
transition-duration:時(shí)長(zhǎng);
/*告訴系統(tǒng)延遲多少秒之后才開始過(guò)渡動(dòng)畫*/
transition-delay:時(shí)長(zhǎng);
/*告訴系統(tǒng)過(guò)渡動(dòng)畫的運(yùn)動(dòng)的速度*/
transition-timing-function:linear/ease/ease-in/ease-out/ease-in-out;
連寫:
transition: 過(guò)渡屬性 持續(xù)時(shí)長(zhǎng) 運(yùn)動(dòng)速度 延遲時(shí)間;
簡(jiǎn)寫:
transition:all 時(shí)長(zhǎng);
注意點(diǎn):
- 當(dāng)有多個(gè)屬性需要實(shí)現(xiàn)過(guò)渡效果時(shí),用
,隔開即可。 - 連寫狀態(tài)下,如果想給多個(gè)屬性添加過(guò)渡效果也是用
,隔開即可。 - 連寫時(shí)可以省略后面的兩個(gè)參數(shù),因?yàn)橹灰星懊鎯蓚€(gè)參數(shù)就已經(jīng)滿足了過(guò)渡的三要素。
- 如果多個(gè)屬性運(yùn)動(dòng)的速度、延遲的時(shí)間、持續(xù)時(shí)間都一樣,可以使用簡(jiǎn)寫
編寫過(guò)渡效果的步驟:
- 不要管過(guò)渡,先編寫基本界面
- 修改我們認(rèn)為需要修改的屬性
- 再回過(guò)頭去給被修改屬性的那個(gè)元素添加過(guò)渡即可
5.12 2D轉(zhuǎn)換模塊
格式:
/*旋轉(zhuǎn),dge代表旋轉(zhuǎn)的度數(shù)*/
transform:rotate(值dge);
/*平移*/
transform:translate(水平值px,垂直值px);
/*縮放,兩個(gè)參數(shù)一樣時(shí),可以只寫一個(gè)參數(shù)*/
transform:scale(水平縮放倍數(shù),垂直縮放倍數(shù));
/*綜合*/
transform:rotate(值dge) translate(水平值px,垂直值px) scale(水平縮放倍數(shù),垂直縮放倍數(shù));
/*修改2D模塊的形變中心點(diǎn)*/
transform-origin:水平坐標(biāo)值 垂直坐標(biāo)值;
/*透視屬性*/
perspective:值;
注意點(diǎn):
- 旋轉(zhuǎn)后,坐標(biāo)軸也會(huì)跟著旋轉(zhuǎn)。
-
transform-origin的取值有三種形式- 具體像素
- 百分比
- 特殊關(guān)鍵字:left、top、bottom、right
-
rotate(值dge)默認(rèn)是將元素以Z坐標(biāo)軸旋轉(zhuǎn),相當(dāng)于rotateZ(值dge);如果想讓元素以X坐標(biāo)軸旋轉(zhuǎn)(上下方向),則rotateX(值dge);如果想讓元素以Y坐標(biāo)軸旋轉(zhuǎn)(左右方向),則rotateY(值dge)。 -
translate(值px)默認(rèn)是將元素以Y軸平移,相當(dāng)于translateY(值px);如果想讓元素以X坐標(biāo)軸旋轉(zhuǎn)(上下方向),則translateX(值px);如果想讓元素以Z坐標(biāo)軸旋轉(zhuǎn)(前后方向),則translateZ(值px)。 - 透視屬性,必須添加到需要呈現(xiàn)近大遠(yuǎn)小效果的元素的父元素上面。
5.13 動(dòng)畫模塊
動(dòng)畫模塊與過(guò)渡模塊的異同:
- 相同點(diǎn)
- 過(guò)渡和動(dòng)畫都是用來(lái)給元素添加動(dòng)畫的
- 過(guò)渡和動(dòng)畫都是系統(tǒng)新增的一些屬性
- 過(guò)渡和動(dòng)畫都是需要滿足三要素才會(huì)有動(dòng)畫效果
- 不同點(diǎn)
- 過(guò)渡必須人為觸發(fā)才會(huì)執(zhí)行動(dòng)畫,而動(dòng)畫不需要人為的觸發(fā)就可以執(zhí)行動(dòng)畫
動(dòng)畫三要素及格式:
-
告訴系統(tǒng)需要執(zhí)行哪個(gè)動(dòng)畫
animation-name:自定義動(dòng)畫名; -
告訴系統(tǒng)我們需要?jiǎng)?chuàng)建一個(gè)動(dòng)畫及內(nèi)容
方法一: @keyframes 自定義動(dòng)畫名 { from{ } to{ } } 方法二: @keyframes 自定義動(dòng)畫名{ 0%{ } 50%{ } 100%{ } } 可以寫0-100個(gè)動(dòng)畫狀態(tài) -
告訴系統(tǒng)動(dòng)畫持續(xù)的時(shí)長(zhǎng)
animation-duration:時(shí)長(zhǎng);
其他屬性:
/*告訴系統(tǒng)多少秒之后執(zhí)行動(dòng)畫*/
animation-delay:時(shí)長(zhǎng);
/*告訴系統(tǒng)動(dòng)畫執(zhí)行的速度*/
animation-timing-function:值;
/*告訴系統(tǒng)動(dòng)畫執(zhí)行的次數(shù),取值為“infinite”時(shí),表示無(wú)限次*/
animation-iteration-count:次數(shù);
/*告訴系統(tǒng)是否需要執(zhí)行往返動(dòng)畫,默認(rèn)為normal*/
animation-direction:alternate;
/*告訴系統(tǒng)當(dāng)前動(dòng)畫是否需要暫定,默認(rèn)running(執(zhí)行動(dòng)畫)*/
animation-play-state:paused;
/*告訴系統(tǒng)動(dòng)畫的等待狀態(tài)和結(jié)束狀態(tài)的樣式*/
animation-fill-mode:值;
取值:none:不做任何改變
forwards:讓元素結(jié)束狀態(tài)保持最后一幀的樣式
backwards:讓元素等待狀態(tài)時(shí)顯示第一幀的樣式
both:即forwards和backwards。
連寫/簡(jiǎn)寫:
連寫:
animation:動(dòng)畫名稱 動(dòng)畫時(shí)長(zhǎng) 動(dòng)畫運(yùn)動(dòng)速度 延遲時(shí)間 執(zhí)行次數(shù) 往返動(dòng)畫;
簡(jiǎn)寫:
animation:動(dòng)畫名稱 動(dòng)畫時(shí)長(zhǎng);
5.14 3D轉(zhuǎn)換模塊
格式:
給元素的父元素添加
transform-style:preserve-3d;
5.15 背景相關(guān)
背景尺寸屬性
用法:
background-size:屬性;
屬性取值:
- 默認(rèn)
- 具體像素:
寬px 高px - 百分比:
寬% 高% - 寬度等比拉伸:
auto 高px - 高度等比拉伸:
寬px auto - cover:告訴系統(tǒng)圖片需要等比拉伸,并拉伸到寬度和高度都填滿為止
- contain:告訴系統(tǒng)圖片需要等比拉伸,并拉伸到寬度或高度都填滿為止
背景圖片定位區(qū)域?qū)傩?/h4>
用法:
background-origin:屬性值;
屬性取值:
- padding-box:默認(rèn),圖片從padding開始顯示
- border-box:圖片從border開始顯示
- content-box:圖片從content開始顯示
背景繪制區(qū)域?qū)傩?/h4>
用法:
background-clip:屬性值;
屬性取值:
- padding-box:從padding區(qū)域開始繪制背景
- border-box:默認(rèn),從border區(qū)域開始繪制背景
- content-box:從content區(qū)域開始繪制背景
5.16 CSS書寫格式
書寫位置:
- 行內(nèi)樣式:直接將CSS代碼寫到開始標(biāo)簽中
- 內(nèi)嵌樣式:在一對(duì)head標(biāo)簽當(dāng)中寫上一對(duì)style標(biāo)簽,然后在style標(biāo)簽中編寫CSS代碼
- 外鏈樣式(企業(yè)開發(fā)中一般都使用這種方式):新建一個(gè).css文件,把CSS代碼寫到這個(gè)文件中,然后通過(guò)link標(biāo)簽把這個(gè)文件和.html文件關(guān)聯(lián)起來(lái)
- 導(dǎo)入樣式:新建一個(gè).css文件,把CSS代碼寫到這個(gè)文件中,然后通過(guò)@import把這個(gè)文件和.html文件關(guān)聯(lián)起來(lái)
外鏈樣式和導(dǎo)入樣式的區(qū)別:
- 外鏈樣式是通過(guò)link標(biāo)簽關(guān)聯(lián),而導(dǎo)入樣式是通過(guò)@import關(guān)聯(lián),而@import是CSS2.1推出的,所以有兼容問題
- 外鏈樣式在顯示界面的時(shí)候,會(huì)先加載CSS樣式,再加載結(jié)構(gòu),所以用戶看到界面時(shí)一定已經(jīng)設(shè)置了樣式;外鏈樣式在顯示界面的時(shí)候,會(huì)先加載結(jié)構(gòu),再加載CSS樣式,所以用戶看到界面時(shí)不一定已經(jīng)設(shè)置了樣式。
靜態(tài)網(wǎng)站實(shí)踐
準(zhǔn)備工作
創(chuàng)建站點(diǎn)文件夾(可以用中文名),并在站點(diǎn)文件夾里創(chuàng)建子文件夾(不能用中文):css、js、images文件夾和index.html
-
重置所有默認(rèn)的樣式和設(shè)置一些全局樣式,并且將設(shè)置樣式的css文件和對(duì)應(yīng)的界面關(guān)聯(lián)起來(lái)。
/*1.默認(rèn)樣式*/ /* YUI 3.18.1 (build f7e7bcb) Copyright 2014 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ html{color:#000;background:#FFF} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0} table{border-collapse:collapse;border-spacing:0} fieldset,img{border:0} address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal} ol,ul{list-style:none} caption,th{text-align:left} h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal} q:before,q:after{content:''} abbr,acronym{border:0;font-variant:normal} sup{vertical-align:text-top} sub{vertical-align:text-bottom} input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;*font-size:100%} legend{color:#000} a{text-decoration:none;} /*2.全局樣式*/ /*具體根據(jù)實(shí)際情況調(diào)整*/ body{ font-family:"微軟雅黑"; font-size:12px; color:#999 background-color:#f5f5f5; } 分析布局,劃分區(qū)域。
關(guān)于CSS
推薦將“重置所有默認(rèn)的樣式和設(shè)置一些全局樣式”創(chuàng)建為一個(gè)css文件,然后每個(gè)網(wǎng)頁(yè)再單獨(dú)創(chuàng)建一個(gè)對(duì)應(yīng)的css文件。
實(shí)踐補(bǔ)充知識(shí)點(diǎn)
-
因?yàn)長(zhǎng)ogo相當(dāng)于是企業(yè)的門面,所以企業(yè)開發(fā)中一般都會(huì)采用好h1標(biāo)簽包裹a標(biāo)簽,然后給a標(biāo)簽設(shè)置背景圖片的方式來(lái)呈現(xiàn)Logo。
/*css代碼*/ h1{ width:100%; height:100%; } h1>a{ display:inline-block; width:100%; height:100%; background:url("Logo地址"); }/*html代碼*/ <h1><a href="" title="企業(yè)名稱"></a></h1> -
當(dāng)圖片的寬度大于父元素時(shí)(廣告圖)
- 不能使用
margin:0 auto;或者text-align:center;讓圖片居中。 - 可以使用定位流讓圖片居中,但是定位流的弊端也比較明顯:1.需要寫三行代碼;2.必須知道圖片的寬度。
- 推薦使用
margin:0 -100%;,但是使用這種方法的前提是父元素必須設(shè)置text-align:center;。因?yàn)閳D片過(guò)大,瀏覽器底部會(huì)有滾動(dòng)條,這時(shí)可以給父元素設(shè)置overflow:hidden;。
- 不能使用
-
伸縮布局?ul下面的li浮動(dòng)之后,使li之間的空隙均勻分布
display:flex; justify-content:space-berween; opacity:值;,這是給元素設(shè)置透明度(取值0~1)的,特點(diǎn)是該元素的子元素也會(huì)跟著透明。
