pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

解讀 HTML5:建議、技巧和技術

現今我們能用 HTML5 嗎,能用它做些什么呢,是否真的是 Flash 殺手?想必你也注意到了這些日漸增長且常被問起的類似問題,被討論著,甚至被回答過。在我看來,你必須自己回答這些基

      現今我們能用 HTML5 嗎,能用它做些什么呢,是否真的是 Flash 殺手?想必你也注意到了這些日漸增長且常被問起的類似問題,被討論著,甚至被回答過。在我看來,你必須自己回答這些基本的問題。


這篇文章的本意是想幫你通過一些基本指南的學習,以輕松學習代碼模板。一旦你熟悉了這些基本,并想更進一學習,你還將會找到更多提供了建議、技巧和技術的有用資源。

HTML 5 特性

官方詳細的文檔是尋找 HTML5 特性的最好地方,當然你還可以輕松通過 W3Schools 來學習HTML5 標簽。我們將會在文章中涉及到以下的特性:

  • 語義化標記
  • Form 表單增強功能
  • 視頻 / 音頻
  • 畫布(Canvas)
  • 可編輯內容
  • 拖放
  • 穩健的數據存儲

檢測瀏覽器支持

在你開始嘗試 HTML5之前,需要知道各主流瀏覽器的支持狀況。這些有用的資源,將可以幫助你向著正軌走:

你還可以運行 Javascript(用Javascript 檢測瀏覽器特性)來檢測 HTML5 特性的支持。你還應該用用Modernizr: 一個非常不錯的檢測 HTML5/CSS3 本地支持的 Javascript 庫。如果你選擇用 Mootools可以使用MooModernizr (MooTools port of Modernizr)。

你可能也會想留意不斷變化的"瀏覽器市場份額分享" — 這些信息對于你決定用何種解決或折衷的方法將會是非常必要的。

值得注意的變更點

