真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HTML5移動(dòng)應(yīng)用開發(fā)新的可視化UI特性怎么實(shí)現(xiàn)

這篇文章主要介紹“HTML5移動(dòng)應(yīng)用開發(fā)新的可視化UI特性怎么實(shí)現(xiàn)”,在日常操作中,相信很多人在HTML5移動(dòng)應(yīng)用開發(fā)新的可視化UI特性怎么實(shí)現(xiàn)問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”HTML5移動(dòng)應(yīng)用開發(fā)新的可視化UI特性怎么實(shí)現(xiàn)”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)綏寧免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

先決條件

在這里中,您將使用最新的Web技術(shù)開發(fā)Web應(yīng)用程序。這里的大部分代碼只是HTML,JavaScript和CSS —所有Web發(fā)人員的核心技術(shù)。所需的最重要的工具是用于進(jìn)行測(cè)試的瀏覽器。此處大部分代碼將在最新桌面瀏覽器上運(yùn)行,但也有一些例外,我們將在文章中進(jìn)行說明。當(dāng)然,您也必須在移動(dòng)瀏覽器上測(cè)試,從而,您需要最新的iPhone和Android SDK。

通過Canvas實(shí)現(xiàn)圖形效果

多年以來,Web開發(fā)人員一直在重復(fù)畫布上。現(xiàn)在,為什么還有人會(huì)重復(fù)瀏覽器中的一個(gè)原生畫圖API呢?然后,它允許您創(chuàng)建某種圖形界面,否則您將需要某種瀏覽器插件(每Web開發(fā)人員抱怨Canvas的原因是:盡管現(xiàn)在它可用于Firefox和Safari已經(jīng)很多年,但最流行的桌面瀏覽甚至Internet Explorer 9的早期版本也不支持Canvas。因此,多年來,Canvas一直是最大的技術(shù)笑話。您可能會(huì)發(fā)現(xiàn),這些令人驚嘆的Canvas樣例多層整個(gè)Internet,但您不能僅僅因?yàn)镮nternet Explorer不支持它就將它用作其他大多數(shù)Web應(yīng)用程序。幸運(yùn)的是,對(duì)于移動(dòng)Web開發(fā)人員來說,Canvas沒有這樣的限制。您瞄準(zhǔn)的所有基于Webkit的瀏覽器都能實(shí)現(xiàn)Canvas并極大地優(yōu)化其性能。

Canvas API是一個(gè)低級(jí)畫圖API,它支持創(chuàng)建直線,曲線,矩形和圓圈,并使用彩色,漸變色等填充它們。在Canvas上,您可以創(chuàng)建文本,執(zhí)行多種的幾何轉(zhuǎn)換。可以想見,這樣的API的用途是無限的。我們來看一個(gè)使用Canvas來創(chuàng)建一個(gè)圖形報(bào)告的應(yīng)用程序。圖1展示了該應(yīng)用程序的屏幕截圖:一個(gè)顯示每年結(jié)果的柱狀圖。

圖1.運(yùn)行在Android瀏覽器上的基于Canvas的報(bào)告應(yīng)用程序

運(yùn)行在Android瀏覽器上的基于Canvas的報(bào)告應(yīng)用程序的屏幕截圖 

圖1所顯示的不是瀏覽器中的一幅靜態(tài)圖像。這個(gè)報(bào)告圖形是使用這個(gè)Canvas API實(shí)時(shí)生成的。清單1展示了創(chuàng)建這個(gè)報(bào)告的HTML。

清單1.報(bào)告HTML

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE html >  

< html >  

<頭>  

    < meta http-equiv = “ Content-Type”內(nèi)容= “ text / html; charset = UTF-8” >    

    < meta name = “ viewport” content =“寬度=設(shè)備寬度; 初始比例= 1 .0;     

        最大比例= 1 .0; 用戶可縮放= 0 ;“ />  

    < meta name = “ apple-touch-fullscreen”內(nèi)容= “ YES” />     

    < title > HTML 5報(bào)告  

    <腳本類型= “ text / javascript” >   

        函數(shù)init(){  

            var  data  = [{year:“ 2007”,sales:49},  

                {year:“ 2008”,sales:131},  

                {year:“ 2009”,sales:294},   

                {year:“ 2010”,sales:405}]];  

            var  report  = {x:“年”,  

                    y:“銷售”,  

                    值:數(shù)據(jù)};  

            圖表(report,350,300);  

        }  

      

  

<正文onload = “ init()” >   

    < canvas id = “ graph” >    

  

      

