HTML5
HTML5和HTML事件
注意:行內代碼的為H5新增事件
Window事件屬性:
針對 window 物件觸發的事件(應用到 標簽)
onafterprint |
檔案列印之后運行的腳本 |
|---|---|
onbeforeprint |
檔案列印之前運行的腳本 |
onbeforeunload |
檔案卸載之前運行的腳本 |
onerror |
在錯誤發生時執行的腳本 |
onhaschange |
當檔案以改變時運行的腳本 |
| onload | 頁面結束加載之后觸發 |
onmessgae |
在訊息被觸發時運行的腳本 |
onoffline |
當檔案離線時運行的腳本 |
ononline |
當檔案上線時運行的腳本 |
onpagehide |
當視窗隱藏時運行的腳本 |
onpageshow |
當視窗成為可見時運行的腳本 |
onpagestate |
當視窗歷史記錄改時運行的腳本 |
onredo |
當檔案執行撤銷(redo)是運行的腳本 |
onresize |
當瀏覽器視窗被調整大小時觸發 |
onstorage |
在web Storage區域更新后運行的腳本 |
onundo |
在檔案執行undo時運行的腳本 |
| onunload | 一旦頁面已下載時觸發(或者瀏覽器視窗已被關閉), |
Form事件
由HTML表單內的影片觸發的時間,應用到幾乎所有HTML元素,但最常用在form元素中
| onblur | 元素失去焦點時運行 |
|---|---|
| onchange | 元素值被改變時運行 |
oncontextmenu |
當背景關系選單被觸發時運行 |
| onfocus | 當元素活的焦點時運行 |
onformchange |
在表單改變時運行 |
onforminput |
當表單獲得用戶輸入時運行 |
oninput |
當元素獲得用戶輸入時運行 |
oninvalid |
當元素無效時運行 |
| onreset | 當表單中的重置按鈕被點擊時運行 |
| onselect | 在元素中文本被選中后觸發 |
| onsubmit | 在提交表單時觸發 |
keyboard事件
| onkeydown | 按下按鍵時觸發 |
|---|---|
| onkeypress | 用戶敲擊按鈕是觸發 |
| onkeyup | 釋放按鍵時觸發 |
Mouse事件
由滑鼠或類似用戶動作觸發
| onclick | 元素上發生滑鼠點擊時觸發 |
|---|---|
| ondblclick | 元素上發生滑鼠雙擊時觸發 |
ondrag |
元素被拖動時運行的腳本 |
ondragend |
在拖動操作末端運行的腳本 |
ondragenter |
當元素已被拖動到有效拖放區域時運行的腳本 |
ondragleave |
當元素離開有效有效拖放區域時運行 |
ondragover |
當元素在拖放目標上正在被拖動時運行 |
ondragstart |
當拖動操作開始時運行 |
ondrop |
當被拖元素正在被拖放時運行(釋放滑鼠) |
| onmousedown | 當元素上按下滑鼠按鈕時觸發 |
| onmousemove | 當滑鼠指標移到元素上時觸發 ,持續觸發 |
| onmouseout | 當滑鼠指標移出元素時觸發 |
| onmouseover | 當滑鼠指標移到元素上時觸發,剛進入時觸發 |
| onmouseup | 當在元素上釋放滑鼠按鈕時觸發 |
onmousewheel |
當滑鼠滾輪正在被滾動式運行 |
onscroll |
當元素滾動條被滾動時運行的腳本 |
Media事件
有媒介,比如視頻影像和音頻處罰的事件,適用于所有HTML元素,但常見于媒介元素中
| onabort | 在退出時運行的腳本 |
|---|---|
oncanplay |
當檔案就緒可以開始播放是觸發 |
oncanplaythrough |
當媒介能夠無需因緩沖而停止即可播放至結尾是運行 |
ondurationchange |
當媒介長度改變時運行 |
onemptied |
當發生故障并且檔案突然不可能用時觸發 |
onended |
當媒介已經到達結尾時運行的腳本 |
onerror |
當在檔案加載期間發生錯誤時運行的腳本 |
onloadeddate |
當媒介資料已加載時運行的腳本 |
onloadedmetadata |
當元資料被加載時( 比如解析度和時長)運行 |
onloadstart |
檔案開始加載且未實際加載任何資料前運行 |
onpause |
當媒介被用戶或程式暫停時運行 |
onplaying |
當媒介就緒可以開始播放時運行 |
onprogress |
當瀏覽器正在獲取媒介資料時運行 |
onratechange |
每當回放速率改變時運行的腳本 |
onreadystatechange |
每當就緒狀態改變時運行的腳本 |
onseeked |
當seeking屬性設定為false是運行 指示定位已結束 |
onseeking |
當seeking屬性設定為true是運行 指示定位是活動的 |
onstalled |
在瀏覽器不存何種原因未能取回媒介資料時運行 |
onsuspend |
當媒介資料完全接在之前不論何種原因終止取回媒介資料時運行 |
ontimeupdate |
當播放位置改變時運行的腳本,包括將音量設定為靜音 |
onvolumechange |
當音量改變時運行 |
onwaiting |
當媒介已停止播放但打算繼續播放時 |
input的type屬性值
HTML
| button | 按鈕 |
|---|---|
| checkout | 復選框 |
| file | 檔案上傳 |
| hidden | 定義隱藏的輸入欄位 |
| image | 定義影像形式的提交按鈕 |
| password | 定義密碼欄位 |
| radio | 單選按鈕 |
| reset | 重置按鈕 |
| submit | 提交按鈕 |
| text | 輸入欄位 |
HTML5
color |
拾色器 |
|---|---|
data |
日期欄位 |
datatime |
日期欄位 |
datatime-local |
日期欄位 |
month |
日期欄位的月 |
week |
日期欄位周 |
time |
日期欄位時分秒 |
email |
定義用于e-mail地址的文本欄位 |
number |
定義帶有spinner控制元件的數字欄位 |
range |
帶有slider控制元件的數字欄位,取值范圍 |
search |
用于搜索的文本欄位 |
tel |
定義用于電話號碼的文本欄位 |
url |
定義用于URL的文本欄位 |
HTML5離線儲存
拖拽釋放
拖拽是H5中非常常見的功能,為了讓元素可以拖動需要添加
draggable屬性
注意:鏈接和圖片是默認可拖動的 不需要額外添加draggable屬性
- 在拖拽目標上觸發事件(源元素):
ondragstart:開始拖動元素時觸發ondrag:元素正在拖動時觸發ondragend:用戶完成元素拖拽后觸發
- 釋放目標時觸發的事件(目標元素):
ondragenter:當被滑鼠拖動的物件進入其容器范圍內觸發ondragover:當某被拖動的物件在另一物件容器范圍內拖動時觸發- 注意:在拖動元素時,每隔 350 毫秒會觸發
ondragover事件,
- 注意:在拖動元素時,每隔 350 毫秒會觸發
ondragleave:當被滑鼠拖動的物件離開其容器范圍內觸發ondrop:在一個拖動程序中,釋放滑鼠時觸發
自定義屬性 data-id
方便的保存并適用資料
-
設定自定義屬性:
element.setAttribute(name, value); -
獲取自定義屬性:
element.getAttribute(name, value); -
從指定的元素中洗掉一個屬性:
removeAttribute()
H5新增獲取方法:dataset
<div id="one" data-wenbo="yiran" ></div>
var one = document.getElementById('one')
console.log(one.dataset.wenbo) //yiran
one.dataset.wenbo = 'wenbo'
console.log(one.dataset.wenbo) //wenbo
語意化標簽
header:section或page頁眉nav:導航連接footer:section或page頁腳aside:頁面內容之外的內容article:文章section:section,部分
音頻視頻
audio和video
- 自動播放:在標簽屬性中添加autoplay
- 音頻視頻相關方法,屬性以及事件
畫布Canvas
canvas 標簽定義圖片
canvas本身是沒有繪圖能力的,所有的繪制作業必需在JavaScript內部完成
image 是通過物件的形式描述圖片的,canvas 通過專門的 API 將圖片繪制在畫布上.
<canvas id="canvas"></canvas>
<script>
var c = document.getElementById('canvas')
// 畫一個矩形
var ctx = c.getContext('2d')
ctx.fillStyle = '#ccc'
ctx.fillRect(0, 0, 100, 150)
// 畫一個直線
ctx.moveTo(0, 0)
ctx.lineTo(200, 200)
ctx.stroke();
</script>
Canvas相關方法,屬性
地理位置API Geolocation
navigator.geolocation.getCurrentPosition():獲取用戶當前位置,傳參是兩個回呼函式,一個成功時,一個失敗時
- Geolocation物件其他方法:
watchPosition():回傳用戶的當前位置,并繼續回傳用戶移動時的更新位置,clearWatch():停止watchPosition()方法
navigator.geolocation.getCurrentPosition((res) => {
console.log('獲取用戶位置成功:', res)
}, (err) => {
console.log('獲取失敗,錯誤資訊:', err)
})
localStorage和sessionStorage
localStorage:存盤大小5M左右,資料可長期保存在本地,同源域名視窗中共享資料,sessionStorage:存盤大小5M左右,與localStorage類似,但是儲存資料僅當前視窗有效,關閉視窗自動洗掉,
H5 瀏覽器存盤
cookielocalStoragesessionStorageindexedDBWebSQLwindow變數
表單控制元件
email:郵箱url:連接number:數字range:范圍選擇Date pickers:日期時間選擇data month week time datetime datetime-local
search:搜索color:顏色選擇
新的技術web worker 和web socket
Web Worker
Web Worker 適用教程
為JavaScript創造多執行緒環境,允許在主執行緒穿件worker執行緒,將一些任務分配給后者運行,在主執行緒運行的同時,Worker執行緒在后臺運行,兩者互不干擾,當Worker執行緒完成計算任務,再把結果回傳給主執行緒,
注意:Worker執行緒一旦新建成功,就會始終運行,不會被主執行緒上的活動打斷,在使用完畢后,需要及時關閉,
Web Socket
HTML5提供的一種在單個TCP連接上進行全雙工通訊的協議,
Web Socket使得客戶端和服務器之間的資料交換變得更加簡單,允許服務器端主動向客戶端推送資料,在WebSocket API中,瀏覽器和服務器只需要完成一次握手,兩者之間就直接可以創建持續性的連接,并進行雙向資料傳輸,**
CSS3
顏色:新增RGBA,HSLA模式
- RGBA:
background-color: rgba(179, 133, 133, 0.5); - HSLA:
background-color: hsla(120, 60%, 70%, 0.3)hsla(hue, saturation, lightness, alpha):hue:色相,色彩的基本屬性,平常所說的顏色,saturation:飽和度,色彩的純度,越高色彩越純,低則逐漸變灰,取值0-100%lightness:亮度,增加亮度,顏色會向白色變化,減少會向黑色變化,取值0-100%,alpha:透明度,取值0-1之間,代表透明度,
文字陰影
text-shadow: h-shadow v-shadow blur color;h-shadow:必需,水平陰影的位置,允許負值v-shadow:必需,垂直陰影的位置,允許負值blur:可選,模糊的距離color:可選,陰影的顏色
邊框陰影
box-shadow: h-shadow v-shadow blur color;
圓角
border-radius:左上 右上 右下 左下;
盒子模型
盒子模型包括:外邊框margin,邊框border,內邊框padding,和內容content
背景相關
background-size:指定背景圖片的大小- 語法:
background-size: length|percentage|cover|contain;
-length:設定圖片寬高,第一個值寬度第一個值高度,如只有一個值,第二個值設定為auto
-percentage:百分比設定寬高,
-cover:保持影像縱橫比將影像縮放成完全覆寫背景定位區域的最小大小
-contain:保持影像縱橫比將影像縮放成完全覆寫背景定位區域的最大大小 background-origin:規定圖片相對于什么位置來定位- 語法:
background-origin: padding-box|border-box|content-box;
-padding-box:背景相對于內邊框來定位(默認)
-boder-box:背景相對于邊框盒來定位
-content-box:背景相對于內容框來定位 background-clip:規定背景的繪制區域- 語法:
background-clip: border-box|padding-box|content-box;
-padding-box:背景被剪切到邊框盒
-boder-box:背景被剪切到內邊框盒
-content-box:背景被剪切到內容框
漸變
線性漸變
- 語法:
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);direction:方向角度 單位degcolor-stop1,color-stop2,...:漸變顏色,可以有多個顏色節點
重復線性漸變:
background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
徑向漸變
- 語法:
background-image: radial-gradient(shape size at position, start-color, ..., last-color);shape:形狀,可以是circle或ellipsesize:漸變大小:引數有closest-side,farthest-side,closest-corner,farthset-corner
例如:
background-image: radial-gradient(circle, red, yellow, green);
background-image: radial-gradient(circle at 100% 100%, red, yellow, green);
background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);
重復徑向漸變
background-image: repeating-radial-gradient(red, yellow 10%, green 15%);
過度
transition:過渡允許在規定時間內平滑的改變屬性值- 過渡可以連寫,一個
transition寫多個過渡, transition:過渡簡寫,一個屬性中設定四個過渡屬性transition-property:規定應用過渡的的CSS屬性名稱transition-duration:定義過渡效果花費的時間、transition-timing-function:規定過渡效果的時間曲線,linear,ease,ease-in,ease-out,ease-in-out,cubic-bezoer(n,n,n,n)
transition-delay:規定過渡效果何時開始,以秒或者毫秒計
- 過渡可以連寫,一個
自定義影片
animation:- 語法:
animation: name duration timing-function delay iteration-count direction fill-mode play-state;animation-name:指定要系結到選擇器的關鍵幀的名字animation-duration:影片指定需要多少秒或多少毫秒完成animation-timing-function:設定影片如何完成一個周期animation-delay:設定影片在啟動前的延遲間隔animation-iteration-count:定義影片播放的詞素animation-direction:是否應該輪流反向播放影片animation-fill-mode:當影片不播放時,要應用到元素的樣式animation-play-state:指定影片是否再整運行或已暫停@keyframes:創建影片,指定一個CSS樣式和影片將逐步從目前的樣式更改為新的樣式
@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}
@-webkit-keyframes myfirst /* Safari 與 Chrome */
{
from {background: red;}
to {background: yellow;}
}
使用:
animation: myfirst 5s;
-webkit-animation: myfirst 5s; /* Safari 與 Chrome */
媒體查詢
- 針對不同的媒體型別(根據螢屏大小)定義不同的樣式,
- 語法:
@media mediatype and|not|only (media feature) {CSS-Code;}mediatype:媒體型別print:列印機和列印預覽screen:用于電腦螢屏,平板電腦,智能手機speech:應用于螢屏閱讀器等發聲設備
//如果檔案寬度小于 300 像素則修改背景顏色(background-color):
@media screen and (max-width: 300px) {
body {
background-color:lightblue;
}
}
邊框圖片
語法:border-image: source slice width outset repeat|initial|inherit;
transform
transform:
2D轉換:
translate(X,Y):從當前位置移動元素到指定位置rotate(deg):根據給定角度旋轉元素scale(X,Y):增加或減少元素默認值1scaleX(X):增加或減少元素寬度scaleY(Y):增加或減少元素高度skewX(X):使元素沿X軸傾斜給定角度skewY(Y):使元素沿Y軸傾斜給定角度skew(X,Y):使元素沿X,Y軸傾斜給定角度matrix():把所有2D變換合成為一個matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
3D轉換:
rotate3d(x,y,z,angle)rotateX(deg):使元素繞其X軸旋轉rotateY(deg):使元素繞其Y軸旋轉rotateZ(deg):使元素繞其Z軸旋轉translate3d(x,y,z)translateX(x):移動用于X軸translateY(y):移動用于Y軸translateZ(z):移動用于Z軸scale3d(x,y,z):3D縮放scaleX(x)scaleY(y)scaleZ(z)
transform其他相關樣式
transform-style:指定嵌套元素是怎樣在三維空間中呈現,- flat:所有子元素再2D平面呈現
- preserve-3d:表示所有子元素再3D空間中呈現
transform-origin:設定元素轉換中心點- X軸
- Y軸
- Z軸
字體圖示
特殊的一種字體,通過這種字體顯示給用戶的就像一個個圖片一樣
優點:不會變形,加載速度快,可以使用CSS來控制它的大小和顏色,
以阿里iconfont為例:
unicode參考
unicode是字體再網頁端最原始的應用方式
- 優點:
- 兼容行最好,支持ie6+,及所有現代瀏覽器
- 支持按字體的方式去動態調整圖表達大小顏色
- 缺點:
- 不支持多色,多色圖示會自動取色
- 使用步驟:
- 第一步:拷貝專案下面生成的
font-face
- 第一步:拷貝專案下面生成的
@font-face {font-family: 'iconfont';
src: url('iconfont.eot');
src: url('iconfont.eot?#iefix') format('embedded-opentype'),
url('iconfont.woff') format('woff'),
url('iconfont.ttf') format('truetype'),
url('iconfont.svg#iconfont') format('svg');
}
//支持網路地址
@font-face {
font-family: 'iconfont';
src: url('//at.alicdn.com/t/font.eot');
src: url('//at.alicdn.com/t/font.eot?#iefix') format('embedded-opentype'),
url('//at.alicdn.com/t/font.woff2') format('woff2'),
url('//at.alicdn.com/t/font.woff') format('woff'),
url('//at.alicdn.com/t/font.ttf') format('truetype'),
url('//at.alicdn.com/t/font.svg#iconfont') format('svg');
}
- 第二步:定義使用iconfont的樣式
.iconfont{
font-family:"iconfont" !important;
font-size:16px;font-style:normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}
- 第三步:挑選相應圖示并獲取字體編碼,應用于頁面
<i >3</i>
font-class參考
font-class是unicode使用方式的一種變種,主要是解決unicode書寫不直觀,語意不明確的問題,
- 與unicode相比,優點:
- 兼容性良好,支持ie8+,及所有現代瀏覽器,
- 相比于unicode語意明確,書寫更直觀,可以很容易分辨這個icon是什么,
- 因為使用class來定義圖示,所以當要替換圖示時,只需要修改class里面的unicode參考,
- 缺點:
- 本質上還是使用的字體,所以多色圖示還是不支持的,
- 使用步驟:
- 第一步:拷貝專案下面生成的fontclass代碼
//at.alicdn.com/t/font_8d5l8fzk5b87iudi.css
- 第二步:挑選相應圖示并獲取類名,應用于頁面
<i ></i>
symbol參考
全新的使用方式,應該說這才是未來的主流,也是平臺目前推薦的用法,
- 這種用法其實是做了一個svg的集合,與上面兩種相比具有如下特點:
- 支持多色圖示了,不再受單色限制,
- 通過一些技巧,支持像字體那樣,通過font-size,color來調整樣式,
- 缺點:
- 兼容性較差,支持 ie9+,及現代瀏覽器,
- 瀏覽器渲染svg的性能一般,還不如png,
- 使用步驟:
- 第一步:拷貝專案下面生成的symbol代碼:
//at.alicdn.com/t/font_8d5l8fzk5b87iudi.js
- 第二步:加入通用css代碼(引入一次就行):
<style type="text/css">
.icon {
width: 1em; height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
- 第三步:挑選相應圖示并獲取類名,應用于頁面:
<svg aria-hidden="true">
<use xlink:href="https://www.cnblogs.com/yevin/p/#icon-xxx"></use>
</svg>
彈性布局
flex:CSS3的一種全新布局
提供一種更有效的方式來對一個容器中的子元素進行排列,對其和分配空白空間
flex-direction:指定子元素在父容器中的位置(用來調整主軸的方向)row:橫向從左到右排列(默認)row-reverse:翻轉橫向排列,從后往前排column:縱向排列column-reverse:反轉縱向排列,從后往前排
justif-content:內容對其,元素在彈性容器上的對其方式(主軸)flex-start:默認值,所有元素在開始位置緊挨著填充flex-end:所有元素在尾部緊挨著填充center:容器內元素居中緊挨著布局space-between:平均分布在改行上,兩邊緊挨著容器space-around:平均分布在改行上,兩邊留有一半的間隔空間
align-items:設定元素在側軸方向的對其方式flex-start:默認值,側軸的開始位置對其flex-end:側軸的結束位置對其center:中間位置對其baseline:基線對其,不會拉伸高度stretch:拉伸對其,子元素不用設定高度
flex-wrap:指定彈性盒子的子元素換行方式nowrap:默認,不換行,會溢位容器wrap:換行wrap-reverse:反轉wrap排列
align-content:子元素在側軸的對其方式(多行模式)stretch- 默認,各行將會伸展以占用剩余的空間,flex-start- 各行向彈性盒容器的起始位置堆疊,flex-end- 各行向彈性盒容器的結束位置堆疊,center-各行向彈性盒容器的中間位置堆疊,space-between-各行在彈性盒容器中平均分布,space-around- 各行在彈性盒容器中平均分布,兩端保留子元素與子元素之間間距大小的一半,
align-self:自身在側軸方向的對齊方式auto:如果'align-self'的值為'auto',則其計算值為元素的父元素的'align-items'值,如果其沒有父元素,則計算值為'stretch',flex-start:彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸起始邊界,flex-end:彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸結束邊界,center:彈性盒子元素在該行的側軸(縱軸)上居中放置,(如果該行的尺寸小于彈性盒子元素的尺寸,則會向兩個方向溢位相同的長度),baseline:如彈性盒子元素的行內軸與側軸為同一條,則該值與flex-start等效,其它情況下,該值將參與基線對齊,stretch:如果指定側軸大小的屬性值為auto,則其值會使專案的邊距盒的尺寸盡可能接近所在行的尺寸,但同時會遵照min/max-width/height屬性的限制,
- 彈性布局子元素屬性:
order:用整數來定義排列書序,數值小的排在前面margin:設定為auto時可以在兩軸上水平居中flex:指定彈性子元素如何分配空間
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/276591.html
標籤:Html/Css
上一篇:unapp一鍵登錄
