H5的新特性:
① 語義特性
HTML5賦予網頁更好的意義和結構。
HTML5 提供了定義頁面不同部分的新語義元素:
<article><aside><details><figcaption><figure><footer><header><main><mark><nav>
<section>:定義大塊的內容,如文章區塊或者某個重要表單。區塊可以有他們自己的標題、導航及頁腳。
<summary>
<time>可以快速把日期和時間按照自己選定的格式呈現。若設置了datetime屬性,那麼<time>元素內容就可以是任何想用的文本,如果沒有設置datetime屬性,<time>元素的日期和時間就必須採用有效的格式。
< title>簡短、描述性、唯一(提升搜索引擎排名)。
搜索引擎會將title作爲判斷頁面主要內容的指標,有效的title應該包含幾個與頁面內容密切相關的關鍵字,建議將title核心內容放在前60個字符中。
<hn><header><nav>
html5規範不推薦對輔助性頁腳鏈接使用nav,除非頁腳再次顯示頂級全局導航、或者包含招聘信息等重要鏈接。
<main><article><section><aside><footer><small>
<strong><em><mark><b><figure><figcaption><cite>
<blockquoto><q><time><abbr>
abbr[title]{ border-bottom:1px dotted #000; }
<dfn>定義術語元素,與定義必須緊挨着,可以在描述列表dl元素中使用。
<del>移除的內容。
<ins>添加的內容。少有的既可以包圍塊級,又可以包圍短語內容的元素。
<code>標記代碼。包含示例代碼或者文件名 (< < > >)
<pre>預格式化文本。保留文本固有的換行和空格。
<meter><progress>
② 本地存儲特性
基於HTML5開發的網頁APP擁有更短的啓動時間,更快的聯網速度,這些全得益於HTML5 APP Cache,以及本地存儲功能。
HTML5離線存儲包含 應用程序緩存,本地存儲,索引數據庫,文件接口。
③ 設備訪問特性
從Geolocation功能的API文檔公開以來,HTML5爲網頁應用開發者們提供了更多功能上的優化選擇,帶來了更多體驗功能的優勢。HTML5提供了前所未有的數據與應用接入開放接口。使外部應用可以直接與瀏覽器內部的數據直接相連,例如視頻影音可直接與microphones及攝像頭相聯。
④ 連接特性
更有效的連接工作效率,使得基於頁面的實時聊天,更快速的網頁遊戲體驗,更優化的在線交流得到了實現。HTML5擁有更有效的服務器推送技術,Server-Sent Event和WebSockets就是其中的兩個特性,這兩個特性能夠幫助我們實現服務器將數據“推送”到客戶端的功能。
⑤ 網頁多媒體特性
支持網頁端的audio、video等多媒體功能, 與網站自帶的APPS,攝像頭,影音功能相得益彰。
⑥ 三維、圖形及特效特性
基於SVG、Canvas、WebGL及CSS3的3D功能,用戶會驚歎於在瀏覽器中,所呈現的驚人視覺效果。
⑦ 性能與集成特性
沒有用戶會永遠等待你的Loading——HTML5會通過XMLHttpRequest2等技術,解決以前的跨域等問題,幫助您的Web應用和網站在多樣化的環境中更快速的工作。
CSS3 新特性
CSS3 是 CSS 的升級版本,這套新標準提供了更加豐富且實用的規範,如:盒子模型、列表模塊、超鏈接方式、語言模塊、背景和邊框、文字特效、多欄佈局等等。
CSS 選擇器
tbody: nth-child(even), nth-child(odd)
: not(.textinput)
:這裏即表示所有 class 不是“textinput”的節點。
div:first-child
:這裏表示所有 div 節點下面的第一個直接子節點。
:nth-last-child(n)
:nth-of-type(n)
:nth-last-of-type(n)
:last-child
:first-of-type
:only-child
:only-of-type
:empty
:checked
:enabled
:disabled
::selection
:not(s)
@font-face 特性
font-face 可以用來加載字體樣式,而且它還能夠加載服務器端的字體文件,讓客戶端顯示客戶端所沒有安裝的字體。
@font-face {
font-family: BorderWeb;
src:url(BORDERW0.eot);
}
@font-face {
font-family: Runic;
src:url(RUNICMT0.eot);
}
.border { FONT-SIZE: 35px; COLOR: black; FONT-FAMILY: "BorderWeb" }
.event { FONT-SIZE: 110px; COLOR: black; FONT-FAMILY: "Runic" }
word-wrap & text-overflow 樣式
<div style="width:300px; border:1px solid #999999; word-wrap:break-word;">
wordwrapbreakwordwordwrapbreakwordwordwrapbreakwordwordwrapbreakword
</div>
text-overflow:clip
text-overflow:ellipsis
文字渲染
div {
-webkit-text-fill-color: black;
-webkit-text-stroke-color: red;
-webkit-text-stroke-width: 2.75px;
}
CSS3 的多列布局
.multi_column_style{
-webkit-column-count: 3;
-webkit-column-rule: 1px solid #bbb;
-webkit-column-gap: 2em;
}
<div class="multi_column_style">
.................
.................
</div>
column-count:表示佈局幾列。
column-rule:表示列與列之間的間隔條的樣式
column-gap:表示列於列之間的間隔
邊框和顏色
color: hsla( 112, 72%, 33%, 0.68);
對於 border,CSS3 提供了圓角的支持:
border-radius: 15px;
CSS3 的漸變效果
左上(0% 0%)到右上(0% 100%)即從左到右水平漸變:
background-image:-webkit-gradient(linear,0% 0%,100% 0%,from(#2A8BBE),to(#FE280E));
複雜線性漸變
background-image:-webkit-gradient(linear,0% 0%,100% 0%,from(#2A8BBE),
color-stop(0.33,#AAD010),color-stop(0.33,#FF7F00),to(#FE280E));
徑向漸變
backgroud:
-webkit-gradient(radial,50 50,50,50 50,0,from(black),color-stop(0.5,red),to(blue));
CSS3 的陰影(shadow)和反射(reflect)效果
陰影
.class1{
text-shadow:5px 2px 6px rgba(64, 64, 64, 0.5);
}
.class2{
box-shadow:3px 3px 3px rgba(0, 64, 128, 0.3);
}
反射
.classReflect{
-webkit-box-reflect: below 10px
-webkit-gradient(linear, left top, left bottom, from(transparent),
to(rgba(255, 255, 255, 0.51)));
}
CSS3 的背景效果
首先:”background clip”,該屬確定背景畫區,有以下幾種可能的屬性:
background-clip: border-box; 背景從 border 開始顯示 ;
background-clip: padding-box; 背景從 padding 開始顯示 ;
background-clip: content-box; 背景顯 content 區域開始顯示 ;
background-clip: no-clip; 默認屬性,等同於 border-box;
通常情況,我們的背景都是覆蓋整個元素的,現在 CSS3 讓您可以設置是否一定要這樣做。這裏您可以設定背景顏色或圖片的覆蓋範圍。
其次:”background origin”,用於確定背景的位置,它通常與 background-position 聯合使用,您可以從 border、padding、content 來計算 background-position(就像 background-clip)。
background-origin: border-box; 從 border. 開始計算 background-position;
background-origin: padding-box; 從 padding. 開始計算 background-position;
background-origin: content-box; 從 content. 開始計算 background-position;
還有,”background size”,常用來調整背景圖片的大小,注意別和 clip 弄混,這個主要用於設定圖片本身。有以下可能的屬性:
background-size: contain; 縮小圖片以適合元素(維持像素長寬比)
background-size: cover; 擴展元素以填補元素(維持像素長寬比)
background-size: 100px 100px; 縮小圖片至指定的大小 .
background-size: 50% 100%; 縮小圖片至指定的大小,百分比是相對包 含元素的尺寸 .
最後,”background break”屬性,CSS3 中,元素可以被分成幾個獨立的盒子(如使內聯元素 span 跨越多行),background-break 屬性用來控制背景怎樣在這些不同的盒子中顯示。
background-break: continuous; 默認值。忽略盒之間的距離(也就是像元 素沒有分成多個盒子,依然是一個整體一 樣)
background-break: bounding-box; 把盒之間的距離計算在內;
background-break: each-box; 爲每個盒子單獨重繪背景。
這種屬性讓您可以設定複雜元素的背景屬性。
最爲重要的一點,CSS3 中支持多背景圖片,參考如下代碼:
div {
background: url(src/zippy-plus.png) 10px center no-repeat,
url(src/gray_lines_bg.png) 10px center repeat-x;
}
CSS3 的 transitions, transforms 和 animation
transition-property:用於指定過渡的性質,比如 transition-property:background 就是指 backgound 參與這個過渡
transition-duration:用於指定這個過渡的持續時間
transition-delay:用於制定延遲過渡的時間
transition-timing-function:用於指定過渡類型,有 ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier
<div id="transDiv" class="transStart"> transition </div>
.transStart {
background-color: white;
-webkit-transition: background-color 0.3s linear;
-moz-transition: background-color 0.3s linear;
-o-transition: background-color 0.3s linear;
transition: background-color 0.3s linear;
}
.transEnd {
background-color: red;
}
.skew {
-webkit-transform: skew(50deg);
}
.scale {
-webkit-transform: scale(2, 0.5);
}
.rotate {
-webkit-transform: rotate(30deg);
}
.translate {
-webkit-transform: translate(50px, 50px);
}
.all_in_one_transform {
-webkit-transform: skew(20deg) scale(1.1, 1.1) rotate(40deg) translate(10px, 15px);
}
@-webkit-keyframes anim1 {
0% {
Opacity: 0;
font-size: 12px;
}
100% {
Opacity: 1;
font-size: 24px;
}
}
.anim1Div {
-webkit-animation-name: anim1 ;
-webkit-animation-duration: 1.5s;
-webkit-animation-iteration-count: 4;
-webkit-animation-direction: alternate;
-webkit-animation-timing-function: ease-in-out;
}
僞元素和僞類的區別
CSS 僞類用於向某些選擇器添加特殊的效果。
CSS 僞元素用於將特殊的效果添加到某些選擇器。
僞類種類:
僞類 | 作用 |
---|---|
:active | 將樣式添加到被激活的元素 |
:focus | 將樣式添加到被選中的元素 |
:hover | 當鼠標懸浮在元素上方時,向元素添加樣式 |
:link | 將特殊的樣式添加到未被訪問過的鏈接 |
:visited | 將特殊的樣式添加到被訪問過的鏈接 |
:first-child | 將特殊的樣式添加到元素的第一個子元素 |
:lang | 允許創作者定義指定的元素中使用的語言 |
僞元素種類:
僞元素 | 作用 |
---|---|
:first-letter | 將特殊的樣式添加到文本的首字母 |
:first-line | 將特殊樣式添加到文本的首行 |
:before | 在某元素之前插入某些內容 |
:after | 在某元素之後插入某些內容 |
僞類的效果可以通過添加一個實際的類來達到,而僞元素的效果則需要通過添加一個實際的元素才能達到,這也是爲什麼他們一個稱爲僞類,一個稱爲僞元素的原因。