這個(gè)清單展示了基本的HTML結(jié)構(gòu)。這個(gè)文檔的主體擁有一個(gè)單一的canvas標(biāo)記。在init函數(shù)(在文檔主體加載時(shí)調(diào)用)中,您定義的靜態(tài)數(shù)據(jù)(報(bào)告數(shù)據(jù))將其傳遞到圖形函數(shù)。這里將報(bào)告定義為靜態(tài)數(shù)據(jù),但很容易將其想象為使用Ajax通過網(wǎng)絡(luò)動(dòng)態(tài)下載。report函數(shù)包含所有有趣的代碼,我們來看看清單2。

清單2. graph函數(shù)

JavaScript代碼將內(nèi)容復(fù)制到

函數(shù) 圖(報(bào)告,maxWidth,maxHeight){  

    var  data = report.values;  

    var  canvas = document.getElementById(“ graph” );  

    var  axisBuffer = 20;  

    canvas.height = maxHeight + 100;  

    canvas.width = maxWidth;  

    var  ctx = canvas.getContext(“ 2d” );  

    var  width = 50;  

    var  buffer = 20;  

    var  i = 0;  

    var  x =緩沖區(qū)+ axisBuffer;  

    ctx.font =  “粗體12px sans-serif” ;  

    ctx.textAlign =  “開始” ;  

    對(duì)于 (i = 0; i

        ctx.fillStyle = “ rgba( 0,0,200,0.9  )” ;  

        ctx.fillRect(x,maxHeight-(data [i] [report.y] / 2),   

                 寬度,(data [i] [report.y] / 2));  

        ctx.fillStyle = “ rgba( 0,0,0,0.9  )” ;  

        ctx.fillText(data [i] [report.x],x +(width / 4),maxHeight + 15);  

        x + =寬度+緩沖區(qū);  

    }  

    //繪制水平軸  

    ctx.moveTo(axisBuffer,maxHeight);  

    ctx.lineTo(axisBuffer + maxWidth,maxHeight);  

    ctx.strokeStyle =  “黑色” ;  

    ctx.stroke();  

    //繪制垂直軸  

    ctx.moveTo(axisBuffer,0);  

    ctx.lineTo(axisBuffer,maxHeight);  

    ctx.stroke();  

    //繪制網(wǎng)格線  

    var  lineSpacing = 50;  

    var  numLines = maxHeight / lineSpacing;  

    var  y = lineSpacing;  

    ctx.font =  “ 10px sans-serif” ;  

    ctx.textBaseline =  “中間” ;  

    對(duì)于 (i = 0; i

        ctx.strokeStyle =  “ rgba(0,0,0,0.25)” ;  

        ctx.moveTo(axisBuffer,y);  

        ctx.lineTo(axisBuffer + maxWidth,y);  

        ctx.stroke();  

        ctx.fillStyle = “ rgba( 0,0,0,0.75  )” ;  

        ctx.fillText(“” +(2 *(maxHeight -y)),0,y);  

        y + = lineSpacing;   

    }  

}  

在這個(gè)函數(shù)的第一部分中,您建立了創(chuàng)建這個(gè)報(bào)告需要的對(duì)象,尺寸畫布的寬度和高度,填充變量等。您還創(chuàng)建了畫布對(duì)象,因?yàn)檫@是用于進(jìn)行所有實(shí)際畫圖的對(duì)象。然后,您通過迭代報(bào)告數(shù)據(jù),繪制圖1中的柱狀圖。首先,您設(shè)置fillStyle屬性。這就像設(shè)置一個(gè)顏色一樣簡(jiǎn)單,您使用CSS時(shí)也可能會(huì)生成。在本例中,使用rgba標(biāo)記來設(shè)置顏色,以及alpha值(這是顏色的短暫,稍后我們討論奇妙的CSS3世界時(shí)時(shí)引入這個(gè)參數(shù))。設(shè)置fillStyle屬性后,使用fillRect API來為數(shù)據(jù)點(diǎn)創(chuàng)建柱狀圖。此處,您指定這個(gè)矩形,起點(diǎn)(x,y)以及它的高度和寬度。接下來,您重新定義fillStyle,因?yàn)槟氪蛴∫恍┪谋?,作為?bào)告的一部分。您使用fillText API來在畫布上繪制文本。您對(duì)每個(gè)數(shù)據(jù)點(diǎn)都執(zhí)行這個(gè)操作,為每個(gè)數(shù)據(jù)點(diǎn)創(chuàng)建一個(gè)柱狀圖,其下帶有一個(gè)標(biāo)簽。

