課程ppt連接css
css Level 3html
在css2.2以前,把css全部標準放在一塊兒去管理,這樣推動起來版本升級比較難,後來在css3的版本中,將css標準分紅幾個模塊來管理。css3
*
E
.class-name
#id_name
/* 具備某個屬性 */ [disabled] /* 屬性爲指定的值 */ [type="checkbox"] /* 屬性值包含某個字符串 */ [href*="example"] /* 屬性值以某個字符串開頭 */ [href^="http:"] /* 屬性值以某個字符串結束 */ [href$="jpg"] /* 屬性值以空格分割後包含某個字符串 */ [lang~="zh-cn"]
a:link { ... } /* 未訪問過的連接 */ a:visited { ... } /* 已訪問過的連接 */ a:hover { ... } /* 鼠標移到連接上的樣式 */ a:active { ... } /* 鼠標在鏈接上按下時的樣式 */ a:focus { ... } /* 得到焦點時的樣式 */ input:disabled { ... } /* 禁用時的樣式 */ input:checked { ... } /* 選中時的樣式 */
:first-child :last-child :nth-child :first-of-type :last-of-type :nth-of-type :empty
詳細介紹在mdn 選擇器文檔算法
後代組合器 E F 親子組合器 E > F 兄弟選擇器 E ~ F 相鄰兄弟 E + F
::before ::after ::first-letter ::first-line
<p>莫哈韋沙漠不只緯度較高,並且溫度要稍微低些,是命名該公園 的短葉絲蘭——<a href="#">約書亞樹</a>的特殊棲息地。約書亞 樹以從茂密的森林到遠遠間隔等各類形式出現。除了約書亞樹森林之 外,該公園的西部包括加州沙漠裏發現的最有趣的地質外觀。</p> <style> p { line-height: 1.7 } p::first-letter { line-height: 1.5; background: #F44336; color: #fff; font-size: 200%; float: left; padding: 0 0.2em; margin-right: 0.2em; } a::after { content: '⚓' } </style>
結果是這樣子的:chrome
::first-letter
把第一個文字選中,修改樣式。::after
把a標籤文字的最後面添加一個特殊文字。
實現一個toggleapi
<div class="toggle"> <input type="checkbox" checked id="t"> <label for="t"></label> </div> <style> .toggle { width: 80px; height: 26px; background: #333; margin: 20px auto; position: relative; border-radius: 50px; box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,0.2); } .toggle:after { content: 'OFF'; color: #fff; position: absolute; right: 10px; z-index: 0; font: 12px/26px Arial, sans-serif; font-weight: bold; text-shadow: 1px 1px 0px rgba(255,255,255,.15); } .toggle:before { content: 'ON'; color: #f66; position: absolute; left: 10px; z-index: 0; font: 12px/26px Arial, sans-serif; font-weight: bold; } .toggle label { display: block; width: 34px; height: 20px; cursor: pointer; position: absolute; top: 3px; left: 3px; z-index: 1; background: #fcfff4; background: linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); border-radius: 50px; transition: all 0.4s ease; box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.3); } .toggle input[type=checkbox] { visibility: hidden; } .toggle input:checked + label { left: 43px; } </style>
toggle演示:瀏覽器
缺點:緩存
解釋一下:服務器
特異度的算法是:ide
#nav .list li a:link
包含1個id標籤#nav
,1個class類.list
,1個僞類:link
,2個標籤a
和li
,因此它的特異度(權重)是 122.hd ul.links a
包含兩個class類.hd
和.links
,兩個元素ul
和a
,因此它的特異度是 22!important
!important
的屬性覆蓋,就須要給下面的優先級高的屬性也添加!important
就能夠了用戶樣式:能夠將設置後的樣式存在本地css文件中,打開頁面時自動加載
瀏覽器預設樣式:
根據規則來源,優先級從低到高:
根據規則來源,優先級從低到高:
- 單選題:關於標籤嵌套的正確說法是?
A. table標籤能夠直接嵌套tr
B. video中能夠嵌套img做爲視頻的封面圖片
C. button中不能包含其餘任何標籤
D. p標籤中能夠嵌套div答案:A
解析:video裏面能夠放track、source等標籤,封面圖用poster屬性,因此B是錯誤的
button裏面能夠嵌套標籤,如span標籤,但<input type='button'/>
是單標籤不能嵌套。
p是表明段落,裏面只能放段落內容,不包含div
<video>
<video>
的屬性
屬性 | 描述 |
---|---|
width | 視頻寬度 |
height | 視頻高度 |
controls | 顯示控制條 |
poster | 貼圖 |
autoplay | 自動播放 |
muted | 默認狀態下靜音 |
volume | 控制音量 |
preload | 預加載 |
loop | 循環播放 |
src | 資源路徑 |
currentSrc | 當前播放路徑 |
currentTime | 播放時間的控制 |
duration | 播放時長 |
volume 音量控制api
<video id="_volume" src="./test.mp4" width="200" height="200" muted preload controls autoplay></video> <script> // 獲取video元素 var v = document.getElementById("_volume"); // 音量範圍0-1,將音量設置爲50% v.volume = 0.5; </script>
currentTime 播放進度api
<!-- 播放時間控制 --> <video id="_currentTime" src="./test.mp4" width="200" height="200" muted preload controls autoplay></video> <script> var v = document.getElementById("_currentTime"); // 播放進度設置爲1分鐘 // currentTime的單位:秒 v.currentTime = 60; </script>
src 視頻資源api
<!-- 播放地址的切換 --> <video id="_src" src="./test.mp4" width="200" height="200" muted preload controls autoplay></video> <script> var v = document.getElementById("_src"); setTimeout(() => { // 兩秒後視頻資源切換爲test2.mp4 // 場景:當用戶選擇高清,普清時,經過src地址來切換清晰度 v.src = './test2.mp4' }, 2000); </script>
也能夠在video裏面嵌入source標籤, 經過currentSrc
獲取當前視頻播放地址
<video id="_source" width="200" height="200" controls> <source src="./video.mp4" type="video/mp4"> <!-- 備用地址 --> <source src="./video.mp4" type="video/mp4"> </video> <script> var v = document.getElementById("_source"); // 場景:經過遍歷source的地址,找到currentSrc地址前的地址,上傳錯誤地址到服務器 setTimeout(() => { console.log('當前播放的src', v.currentSrc) v.currentSrc = './test.mp4' }, 2000); </script>
<video>
的事件
事件 | 描述 |
---|---|
loadstart | 視頻播放時觸發 |
durationchange | 當視頻的時長數據發生變化時觸發 |
loadedmetadata | 視頻源數據加載完成 |
loadeddata | 當前幀的數據已加載,但沒有足夠的數據來播放指定視頻的下一幀觸發。 |
progress | 當瀏覽器正在下載指定的視頻時觸發 |
canplay | 視頻有幀播放時觸發 |
canplaythrough | 當瀏覽器預計可以在不停下來進行緩衝的狀況下持續播放指定的視頻時觸發 |
play | 視頻播放時觸發 |
pause | 視頻暫停時觸發 |
ended | 視頻播放完畢 (用途:向視頻添加廣告) |
seeking | 用戶在視頻中移動/跳躍到新的位置時觸發 |
seeded | 尋找資源完畢 |
waiting | 當視頻沒法繼續播放,且須要加載時觸發 |
timeupdate | 進度條進度每更新一次,觸發一次timeupdate 事件 |
error | 視頻出現錯誤 |
<video>
建立時,拿不到時長信息,所以在初始狀態下,duration
爲NaN
。
progress
(加載視頻資源)loadstart
(此時duration
爲NaN)progress
(瀏覽器加載視頻視頻, 可觸發屢次)durationchange
(此時duration
爲總時長)loadedmetadata
(視頻源數據加載完畢)loadeddata
(當前幀加載完畢)canplay
(視頻能夠播放,但沒有緩衝)progress
(瀏覽器加載視頻視頻, 可觸發屢次)canplaythrough
(視頻緩衝完畢, 能夠流暢的播放)progress
(瀏覽器自動緩存數據, 可觸發屢次)seeking
尋找資源progress
加載資源seeked
尋找完畢canplay
能夠播放當前幀canplaythrough
能夠連續播放seeking
尋找資源play
播放視頻progress
加載資源waiting
等待資源加載seeked
尋找完畢canplay
能夠播放當前幀playing
播放狀態下,資源加載完畢,視頻繼續播放canplaythrough
視頻有足夠的緩衝能夠持續播放