除了新的特征,你還應該記下這些重要的變更點:

  • 簡潔的 DOCTYPE HTML5 只需一個簡潔的文檔類型:。它有意不使用版本,因此文檔將會適用所有版本的HTML。
  • 簡單易記的語言標簽 你并不需要在 中使用 xmlns 或 xml:lang 標記。 將對 HTML5 有效。
  • 簡單易記的編碼類型 你現在可以在 meta 標簽中使用 "charset":<head>
        <meta charset="utf-8" />
        <title>HTML5 Document</title>
    </head>
    <body>
    </body>
    </html>

    你可以使用HTML5 ValidatorW3C Markup Validation Service 來測試你的 HTML5 文檔。

    語義化標記

    HTML5 新增的一些新標簽除了不僅僅是更具語義的

    標簽的替代品,并不提供額外的功能。這些都是新增的標簽:<articl>、<section><aside><hgroup><header>, <footer><nav><time><mark><figure><figcaption>

    這些標簽被除了IE 外的所有現代瀏覽器(Firefox 3+、Safari 3.1+、Chrome 2+、and Opera 9.6+)支持。Javascript 提供了document.createElement(tagName) 的方法,讓你可以用來創建新的 HTML5 標簽。代替自己創建這些元素,你還可以用HTML5 Enabling ScriptIE Print Protector — 這些腳本將幫助 IE 正常處理 HTML5 元素的渲染。

    你可能會想到添加 CSS Reset 到這些新元素上。這里是一些可以用在你以 HTML5 為基礎的項目的CSS Reset:

    簡單代碼示例: 兼容 IE 的 HTML5 頁面布局

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Semantic Markup Demo: Cross Browser</title>
        <link rel="stylesheet" href="html5reset.css" type="text/css" />
        <link rel="stylesheet" href="html5semanticmarkup.css" type="text/css" />
        <!--[if lt IE 9]>
            <script src="http://pic.html5code.nethtml5.js"></script>
        <![endif]-->
    </head>
    <body>
        <header>
            <hgroup>
                <h1>Page Header</h1>
                <h2>Page Sub Heading</h2>
            </hgroup>
        </header>
        <nav>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">Projects</a></li>
                <li><a href="#">Portfolio</a></li>
                <li><a href="#">Profile</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>
        <article>
            <header>
                <h1>Article Heading</h1>
                <time datetime="2010-05-05" pubdate>May 5th, 2010</time>
            </header>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
            <section>
                <header>
                    <h1>Section Heading</h1>
                </header>
                <p>Ut sapien enim, porttitor id feugiat non, ultrices non odio.</p>
                <footer>
                    <p>Section Footer: Pellentesque volutpat, leo nec auctor euismod</p>
                </footer>
            </section>
            <section>
                <header>
                    <h1>Section Heading</h1>
                </header>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
                <figure>
                    <img src="item-1.png" alt="Club">
                    <img src="item-2.png" alt="Heart">
                    <img src="item-3.png" alt="Spade">
                    <img src="item-4.png" alt="Diamond">
                    <figcaption>FigCaption: Club, Heart, Spade and Diamond</figcaption>
                </figure>
                <p>Ut sapien enim, porttitor id feugiat non, ultrices non odio</p>
                <footer>
                    <p>Section Footer: Pellentesque volutpat, leo nec auctor euismod est.</p>
                </footer>
            </section>
            <footer>
                Article Footer
            </footer>
        </article>
        <aside>
            <header>
                <h1>Siderbar Heading</h1>
            </header>
            <p>Ut sapien enim, porttitor id feugiat non, ultrices non odio.</p>
        </aside>
        <footer>
            Page Footer
        </footer>
    </body>
    </html>

    注意:沒有一個 div 標簽,id 或 class 屬性被使用到 — 簡潔、小巧和更語義化的標記 (View Demo)。你仍可以用 HTML5 ValidatorW3C Markup Validation Service 來檢測你的 HTML5 文檔。

    注意:這個示例在 IE6 下并未正常顯示。這只是因為我使用 CSS child combinators 來避免使用額外的 class。你可以在 IE6 下用自己的 CSS ,像其他瀏覽器一樣處理 HTML5 標記。

    表單增強

    HTML5 為表單提供了幾個新的屬性、input 類型和標簽。到目前為止,只有 Opera 對HTML5 有比較好的支持。你因此應該下載 Opera 來查看大部分新特性如何工作。

    值得高興的是盡管支持有限,使用這些特性也是個不錯的選擇。因為新的 INPUT 類型會漂亮地降級為 TEXT 類 INPUT(譯注:INPUT 的默認 type 為 text)。且記住現今你仍可以折衷使用 Javascript 控制表單(這個技巧是指首先檢測瀏覽器自身支持,然后才是使用折衷方法)。

    簡單代碼示例:列出一些今天你可以拿來測試的新特性

    <form>
        <fieldset>
            <legend>New Attributes</legend>
            <p>
                <label>Required:</label>
                <input type="text" name="html5requied" required="true">
                <small>Works in Opera & Chrome</small>
            </p>
            <p>
                <label>AutoFocus:</label>
                <input type="text" name="html5autofocus" autofocus="true">
                <small>Works in Opera, Chrome & Safari</small>
            </p>
            <p>
                <label>PlaceHolder:</label>
                <input type="text" name="html5placeholder" placeholder="This Will Show in WebKit">
                <small>Works in Chrome & Safari</small>
            </p>
            <p>
                <label>Input Pattern:</label>
                <input type="text" pattern="[0-9][A-Z]{3}" name="html5pattern" required title="Enter a digit followed by three uppercase letters"/>
                <small>Works in Opera & Chrome</small>
            </p>
            <p>
                <label>Multiple Files:</label>
                <input type="file" name="html5multiplefileupload" multiple>
                <small>Works in Chrome, Safari & Firefox</small>
            </p>
            <p>
                <label>List:</label>
                <input type="text" name="html5textwithdatalist" list="colors">
                <datalist id="colors">
                    <option value="Red">
                    <option value="Green">
                    <option value="Blue">
                </datalist>
                <small>Works in Opera</small>
            </p>
        </fieldset>

        <fieldset>
            <legend>New Input Types</legend>
            <p>
                <label>Email:</label>
                <input type="email" name="html5email">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>URL:</label>
                <input type="url" name="html5url">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>Number:</label>
                <input type="number" name="html5number" min="1" max="10" step="1" value="1">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>Range:</label>
                <input type="range" name="html5range" min="-100" max="100" value="0" step="10">
                <small>Works in Opera, Chrome & Safari</small>
            </p>
            <p>
                <label>Time:</label>
                <input type="time" step="900" name="html5time">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>Date:</label>
                <input type="date" name="html5date">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>Month:</label>
                <input type="month" name="html5month">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>Week:</label>
                <input type="week" name="html5week">
                <small>Works in Opera</small>
            </p>
            <p>
                <label>DateTime:</label>
                <input type="datetime" name="html5datetime">
                <small>Works in Opera</small>
            </p>
        </fieldset>

        <div><button>Submit</button></div>

    在我們的 DEMO 中的出現的特性,都順利地運行在 Opera 上,但你仍需要使用 Chrome 或 Safari 來看其他小部分功能的實際運行狀態(View Demo)。

    不需要插件的視頻和音頻

    HTML5 對視頻和音頻特性規范文檔的制定是被討論最多的。除瀏覽器自帶支持的明顯好處外,評論點集中在瀏覽器提供商對音頻/視頻格式的不同選擇。如果你準備使用HTML5的 ,使你熟悉下面這些視頻/音頻的解碼器和瀏覽器支持是非常重要的:

    另外你還需要留意一下 Google 的 VP8 視頻解碼,這個將被作為一個開源格式來結束(格式選擇的)紛爭。HTML5 提供的一個解決方案是,讓你可以指定多個不同格式的源文件,以便于用戶瀏覽器選擇它認識的文件。對于 < IE9 和舊瀏覽器,你將需要一個折衷的解決方案。

    當你第一次嘗試 HTML5 的音頻/視頻,你可能會想知道這些可能對你有幫助的東東:

    • 你的服務器必須支持你打算提供的音頻/視頻的 MIME 格式。你將需要檢查一下其在本地服務器上是否被支持。
    • 如果你使用 Safari 來檢測 HTML5 的音頻/視頻支持,需要安裝 QuickTime Player,沒有QuickTime Player 的 Safari 什么都不能播放。

    簡單代碼示例:音頻標記 (View Demo)

    <audio controls>
            <source src="demo-audio.ogg" />
            <source src="demo-audio.mp3" />
    </audio>

    簡單代碼示例:視頻標記 (View Demo)

    <video width="320" height="240" controls preload="none" poster="videoframe.jpg">
        <source src="demo-video.mp4" type="video/mp4" />
        <source src="demo-video.ogv" type="video/ogg" />
    </video>

    記得加上type,不然,即使格式對了,也可能播放不了

    盡管相對于要依賴第三方插件已經邁了一大步,但上面提供的示例,只是一個開始。由于各個瀏覽都提供了不同外觀的控制欄,你可能會希望改變他們以適應你的設計。看看下面例子如何利用 DOM API 來創造一個屬于你自己的自定義控制欄。

    簡單代碼示例:擁有自定義控制欄的視頻 (View Demo)

    <video width="320" height="240" preload="none" poster="videoframe.jpg">
        <source src="demo-video.mp4" type="video/mp4" />
        <source src="demo-video.ogv" type="video/ogg" />
    </video>

    <script>
        var video = document.getElementsByTagName('video')[0];
        function toggleMute() {
            video.muted = !video.muted;
        }
    </script>
    <p>
        <a href="JavaScript:video.play();">Play</a> |
        <a href="JavaScript:video.pause();">Pause</a> |
        <a href="JavaScript:toggleMute();">Sound On/Off</a>
    </p>

    你還可以利用 DOM API 來為音頻/視頻做更多。而且如果你樂意添加一些其他的東西,將會把這個帶向一個完全不同的級別。例如,你可以把視頻放到了 HTML5 canvas 元素中。這將會允許你讀取一個視頻的像素數據、控制、和幀,并做一些你想做的好玩的東東。

    基于 JavaScript 的 2D 繪畫

    HTML5 中最讓人興奮的特性是 <canvas> — 那個用來作畫的東東。在你的頁面中插入 canvas 就像插入其他標記一樣平常,但你將需要一些編程的經驗來繪制形狀、圖表、動畫、游戲、圖片作品等。

    在除 IE 外的所有現代瀏覽器(Firefox 3, Safari 3.1, Chrome 2, and Opera 9.6)都支持 Canvas。你可以使用 ExplorerCanvas 這個 Javascript 解決方案來為 IE 添加這個新特性。

    簡單示例代碼: 基于指令的 HTML5 Canvas 2D 繪畫 (View Demo)

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Canvas Demo</title>
        <link rel="stylesheet" href="html5reset.css" type="text/css" />
        <link rel="stylesheet" href="html5simple.css" type="text/css" />
        <!--[if lt IE 9]>
            <script src="http://pic.html5code.nethtml5.js"></script>
            <script src="excanvas.js"></script>
        <![endif]-->
            <script type="text/javascript">
            function draw(){
                var canvas = document.getElementById('mycanvas');
                if (canvas.getContext){
                    var ctx = canvas.getContext('2d');

                    // Draw Rectangle
                    ctx.fillStyle = "rgb(255,0,0)";
                    ctx.fillRect (10, 10, 100, 100);

                    // Draw Circle
                    ctx.fillStyle = "rgb(0,255,0)";
                    ctx.beginPath();
                    ctx.arc(125,100,50,0,Math.PI*2,true);
                    ctx.fill();
                    ctx.closePath();

                    // Draw Custom Shape With Lines
                    ctx.fillStyle = "rgb(0,0,255)";
                    ctx.beginPath();
                    ctx.moveTo(125,100);
                    ctx.lineTo(175,50);
                    ctx.lineTo(225,150);
                    ctx.fill();
                    ctx.closePath();

                    // Draw Image From External File
                    var myImage = new Image();
                    myImage.onload = function(){
                        ctx.drawImage(myImage, 220, 10);
                    }
                    myImage.src = "sample.jpg";

                }
            }
            </script>
            <style type="text/css">
                canvas {
                    border: 5px solid #ccc;
                    background: #000;
                }
            </style>
    </head>
    <body onload="draw();">
        <header>
            <h1>HTML5 Canvas Demo</h1>
        </header>

        <figure>
            <canvas id="mycanvas" width="300" height="200">Fallback content, in case the browser does not support Canvas.</canvas>
            <figcaption>Works in Firefox 3+, Safari 3.1+, Chrome 2+ and Opera 9.6+)</figcaption>
        </figure>
    </body>
    </html>

    讓內容可編輯

    如果你想讓頁面的某個地方,允許用戶編輯頁面,所有的你需要做的事就是添加 contenteditable 屬性到父容器中。你可能曾在 WYSIWYG 編輯器中看過。這個屬性是 HTML5 的一部分,且它幾乎被所有主流瀏覽器支持(Internet Explorer 5.5+, Firefox 3+, Safari 3.1+, Chrome 2+, and Opera 9.6+):

    值得注意的是設置 contenteditable="true" 只是允許用戶編輯、刪除、插入內容,并不會自動提供其他類似于 WYSIWYG 編輯器的保存或應用樣式的功能。你將需要自己用 Javascript 來添加這些功能。

    簡單示例代碼: 有加粗、傾斜和下劃線功能的基本編輯器 (View Demo)

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>HTML5 ContentEditable Demo</title>
        <link rel="stylesheet" href="html5reset.css" type="text/css" />
        <link rel="stylesheet" href="html5simple.css" type="text/css" />
        <!--[if lt IE 9]>
            <script src="http://pic.html5code.nethtml5.js"></script>
        <![endif]-->

        <script language="javascript">
        function editStyle(cmd) {
            document.execCommand(cmd, null, null);
        }
        </script>
    </head>
    <body onload="draw();">
        <header>
            <h1>HTML5 ContentEditable Demo</h1>
        </header>

        <div id="democontainer">
            <div id="editingcontrols">
                <a href="#" onclick="editStyle('bold');">[Bold]</a>
                <a href="#" onclick="editStyle('italic');">[Italic]</a>
                <a href="#" onclick="editStyle('underline');">[Underline]</a>
            </div>
            <div id="editor" contenteditable="true">
                <h2>HTML5 Standardized Content Editing</h2>
                <p>Thanks to Microsoft; HTML elements are editable since Internet Explorer 5.5....</p>
                <p>To edit just start typing. To change style, select text and click on links in the tools bar.</p>
            </div>
        </div>

    </body>
    </html>

    拖放

    HTML5 的拖放將會把與用戶交互帶向別一個等級,并將會對你如何設計用戶交互產生重大影響。現今,Firefox 3.5+ 已經對此特性提供了最大化的支持,其他瀏覽還只是保守地支持了一小部分(Opera 完全不支持)。不幸的是根據現階段瀏覽器提供商的執行狀況,你將需要依賴大量的 Javascript 和 CSS 來讓做跨瀏覽器支持。

    注意:

    • 圖片和超鏈接默認是可拖放的。對于所有的元素,HTML5 引進了一個新的屬性"draggable",這將用來設置元素是否接受拖放;
    • 下列事件對應 HTML5 的拖放:dragstart, drag, dragenter, dragover, dragleave, dropdragend。當你要fire掉事件的時候,將需要寫 function (事件處理器) 來處理你需要的,也可能需要給元素綁定事件或做事件指派來簡化你的代碼;
    • 拖放事件還讓你可以通過被拖放元素來傳遞數據,使用事件屬性"dataTransfer" 的 getData 和 setData 方法。
    • 你可以在不同的瀏覽器或程序中進行拖放。

    簡單代碼示例: 將圖片拖放到另一個窗口 (

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了關于h5中的fetch方法解讀(小結),fetch身為H5中的一個新對象,他的誕生,是為了取代ajax的存在而出現,有興趣的可以了解一下
主站蜘蛛池模板: 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 食品级焦亚硫酸钠_工业级焦亚硫酸钠_焦亚硫酸钠-潍坊邦华化工有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 软装设计-提供软装装饰和软装配饰及软装陈设的软装设计公司 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 海鲜池-专注海鲜鱼缸、移动海鲜缸、饭店鱼缸设计定做-日晟水族厂家 | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 欧景装饰设计工程有限公司-无锡欧景装饰官网 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | 宝鸡市人民医院 | 长城人品牌官网| 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 |