接下來,您需要重新設(shè)置此圖形的其他部分—尺寸和網(wǎng)格線。首先,放置水平和垂直垂直。對(duì)于每條變量,使用moveTo API來設(shè)置開始直線直線的起點(diǎn)。然后使用lineTo API來從這個(gè)。注意,這并不實(shí)際放置一條直線;相反,您調(diào)用描邊API來替換這條直線。對(duì)齊水平和垂直上方后,放置它們的標(biāo)簽布局網(wǎng)格線,方法是均勻間隔本身,然后使用相同的moveTo,lineTo和stroke組合來繪制這些直線。

這就是以編程方式創(chuàng)建這個(gè)報(bào)告圖形所需的所有代碼。在這個(gè)示例中,您已經(jīng)看到了很多最重要的,也是最常使用的畫布API,但還有其他幾個(gè)API(用作著色曲線) )。您可以使用這些API完成一些令人震驚的任務(wù),這些任務(wù)可以在任何基于Webkit的瀏覽器上完成。如果您的目標(biāo)不是布局圖形,HTML 5仍舊有很多格式為級(jí)聯(lián)樣式表(CSS)3.0的新視覺圖像。

奇妙的CSS3世界

正確的HTML 5,您可能會(huì)馬上想到HTML標(biāo)記。當(dāng)然,HTML 5肯定包含新標(biāo)記,我們將在下一小節(jié)中查看其中的部分新標(biāo)記。在上一小節(jié)中,您看到了如何使用一個(gè)但是,大部分代碼是JavaScript。HTML只是HTML 5的一部分— JavaScript和CSS也是同樣重要的部分。HTML5中的許多新用戶界面元素由CSS標(biāo)準(zhǔn)的最新版本。 CSS 3.0提供。在圖2中,一個(gè)使用多個(gè)CSS 3.0新技術(shù)的Web頁面出現(xiàn)在基于Android的手機(jī)和iPhone上。

圖2.移動(dòng)設(shè)備的新CSS功能

比較Android和iPhone移動(dòng)設(shè)備上的新CSS功能的屏幕截圖 

圖2在一個(gè)基于Android的設(shè)備和iPhone上展示了許多新CSS功能。左邊的圖像來自一個(gè)基于Android的設(shè)備。它比右邊的圖像尺寸,原因是它來自一個(gè)Motorola Droid,它比對(duì)右邊的圖像的iPhone 3GS擁有的分辨率更高的屏幕。因此,您在Droid上將看到更多的頁面內(nèi)容。但是,您可能會(huì)看到,標(biāo)題“葛底斯堡地址”有一個(gè)倒影,該倒影在iPhone這只是一個(gè)細(xì)節(jié)提醒:即使基于Android的設(shè)備和iPhone都擁有基于Webkit的瀏覽器,但它們之間也也有細(xì)微的差異,因此您在測(cè)試時(shí)必須更加細(xì)心?,F(xiàn)在看一下生成這個(gè)漂亮頁面的代碼(見清單3),首先從頁面頂端開始。

清單3.頁面上半部分的代碼

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE html >  

< html >  

<頭>  

    <腳本類型= “ text / javascript” >   

        函數(shù)$ {id){  

            返回document.getElementById(id);  

        }  

        函數(shù)init(){  

            var  i = 0 ;  

            var  row  = {};  

            var  cell  = {};  

            var  topic  = [“ nth-child”,“ gradients”,“ alpha”,“ text effect”,   

                          “反思”,“變革”];  

            對(duì)于(i = 0 ; i < topic.length ; i ++){  

                行 = 文檔.createElement(“ tr”);  

                單元格 = 文檔.createElement(“ td”);  

                cell.appendChild(document.createTextNode(topics [i]));  

                row.appendChild(cell);  

                $(“ dtable”)。appendChild(row);  

            }  

        }  

      

    <樣式類型= “ text / css” >   

        標(biāo)頭 >  h2 {  

            顏色:黃色;  

            背景:-webkit-gradient(線性,左上,左下,   

                             從(藍(lán)色)到(白色))  

        }  

        tr:nth-child(4n + 1){顏色:海軍;}  

        tr:nth-child(4n + 2){顏色:綠色;}  

        tr:nth-child(4n + 3){顏色:栗色;}  

        tr:nth-child(4n + 4){顏色:紫色;}  

        輸入[ type = “ text” ] {  

            背景:rgba(150,30,30,0.5);  

        }  

      

  

<正文onload = “ init()” >   

    <標(biāo)題>  

        < h2 > CSS3的世界  

        < div >您的瀏覽器支持哪種CSS3?  

      

    < table id = “ dtable” >    

    < div id = “ formSection” >   

        <標(biāo)簽為= “ name” >您叫什么名字?   

        <輸入類型= “文本” id = “名稱” >     

        < button id = “ rtBtn” onclick = “ rotate()” >旋轉(zhuǎn)    

      

  

  

