javascript
前端学习 HTML5和CSS3新特性 高级技巧 JavaScript基础语法
HTML5和CSS3提高
HTML5的新特性
HTML5的新增特性主要是針對(duì)于以前的不足,增加了一些新的標(biāo)簽,新的表單和新的表單屬性等;
這些新特性都有兼容性問(wèn)題,基本是IE9+以上的版本瀏覽器才支持,如果不考慮兼容性問(wèn)題,可以大量使用這些新特性;
HTML5新增的語(yǔ)義化標(biāo)簽
之前布局,基本用div來(lái)做,div對(duì)于搜索引擎來(lái)說(shuō),是沒(méi)有語(yǔ)義的;
<header>:頭部標(biāo)簽
<nav>:導(dǎo)航標(biāo)簽
<article>:內(nèi)容標(biāo)簽
<section>:定義文檔某個(gè)位置
<aside>:側(cè)邊欄標(biāo)簽
<footer>:尾部標(biāo)簽
注意:
這種語(yǔ)義化標(biāo)簽主要是針對(duì)搜索引擎的;
這些新標(biāo)簽,頁(yè)面中可以使用多次
在IE9中,需要把這些元素轉(zhuǎn)換為塊級(jí)元素
移動(dòng)端更喜歡使用這些標(biāo)簽
HTML5還增加了許多標(biāo)簽
HTML5新增的多媒體標(biāo)簽
使用他們可以很方便的在頁(yè)面中嵌入音頻和視頻,而不再使用flash和其他瀏覽器插件,主要包含兩個(gè):
當(dāng)前<audio>標(biāo)簽支持三種視頻格式:MP3,Wav,Ogg,盡量使用MP3格式
<audio src="URL" controls="controls"> </audio>
audio常見(jiàn)屬性:
autoplay="autoplay" 音頻就緒自動(dòng)播放(谷歌禁用)
controls="controls" 向用戶顯示播放控件
loop="loop" 播放完是否繼續(xù)播放該音頻,循環(huán)播放
src="URL" 音頻URL
2. 視頻標(biāo)簽<video>
當(dāng)前<video>標(biāo)簽支持三種視頻格式:MP4,WebM,Ogg,盡量使用MP4格式
<video src="URL" controls="controls"> </video>
video常見(jiàn)屬性:
autoplay="autoplay" 視頻就緒自動(dòng)播放(谷歌禁用,谷歌瀏覽器需要添加muted來(lái)解決自動(dòng)播放問(wèn)題)
controls="controls" 向用戶顯示播放控件
width="像素" 設(shè)置播放器寬度
height="像素" 設(shè)置播放器高度
loop="loop" 播放完是否繼續(xù)播放該視頻,循環(huán)播放
preload="auto/none" 預(yù)先加載視頻/不預(yù)先加載(有autoplay屬性時(shí)會(huì)忽略該屬性)
src="URL" 視頻URL
poster="imgURL" 加載等待的畫面圖片
muted="muted" 靜音播放
HTML5新增的input表單
驗(yàn)證的時(shí)候必須添加form表單域,點(diǎn)擊提交按鈕就可以驗(yàn)證表單;
type="email":限制用戶輸入必須為Email類型
type="url":限制用戶輸入必須為URL類型
type="date":限制用戶輸入必須為日期類型
type="time":限制用戶輸入必須為時(shí)間類型
type="month":限制用戶輸入必須為月類型
type="week":限制用戶輸入必須為周類型
type="number":限制用戶輸入必須為數(shù)字類型
type="tel":手機(jī)號(hào)碼
type="search":搜索框
type="color":生成一個(gè)顏色選擇表單
HTML5新增的input表單屬性
required="required":必填,不能為空
placeholder="":提示文本,存在默認(rèn)值時(shí)不顯示
修改顏色:
input::placehoder { color: pink;}
autofocus="autofocus":自動(dòng)聚焦
autocomplete="off/on":當(dāng)用戶在字段開(kāi)始輸入時(shí),瀏覽器基于之前輸入過(guò)的值,應(yīng)該顯示出在字段中填寫的選項(xiàng)。默認(rèn)已打開(kāi),需要放在表單內(nèi),同時(shí)加上name屬性,同時(shí)成功提交
multiple="multiple":可以多選文件提交
CSS3的新特性
CSS3現(xiàn)狀
新增的CSS3特性有兼容性問(wèn)題,ie9+才支持
移動(dòng)端支持優(yōu)于PC端
不斷改進(jìn)中
應(yīng)用相對(duì)廣泛
現(xiàn)階段主要學(xué)習(xí):新增選擇器,盒子模型以及其它特性
新增選擇器
屬性選擇器(類選擇器,屬性選擇器,偽類選擇器,權(quán)重都是0.0.1.0)
屬性選擇器可以根據(jù)元素特定屬性來(lái)選擇元素,這樣可以不借助類或者id選擇器。
E[att]:選擇具有att屬性的E元素
E[att="val"]:選擇具有att屬性且屬性值等于val的E元素
E[att^="val"]:選擇具有att屬性且屬性值以val開(kāi)頭的E元素
E[att$="val"]:選擇具有att屬性且屬性值以val結(jié)尾的E元素
E[att*="val"]:選擇具有att屬性且屬性值含有val的E元素
結(jié)構(gòu)偽類選擇器
結(jié)構(gòu)偽類選擇器主要根據(jù)文檔結(jié)構(gòu)來(lái)選擇元素,常用語(yǔ)根據(jù)父級(jí)選擇器里面的子元素
E :first-child:匹配父元素中的第一個(gè)子元素E
ul li:frist-chlid(權(quán)重0.0.1.2)
E :last-child:匹配父元素的最后一個(gè)E元素
E :nth-child(n):匹配父元素中的第n個(gè)子元素E,n可以是數(shù)字(從1開(kāi)始),關(guān)鍵字(even偶數(shù)/odd奇數(shù))和公式(里面只能是n字母,從0開(kāi)始,3n,2n,n+1(第一個(gè)后面),-n+5(前5個(gè)))
E :first-of-type:指定類型E的第一個(gè)
E :last-of-type:指定類型E的最后一個(gè)
E :nth-of-type(n):指定類型E的第n個(gè)
區(qū)別:
nth-child會(huì)把所有的子元素排序號(hào),先看序號(hào),之后看前面的E,全部匹配才能選擇出來(lái);
nth-type-of會(huì)把指定元素的盒子排列序號(hào);
偽元素選擇器
利用CSS創(chuàng)建新標(biāo)簽元素,而不需要HTML標(biāo)簽,簡(jiǎn)化HTML結(jié)構(gòu)(遮罩層,等)
::before:在元素內(nèi)部前面插入內(nèi)容
::after:在元素內(nèi)部后面插入元素
注意:
before和after創(chuàng)建一個(gè)元素,但是屬于行內(nèi)元素
新創(chuàng)建的這個(gè)元素在文檔樹(shù)中找不到,所以稱為偽元素
語(yǔ)法element::before{}
before和after必須有content屬性
before在父元素內(nèi)容的前面創(chuàng)建元素,after在父元素內(nèi)容后面插入元素
偽元素選擇器和標(biāo)簽選擇器一樣,權(quán)重為0.0.0.1
CSS3盒子模型
box-sizing: content-box/boder-box;
content-box:盒子實(shí)際大小等于原大小+padding+border(默認(rèn))
boder-box:盒子實(shí)際大小等于指定大小
圖片模糊
filter: 函數(shù)();濾鏡
eg: filter: blur(5px);:blur模糊處理,數(shù)值越大越模糊;
calc函數(shù)(計(jì)算)
width: calc(100%-80px);'+-*/':可計(jì)算
過(guò)渡:
不使用flash,JS,經(jīng)常和:hover一起使用,
transition:要過(guò)渡的屬性 花費(fèi)時(shí)間 運(yùn)動(dòng)曲線 何時(shí)開(kāi)始;
屬性:想要變化的CSS屬性,寬高,背景顏色,內(nèi)外邊距等,所有:all;
花費(fèi)時(shí)間:單位秒
運(yùn)動(dòng)曲線:默認(rèn)ease(漸慢),liner(勻速),ease-in(加速),ease-out(加速),ease-in-out(先加速后減速)(可以忽略)
何時(shí)開(kāi)始:延遲觸發(fā),默認(rèn)0s(可忽略)
誰(shuí)做過(guò)渡給誰(shuí)加
JavaScript
JavaScript是一種運(yùn)行在客戶端的腳本語(yǔ)言(Script腳本);
腳本語(yǔ)言:不需要編譯 ,運(yùn)行過(guò)程中由js解釋器(js引擎)逐行進(jìn)行解釋并執(zhí)行;
現(xiàn)在也可以基于Node.js技術(shù)進(jìn)行服務(wù)器端編程;
JavaScript的作用
- 表單動(dòng)態(tài)校驗(yàn)(密碼強(qiáng)度檢測(cè))(JS產(chǎn)生的最初目的)
- 網(wǎng)頁(yè)特效
- 服務(wù)端開(kāi)發(fā)(Node.js)
- 桌面程序(Electron)
- APP(Cordova)
- 控制硬件-物聯(lián)網(wǎng)(Ruff)
- 游戲開(kāi)發(fā)(cocos2d-js)
HTML/CSS/JS的關(guān)系
HTML決定網(wǎng)頁(yè)結(jié)構(gòu)和內(nèi)容–身體
CSS決定網(wǎng)頁(yè)呈現(xiàn)給用戶的模樣–衣服
實(shí)現(xiàn)業(yè)務(wù)邏輯和頁(yè)面控制(決定功能)–動(dòng)作
瀏覽器執(zhí)行JS過(guò)程
瀏覽器分為兩部分:渲染引擎和JS引擎
渲染引擎:用來(lái)解析HTML與CSS,俗稱內(nèi)核,比如chrome瀏覽器的blink,老版本的webkit;
JS引擎:也稱為JS解釋器,用來(lái)讀取網(wǎng)頁(yè)中的JavaScript代碼,對(duì)其處理后運(yùn)行,比如chrome瀏覽器的V8;
瀏覽器本身并不會(huì)執(zhí)行JS代碼,而是通過(guò)內(nèi)置JavaScript引擎來(lái)執(zhí)行JS代碼,JS引擎執(zhí)行代碼時(shí)逐行解釋每一句源碼,然后由計(jì)算機(jī)去執(zhí)行,所以JavaScript語(yǔ)言歸腳本語(yǔ)言,會(huì)逐行解釋執(zhí)行;
JS的組成
ECMAScript是由ECMA國(guó)際(原歐洲計(jì)算機(jī)制造商協(xié)會(huì))進(jìn)行標(biāo)準(zhǔn)化的一門編程語(yǔ)言,這種語(yǔ)言在萬(wàn)維網(wǎng)上應(yīng)用廣泛,往往被稱為JavaScript(網(wǎng)景公司,艾奇)或JScript(微軟公司),但實(shí)際上后兩者是ECMAScript語(yǔ)言的實(shí)現(xiàn)和擴(kuò)展;
ECMAScript規(guī)定了JS的編程與法和基礎(chǔ)核心知識(shí),是所有瀏覽器廠商共同遵守的一套JS語(yǔ)法工業(yè)標(biāo)準(zhǔn);
2. DOM(頁(yè)面文檔對(duì)象模型)
文檔對(duì)象模型(Document Object Model,簡(jiǎn)稱DOM),是W3C組織推薦的處理可擴(kuò)展標(biāo)記語(yǔ)言的標(biāo)準(zhǔn)編程接口。通過(guò)DOM提供的接口可以對(duì)頁(yè)面上的各種元素進(jìn)行操作(大小,位置,顏色等);
3. BOM(瀏覽器對(duì)象模型)
瀏覽器對(duì)象模型(Browser Object Model,簡(jiǎn)稱BOM),是指瀏覽器對(duì)象模型,它提供了獨(dú)立于內(nèi)容的,可以與瀏覽器窗口進(jìn)行互動(dòng)的對(duì)象結(jié)構(gòu)。通過(guò)BOM可以操作瀏覽器窗口,比如彈出框,控制瀏覽器跳轉(zhuǎn),獲取分辨率等;
JS學(xué)習(xí)
書寫位置
JS有3種書寫位置:
直接寫到元素內(nèi)部
<input type="button" value="唐伯虎" onclick="alert('秋香姐')">
<script> </script>
<script src="URL"> </script>
注釋
輸入輸出
alert(msg):瀏覽器彈出警示框;
console.log(msg):瀏覽器控制臺(tái)打印輸出;
var info = prompt(info);:瀏覽器彈出輸入框;
###變量
申請(qǐng)空間存放變量;
先聲明再賦值;
var name;
name = 10;
直接初始化;
var name = 18;
多個(gè)變量初始化:
默認(rèn)值為undefined(未定義);
字母,數(shù)字,_,$組成,區(qū)分大小寫,不能以數(shù)字開(kāi)頭,不能是關(guān)鍵字,駝峰命名法(myFristName)
###數(shù)據(jù)類型
弱類型語(yǔ)言,動(dòng)態(tài)語(yǔ)言:數(shù)據(jù)類型不確定,運(yùn)行過(guò)程中動(dòng)態(tài)分配,程序運(yùn)行時(shí)同一個(gè)變量數(shù)據(jù)類型可變;
簡(jiǎn)單數(shù)據(jù)類型(默認(rèn)值):Number(0),String(“”),Boolean(false),Undefined(undefined),Null(null);
復(fù)雜數(shù)據(jù)類型:object;
Number:
八進(jìn)制:010;(0開(kāi)頭)
十六進(jìn)制:0x1f;(0x開(kāi)頭)
最大值:Number.MAX_VALUE;//1.7976931348623157e+308
最小值:Number.MIN_VALUE;//5e-324
(負(fù))無(wú)窮大:(-)Infinity;
非數(shù)值:NaN;
判斷是否是數(shù)字:isNaN(參數(shù));
String:
任意文本:‘’(推薦)/“”;
JS可以單引號(hào)雙引號(hào)互相嵌套:外雙內(nèi)單,外單內(nèi)雙
轉(zhuǎn)義符:
\n,\,',",\t,\b(空格)
str.lenth;
str1+str2/Number;只要有一個(gè)字符串都可以拼接;
‘12’+12=‘1212’
Boolen:
true參與加法運(yùn)算當(dāng)1,flase:0;
Undefined,Null:
null+‘1’=null1
typeof var:得到數(shù)據(jù)類型;
prompt得到的是字符型;
轉(zhuǎn)換數(shù)據(jù)類型:
num.toString();
String(num);
1+‘’;隱式轉(zhuǎn)換
parseInt(string);整數(shù)數(shù)值/取整/去掉字符單位(120px)
parseFlost(string);浮點(diǎn)數(shù)數(shù)值/去單位
Number(string);強(qiáng)制轉(zhuǎn)換
-
- / ‘12’-0;隱式轉(zhuǎn)換
總結(jié)
以上是生活随笔為你收集整理的前端学习 HTML5和CSS3新特性 高级技巧 JavaScript基础语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么做消防安全知识教育培训PPT课件?
- 下一篇: ASP.NET MVC Areas