清單3中的代碼替換標(biāo)題“ Gettysburg Address”上方的所有UI。您將稍后看到此頁面的下半部分的代碼。

首先應(yīng)該檢查頁面標(biāo)題。如果您查看清單3底部附近的HTML頁面主體,您將看到這個(gè)標(biāo)題實(shí)際上位于一個(gè)header標(biāo)記中—這是HTML 5中一個(gè)一個(gè)新的HTML元素。

現(xiàn)在看看style元素(位于清單3中的HTML主體上方)。這個(gè)文本 的樣式使用帶有選擇器標(biāo)頭> h2的CSS設(shè)置。此規(guī)則將文本顏色設(shè)置為黃色,同時(shí)將其背景設(shè)置為藍(lán)色和白色。背景應(yīng)用有梯度。這是您看到的前綴為-webkit的CSS特性的首個(gè)示例。您可能會(huì)出錯(cuò),這個(gè)指向使這個(gè)CSS專為Webkit的瀏覽器。但是,在眾多情況下,這些情況是CSS 3.0標(biāo)準(zhǔn)的一部分,但它們本身在這個(gè)標(biāo)準(zhǔn)中還在不斷微小變化的部分。大量情況下,Webkit瀏覽器和基于Mozilla Firefox的瀏覽器都已經(jīng)實(shí)現(xiàn)了這些特性。如果您的開發(fā)也需要針對(duì)Mozilla瀏覽器(Firefox的移動(dòng)版本Fennec,該版本在歐洲的諾基亞智能手機(jī)上迅速流行起來),那么您通常可以將-webkit逐步更改為-moz。

如圖2所示,當(dāng)您顯示該表的內(nèi)容時(shí),相鄰兩行的顏色各不相同。這個(gè)任務(wù)使用下一個(gè)CSS部分— tr:nth -child聲明—來完成??梢栽谌我庵貜?fù)的元素上使用nth-child聲明。您傳遞一個(gè)使用謂詞的公式,檢查它是否是一個(gè)有效的元素規(guī)則。在本例中,您聲明表單行號(hào)為4n + 1(1、5、9,等等)的行的顏色為海軍藍(lán),表單行號(hào)為4n + 2(2、6、10,等等)的行的顏色為綠色,以此類推,其余過去,您經(jīng)常需要對(duì)表,列表等組件實(shí)現(xiàn)類似的視覺效果,但通常是通過繁瑣的JavaScript來實(shí)現(xiàn)。

最后的視覺元素是紅色的文本分支,帶有標(biāo)簽 和文本按鈕旋轉(zhuǎn)。這個(gè)文本字段的紅色是使用一個(gè)特定于類型的輸入選擇器實(shí)現(xiàn)的。換句話說,這是一個(gè)CSS規(guī)則,只適用于類型為text的輸入元素?,F(xiàn)在,您可能想知道Rotate Button到底作用何在?看看清單4中的代碼就明白了,該代碼調(diào)用一個(gè)稱為rotate的函數(shù)。

清單4.使用CSS的JavaScript rotation函數(shù)

JavaScript代碼將內(nèi)容復(fù)制到

函數(shù) rotate(){  

    $(“ formSection” ).style [ “ -webkit-transform” ] =  “ rotateZ(-5deg)” ;  

    $(“ formSection” ).style [ “ -webkit-transition” ] =   

          “ -webkit-transform 2s輕松輸入輸出” ;  

    $(“ rtBtn” ). innerHTML =  “撤消” ;  

    $(“ rtBtn” ).onclick =  function (){  

        $(“ formSection” ).style [ “ -webkit-transform” ] =  “” ;  

        $(“ rtBtn” ). innerHTML =  “旋轉(zhuǎn)” ;  

        $(“ rtBtn” ). setAttribute (“ onclick” ,  “ rotate()” );  

    }  

}  

這個(gè)旋轉(zhuǎn)函數(shù)使用JavaScript來更改應(yīng)用到稱為formSection的div的CSS。(注意:您正在將$()使用document.getElementById()的一個(gè)別名。)要旋轉(zhuǎn)這個(gè)div,將它的-webkit-transform樣式設(shè)置為rotateZ(-5deg),將其逆時(shí)針旋轉(zhuǎn)5度。然后,將-webkit-transform樣式設(shè)置為-webkit-transform 2s easy-in-out。這使旋轉(zhuǎn)耗時(shí)兩秒鐘,緩慢啟動(dòng),加速,然后在最后再次減速。在圖3中,左邊顯示您叫什么名字?平行旋轉(zhuǎn)之前的初始位置;右邊顯示該分支部分旋轉(zhuǎn)后的視覺效果及其撤消按鈕。

圖3.旋轉(zhuǎn)HTML元素

在一個(gè)移動(dòng)設(shè)備上旋轉(zhuǎn)HTML元素的屏幕截圖 

參見參考資料中的鏈接查看這個(gè)效果在Chrome,Safari 4和Opera等兼容HTML 5的瀏覽器上的實(shí)際運(yùn)行情況。

現(xiàn)在我們轉(zhuǎn)到圖2中的頁面的下半部分。這里您看到幾個(gè)有趣的圖像,文本效果以及布局示例。清單5顯示了相關(guān)代碼。

清單5.圖2的下半部分代碼

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE html >  

< html >  

<頭>  

    <樣式類型= “ text / css” >   

        h3 {  

            -webkit-text-fill-color:藍(lán)色;  

            -webkit-text-stroke-color:黃色;  

            -webkit-text-stroke-width:1.5px;  

            背景:-webkit-gradient(radial,430 50,0,430 50,200,from(red),   

到(#000));  

            -webkit-box-reflect:5px以下-webkit-gradient(線性,左上,左   

底部,從(透明),色標(biāo)(0.5,透明),到(白色));  

        }  

        h4 {  

            顏色:rgba(0,0,255,0.75);  

            背景:rgba(255,255,0,0.5);  

        }  

        .xyz {  

            文字陰影:#6374AB 4px -4px 2px;  

            空白:nowrap;  

            寬度:14em;   

            高度:2em;   

            溢出:隱藏;  

            文字溢出:省略號(hào);   

            邊框:1px實(shí)線#bbb;   

            border-radius:9px;               

            背景顏色:#fff;  

        }  

        .abc {  

            邊框:1px實(shí)線#000;  

            border-radius:9px;          

            -webkit-column-count:4;  

            -webkit-column-rule:1px solid#a00;  

            -webkit-column-gap:0.75em;  

        }  

      

  

<正文onload = “ init()” >   

    < h3 >葛底斯堡地址  

    < h4 >賓夕法尼亞州葛底斯堡,亞伯拉罕·林肯。1863年11月19日  

    < div class = “ xyz” >   

        四分制和七年前,我們的父親在這方面提出了   

        大洲一個(gè)自由自由孕育并致力于   

            人人平等創(chuàng)造的主張。  

      

    < div class = “ abc” >   

        現(xiàn)在我們正在進(jìn)行一場(chǎng)內(nèi)戰(zhàn),測(cè)試是否   

            民族,或任何一個(gè)如此懷念,如此敬業(yè)的國(guó)家,   

            忍受。我們?cè)谀菆?chǎng)戰(zhàn)爭(zhēng)的偉大戰(zhàn)場(chǎng)上相遇。我們有   

            來奉獻(xiàn)該領(lǐng)域的一部分,作為最后的休息   

            在這里獻(xiàn)出生命的那個(gè)人那個(gè)國(guó)家可能   

            生活。我們應(yīng)該這樣做完全合適和適當(dāng)。  

      

  

  

我們來逐個(gè)看看這個(gè)代碼中的元素。首先,為“葛底斯堡演說”創(chuàng)建了一個(gè)標(biāo)題,并以幾種方式設(shè)置其樣式。

使用-webkit-text-fill-color,-webkit-text-stroke-color和-webkit-text-stroke-width樣式來創(chuàng)建“黃中帶藍(lán)”的效果。

通過設(shè)置背景樣式-webkit-gradient來在文本后面放置一個(gè)紅色黑色背景。注意,這是一個(gè)放射狀排列,而導(dǎo)致您看到的是一個(gè)線性漸變。這兩種在智能手機(jī)上的效果都很好。

通過設(shè)置-webkit-box-reflect樣式對(duì)標(biāo)題應(yīng)用一個(gè)倒影。設(shè)置這個(gè)樣式以在標(biāo)題下方5個(gè)位置處反射標(biāo)題,反向倒影應(yīng)用一個(gè)漸變效果。這里的效果使倒影看起來好像正在淡出。如果回顧一下圖2,您將看到,Android瀏覽器不支持這個(gè)對(duì)倒影應(yīng)用一個(gè)漸變的組合:它只是呈現(xiàn)不帶任何排序的倒影。

繼續(xù)移動(dòng)到下一個(gè)標(biāo)題,對(duì)它應(yīng)用一個(gè)非常簡(jiǎn)單的樣式:文本一種顏色,背景另一種顏色。這兩種顏色都使用rgba函數(shù)來指定“紅-綠-藍(lán)”值,以及一個(gè)alpha亮度值。值1.0完全不透明,值0.0則為透明。

清單5中的下一部分是此處短文的第一段。文本周圍有一個(gè)邊界,您使用新的border-radius樣式來實(shí)現(xiàn)4個(gè)圓角。現(xiàn)在,您在網(wǎng)站上到處都能看到這樣的圓角,它們通常使用圖像來實(shí)現(xiàn)。與使用CSS 3.0來實(shí)現(xiàn)命名,這種方法真是太老土了。通過使用text-shadow樣式來向這個(gè)這一文本的一個(gè)文本應(yīng)用一個(gè)陰影。最后,注意區(qū)域受到了影響父div的高度和寬度的限制,文本太大了。與在一些較老的瀏覽器中看到的那樣直接截取文本相反,通過設(shè)置text-overflow樣式可以看到一個(gè)省略的省略號(hào)(...)效果。

最后,來到文本的最后部分。它的周圍也有一個(gè)邊界,但是注意,它出現(xiàn)在4個(gè)帶有列分隔符的列中。變量,設(shè)置-webkit-column-count樣式,并設(shè)置配套的- webkit-column-rule樣式來獲取這些分隔符??梢韵胍姡绻麤]有這些新的CSS 3.0特性,像這樣的格式化文本將會(huì)是多么的繁瑣!當(dāng)您創(chuàng)建簡(jiǎn)單的headers和footer(它們同時(shí)也是HTML 5中的新元素)時(shí),這也可能是一個(gè)很有用的特性??匆幌滤鼈円约坝蒆TML 5約會(huì)的其他一些新標(biāo)記。

新語義

HTML 5向HTML標(biāo)記添加了許多新元素。其中一些元素將導(dǎo)致引導(dǎo)瀏覽器提供一些新的呈現(xiàn)處理。其他一些元素將添加一些稍后可以通過JavaScript變得可用的額外特性。但是,另一些元素則不這些與,

看起來一樣,并且擁有相同的編程接口。但是,它們將添加額外的語義含義。這些新語義針對(duì)頁面的非視覺用戶(這些新標(biāo)記還向開發(fā)人員提供了一些鏈接,幫助他們編寫表現(xiàn)力更強(qiáng)的CSS選擇器。圖4展示了包括使用屏幕閱讀器這樣的輔助技術(shù)的用戶)和搜索引擎爬蟲這樣的計(jì)算機(jī)程序很重要。一個(gè)使用一些新語義元素的網(wǎng)頁。

圖4. iPhone上的一些新HTML 5元素

iPhone上的新HTML 5元素標(biāo)題,導(dǎo)航,文章,部分以及一旁的屏幕截圖 

圖4中的這個(gè)示例擁有一個(gè)header元素,幾個(gè)nav元素,一個(gè)article元素,一個(gè)section元素以及以及一個(gè)side元素。這些元素不會(huì)導(dǎo)致任何特殊呈現(xiàn)。它們只是添加語義值,您可以使用它們來編寫圖4中顯示的圖片的代碼如清單6所示。

清單6. HTML 5中的新語義元素

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE html >  

< html >  

<頭>  

< meta http-equiv = “ Content-Type”內(nèi)容= “ text / html; charset = UTF-8” >    

    < meta name = “ viewport” content =“寬度=設(shè)備寬度; 初始比例= 1 .0;     

        最大比例= 1 .0; 用戶可縮放= 0 ;“ />  

    < meta name = “ apple-touch-fullscreen”內(nèi)容= “ YES” />     

< title >獲取最新標(biāo)記  

  

<身體>  

    <標(biāo)頭樣式= “邊框:1px點(diǎn)#000;邊框半徑:3px;” >   

        < hgroup align = “中心” >   

            < h2 >實(shí)際文檔具有標(biāo)題  

            < h3 >即使他們不這么說  

          

        < hgroup >  

        < nav style = “ -webkit-column-count:3; -webkit-column-rule:1px solid#a00;” >   

            <一個(gè)HREF = “新css.html” > CSS3 < BR />   

            <一個(gè)HREF = “Report.htm1”進(jìn)行>畫布 < BR />   

            <一個(gè)HREF = “elements.html” >標(biāo)記   

          

          

      

    <文章>  

       < h2 > HTML5中有很多新的標(biāo)記元素  

       <時(shí)間日期時(shí)間= “2010-05-16”  pubdate的>星期日,5月16日   

       <部分>您是否注意到我們只有兩個(gè)H1?   

       但這很酷!  

       < aside style = “空白:nowrap;溢出:隱藏;文本溢出:省略號(hào);” >    

            如果此頁面真的很受歡迎,我會(huì)在這里放一個(gè)廣告并制作一些  

            大量現(xiàn)金  

          

      

  

  

注意,您還應(yīng)用了一些新的CSS樣式來在header周圍創(chuàng)建了一個(gè)圓角框,并為nav創(chuàng)建了幾個(gè)分隔符。您還在旁邊使用了文本溢出樣式。這里的關(guān)鍵點(diǎn)是:無需額外的工作,您就可以創(chuàng)建更重疊的標(biāo)記,然后,您可以像使用了

一樣顯示該標(biāo)記。要查看擁有更多視覺和編程效果的新HTML 5元素的一個(gè)示例,請(qǐng)看圖5。(查看圖5的文本版本。)

圖5.在iPhone上使用HTML 5創(chuàng)建的表單

在iPhone上使用HTML 5表單元素創(chuàng)建的幾個(gè)表單的屏幕截圖 

圖5中的屏幕使用了在HTML 5中可用的許多新表單元素。在很多情況下,這些元素看起來就像現(xiàn)有的元素,但您可以期望瀏覽器添加這些更豐富的表單元素的更好的視覺表示。為展示大致效果,圖6顯示了上述表單元素在Opera桌面瀏覽器中的效果。(查看圖6的文本版本。)

圖6. Opera的HTML 5表單元素

Opera上使用HTML 5表單元素創(chuàng)建的幾個(gè)表單的屏幕截圖 

Opera,一直是實(shí)現(xiàn)HTML 5特性的先行者,這對(duì)于新的表單元素而言尤其如此?,F(xiàn)在,看看生成清單4和清單5的代碼,更好地理解Opera之所以采用其呈現(xiàn)方式的原因。清單7顯示了這個(gè)代碼。

清單7.代碼形式的HTML 5表單元素

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  

  

    Settings  

      

   
  

      

   

          placeholder="First and last name" required />
  

      

   

           placeholder="example@domain.com" required />
  

      

   

          placeholder="Eg. +447500000000" required />
  

      

      

    < fieldset style = “邊框:點(diǎn)距1px#000;邊框半徑:6px” >   

        <圖例>首選聯(lián)系方式  

        < ol >  

            <李>  

                <輸入id = “ emailMeth”名稱= “ contactMethod”     

                            type = “ radio” >  

                <標(biāo)簽為= “ emailMeth” >電子郵件   

              

            <李>  

                <輸入id = “ phoneMeth”名稱= “ contactMethod”     

                            type = “ radio” >  

                <標(biāo)簽為= “ phoneMeth” >電話   

              

          

      

    <標(biāo)簽為= “氣候” >優(yōu)選的外部溫度   

    <輸入id = “氣候”名稱= “氣候”類型= “范圍” min = “ 50”       

          最大= “100”步驟= “5”的值= “70” /> < BR />    

    < label for = “ color” >最喜歡的顏色   

    <輸入ID = “顏色”名稱= “顏色”類型= “顏色” /> < BR />     

    <標(biāo)簽為= “ referrer” >您從哪里得知我們的?   

    <輸入類型= “ url”名稱= “ refUrl” id = “推薦人” list = “ urls” />      

    < datalist id = “ urls” >   

        <選項(xiàng)標(biāo)簽= “ TechCrunch”值= “ http://www.techcrunch.com/” >    

        <選項(xiàng)標(biāo)簽= “ ReadWrite Web”值= “ http://www.readwriteweb.com/” >    

        <選項(xiàng)標(biāo)簽= “ Engadget”值= “ http://www.engadget.com/” >    

        <選項(xiàng)標(biāo)簽= “ Ajaxian”值= “ http://www.ajaxian.com/” >    

    < BR />  

    < button type = “ button” onclick = “ checkInputs()” >保存    

  

  

清單7中的表單元素展示了HTML 5的許多新特性。注意兩個(gè)新屬性:需要和自動(dòng)對(duì)焦。需要屬性進(jìn)行表單驗(yàn)證(以下將詳細(xì)介紹)過程中,自動(dòng)對(duì)焦屬性允許選擇頁面上的元素以獲取焦點(diǎn)。還要注意幾個(gè)擁有占位符文本的元素。這是許多網(wǎng)站多年來一直在使用的一個(gè)模式—將某個(gè)示例或解釋性文本放置到一個(gè)文本標(biāo)記—但開發(fā)人員總是必須修改(hack )該代碼。圖4展示了iPhone如何整潔地實(shí)現(xiàn)這個(gè)模式。

接下來,您將看到一些支持輸入元素的新類型,例如電子郵件,電話,日期,范圍,顏色和url。現(xiàn)在,這些類型在iPhone和Android瀏覽器上總是呈現(xiàn)為文本分段,但那只是使用圖5展示了它們未來的可能外觀。date輸入在Opera上展示其新UI(一個(gè)插入式日歷)前必須獲得焦點(diǎn)。這對(duì)于圖7中的url輸入也同樣適用,但原因不在于它是url輸入,又原因不在于它是一個(gè)list屬性。該屬性指向datalist元素,該元素包含該對(duì)應(yīng)的支持的值。當(dāng)您聚焦該分段時(shí),您將看到來自datalist的可能值(本例中是幾個(gè)URL)。圖7展示了日期和數(shù)據(jù)列表特性。

圖7.帶有日期和數(shù)據(jù)列表的HTML 5輸入

帶有日期和數(shù)據(jù)列表的HTML 5輸入的屏幕截圖 

隨著Webkit持續(xù)快速發(fā)展,可以預(yù)見,許多輸入類型將允許提供更有用的視覺表示。Opera將為您帶來更好的未來。許多這些輸入對(duì)應(yīng)也提供驗(yàn)證,HTML 5擁有完整的新驗(yàn)證API 。這些特性目前還沒有在iPhone或基于Android的設(shè)備上實(shí)現(xiàn),但已經(jīng)在其的桌面對(duì)等設(shè)備上實(shí)現(xiàn),因此,預(yù)計(jì)可以很快在移動(dòng)瀏覽器上實(shí)現(xiàn)這些特性。清單8展示了這些新的驗(yàn)證API的使用情況。

清單8. HTML 5驗(yàn)證API的應(yīng)用

JavaScript代碼將內(nèi)容復(fù)制到

函數(shù) checkInputs(){  

    var 輸入= document.getElementById(“輸入” ).childNodes;  

    var  len = inputs.length;  

    var  i = 0;  

    var  input =  null ;  

    var  errors = [];  

    為 (i = 0; i

        輸入= inputs.item(i);  

        如果 (input.nodeName ==  “ INPUT” ){  

            如果 (input.validity){  

                如果 (!input.checkValidity()){  

                    errors.push(input.validationMessage);  

                }  

            }  

        }  

    }  

    var  errMsg =  “有”  + errors.length +  “錯(cuò)誤” ;  

    var  notify =  function (){  

        var  notification =   

            webkitNotifications.createNotification(null ,  “ Errors!” ,errMsg);  

        notification.show();  

    };  

    如果 (window.webkitNotifications){  

        如果 (webkitNotifications.checkPermission()){  

            webkitNotifications.requestPermission(notify);  

        } 其他 {  

            通知();  

        }  

    } 其他 {  

        警報(bào)(errMsg);  

    }  

}  

每個(gè)輸入元素?fù)碛幸粋€(gè)有效性屬性。可以使用這個(gè)屬性,或者,也可以使用返回ture或false的checkValidity()函數(shù)以及驗(yàn)證消息屬性來獲取一條本地錯(cuò)誤消息。在此處撰寫之時(shí),多個(gè)最新的桌面瀏覽器并不能為validationMessage返回任何一致或標(biāo)準(zhǔn)的消息,因此,它的用途有限。validity可以使用檢查不同類型的錯(cuò)誤,值缺少,rangeOverflow,rangeUnderflow,patternMismatch和tooLong。例如,如果元素?fù)碛幸粋€(gè)必要的屬性而用戶留空,那么validity.valueMissing將為true。

最后,注意,在清單8中,您在明確所有的驗(yàn)證錯(cuò)誤之后,將嘗試使用webkitNotifications。這些通知與您的桌面計(jì)算機(jī)上的通知類似,可使用最新版本Chrome中。因此,您同樣可以期望它們將API的使用很簡(jiǎn)單明了。惟一需要注意的是,您需要檢查用戶是否已提供您的站點(diǎn)許可來使用這個(gè)API。如果沒有,您必須請(qǐng)求許可;反之,則傳遞想要被調(diào)用的函數(shù)。

到此,關(guān)于“HTML5移動(dòng)應(yīng)用開發(fā)新的可視化UI特性怎么實(shí)現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


文章名稱:HTML5移動(dòng)應(yīng)用開發(fā)新的可視化UI特性怎么實(shí)現(xiàn)
文章源于:http://weahome.cn/article/gsjpid.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部