Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国内免费一区二区三区视频,国产精品黄网站免费观看 ,三级在线观看免播放网站

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          90%不知道的css常識(shí):元素縱向百分比是相對(duì)于寬度不是高度

          調(diào)查了身邊五六年經(jīng)驗(yàn)以上的幾個(gè)前端同學(xué)和同事,盡然發(fā)現(xiàn)絕大部分人都不知道,當(dāng)然,在看到這個(gè)文章之前,我也不知道這個(gè),平時(shí)雖然都一直在做web前端開(kāi)發(fā),但真沒(méi)涉及到這塊,或者說(shuō)涉及到了,也解決了,但是還真沒(méi)探究過(guò)這個(gè)問(wèn)題,你是否躺槍了呢?

          這是一個(gè)很讓人困惑的CSS特征,我之前也談到過(guò)它。我們大家都知道,當(dāng)按百分比設(shè)定一個(gè)元素的寬度時(shí),它是相對(duì)于父容器的寬度計(jì)算的,但是,對(duì)于一些表示豎向距離的屬性,例如padding-top,padding-bottom,margin-top,margin-bottom等,當(dāng)按百分比設(shè)定它們時(shí),依據(jù)的也是父容器的寬度,而不是高度。

          下面是一個(gè)實(shí)例演示代碼,你可以調(diào)整容器的寬度,但你會(huì)發(fā)現(xiàn),黃塊塊的padding-bottom的距離也會(huì)隨之寬度而變大或變小。

          HTML代碼

          <div class="wrapper" id="w">

          <div class="box" id="b"></div>

          </div>

          <input type="range" min="120" max="400" value="400" class="range" id="r">

          <output>寬度是: <span id="op">400px</span></output>

          <output>黃塊塊的Padding bottom是:<br><span id="op2">10%</span></output>

          CSS代碼

          body {

          font-family: Arial, sans-serif;

          padding-top: 30px;

          text-align: center;

          }

          .wrapper {

          width: 400px;

          margin: 0 auto;

          border: solid 1px black;

          }

          .box {

          width: 100px;

          height: 100px;

          background: gold;

          margin-left: auto;

          margin-right: auto;

          padding-top: 10%;

          padding-bottom: 10%;

          margin-bottom: 5%;

          }

          .range {

          display: block;

          margin: 20px auto;

          }

          output {

          text-align: center;

          display: block;

          font-weight: bold;

          padding-bottom: 20px;

          }

          output span {

          font-weight: normal;

          }

          上面的代碼中,我們對(duì)內(nèi)部子元素聲明了3個(gè)豎向的距離,都是百分比形式。當(dāng)移動(dòng)滑塊時(shí),我們的js代碼只需修改了容器的寬度。但是,這個(gè)這三個(gè)屬性高度都跟隨著變化,可以看出,它們的百分比計(jì)算是基于容器的寬度,而不是高度的。

          切圖網(wǎng)致力于web前端技術(shù)開(kāi)發(fā),關(guān)注用戶體驗(yàn),關(guān)注移動(dòng)web前端,響應(yīng)式,微場(chǎng)景等技術(shù),如果你對(duì)此感興趣請(qǐng)加公眾微信賬號(hào):qietuwang

          程序開(kāi)發(fā)過(guò)程中,我們始終要謹(jǐn)記的一點(diǎn)就是:程序是寫(xiě)給人看的,不是寫(xiě)給機(jī)器看的。任何項(xiàng)目開(kāi)發(fā),都必須要考慮到人員迭代,我們不能讓下一個(gè)接手你代碼的人,在看到你寫(xiě)的代碼時(shí)會(huì)說(shuō)出這樣的話,“這個(gè)代碼是人寫(xiě)出來(lái)的嗎?可讀性太差了”。因此,我們必須遵循一定的規(guī)范,讓代碼的可讀性更強(qiáng)。

          今天,我們就一起來(lái)看下前端開(kāi)發(fā)過(guò)程所能涉及到的跟HTML有關(guān)的規(guī)范問(wèn)題。

          HTML5

          文檔類型

          在HTML文件中,推薦使用支持HTML5特性的文檔聲明,<!DOCTYPE html>。

          命名規(guī)范

          首先是在文件的命名上,應(yīng)當(dāng)采用駝峰式命名,首字母小寫(xiě),后面每個(gè)單詞首字母大寫(xiě),而且對(duì)于具體的文件應(yīng)當(dāng)具有語(yǔ)義化,能夠給人一種直觀的感受這個(gè)文件的作用是什么。現(xiàn)在前端開(kāi)發(fā)開(kāi)發(fā)過(guò)程中都講求模塊化開(kāi)發(fā),甚至是組件化開(kāi)發(fā),在文件命名時(shí)更應(yīng)該以模塊名或者組件名來(lái)命名。

          例如在寫(xiě)一個(gè)AngularJS應(yīng)用時(shí),由于會(huì)涉及到Controller,Service,F(xiàn)ilter等概念,我們會(huì)分別建立一個(gè)文件,假如這個(gè)模塊的名字是庫(kù)存管理stockManage,我們可以這樣來(lái)命名文件。

          • stockManageCtrl

          • stockChangeService

          • stockChangeFilter

          語(yǔ)義化

          我們所說(shuō)的語(yǔ)義化指的是使用具有語(yǔ)義化的標(biāo)簽,在H5中添加了類似于header, nav, article, section, aside, footer等標(biāo)簽,從單詞的意思上我們也很容易看出標(biāo)簽的含義。

          我們不推薦使用只有div標(biāo)簽的頁(yè)面,例如

          不推薦使用

          而是應(yīng)該使用以下這種帶有語(yǔ)義化的標(biāo)簽。

          推薦使用

          img標(biāo)簽

          img標(biāo)簽是網(wǎng)頁(yè)用來(lái)顯示照片的標(biāo)簽,在頁(yè)面所有標(biāo)簽中占據(jù)的比例非常之高,但是在使用img標(biāo)簽時(shí)也有下面需要注意的點(diǎn)。

          • 給定width和height屬性

          因?yàn)闉g覽器在加載圖片的過(guò)程中,需要先下載圖片,然后再解析圖片的高度和寬度,如果不給img元素設(shè)定高度和寬度,這樣在圖片加載過(guò)程中會(huì)不斷的計(jì)算,重排頁(yè)面的布局,在網(wǎng)絡(luò)不好的時(shí)候就會(huì)經(jīng)常出現(xiàn)元素出現(xiàn)不規(guī)律移動(dòng)的情況。因此給img元素設(shè)定width和height屬性是必要的。

          • alt屬性

          img標(biāo)簽的alt屬性表示的是在圖片無(wú)法顯示時(shí),使用文字來(lái)代替顯示,它可以用在以下幾個(gè)場(chǎng)景中:

          1. 網(wǎng)路延遲太大

          2. src屬性指定路徑出錯(cuò)

          3. 瀏覽器禁用圖像

          由于其有良好的信息提示效果,并且有助于網(wǎng)頁(yè)SEO效果,強(qiáng)烈建議在img標(biāo)簽中使用alt屬性

          而且很重要的一點(diǎn)是img標(biāo)簽的引入是需要呈現(xiàn)出與頁(yè)面相關(guān)的內(nèi)容,其他情況應(yīng)該使用CSS樣式實(shí)現(xiàn)。例如我們不推薦下面這種情況。

          不推薦

          而推薦使用下面這種情況

          推薦使用

          文件分離

          前端文件主要包括HTML頁(yè)面文件,CSS樣式文件和Javascript腳本文件。我們應(yīng)該讓三者各司其職,在HTML中不應(yīng)該出現(xiàn)CSS和JS表達(dá)式;在JS文件中,不應(yīng)該出現(xiàn)大量的HTML和CSS代碼。在HTML文檔中應(yīng)當(dāng)盡量少的引入CSS和JS文件。為了保證文件的純凈,我們應(yīng)當(dāng)遵循下面的原則。

          1. 一個(gè)HTML文件應(yīng)該只引入一個(gè)CSS文件

          2. 合理運(yùn)用JS合并技術(shù)(Gulp, Webpack插件),保證引入JS文件不多于兩個(gè)

          3. 不使用行內(nèi)腳本元素(<script>alert('Hello World')</script>)

          4. 不在標(biāo)簽上使用style內(nèi)聯(lián)樣式

          不要使用style屬性

          腳本加載

          腳本加載在網(wǎng)頁(yè)加載過(guò)程中是一個(gè)很耗性能的過(guò)程,如果把JS文件放在head標(biāo)簽里,它的加載會(huì)一直阻塞DOM的解析,造成頁(yè)面延遲。

          因此現(xiàn)在講求的是腳本的異步加載過(guò)程,我們會(huì)使用到async關(guān)鍵字,考慮到瀏覽器的兼容性,我們推薦使用下面的方式加載腳本。

          推薦方式

          合理使用ID和錨點(diǎn)

          合理使用ID和錨點(diǎn)可以非常方便的實(shí)現(xiàn)當(dāng)前頁(yè)面間的跳轉(zhuǎn),現(xiàn)在越來(lái)越多的教程網(wǎng)頁(yè)由于是單頁(yè)面,經(jīng)常會(huì)用到錨點(diǎn)跳轉(zhuǎn)。

          對(duì)錨點(diǎn)知識(shí)還不了解的,可以看看我寫(xiě)的這篇文章《神奇的html錨點(diǎn),讓你的網(wǎng)頁(yè)在內(nèi)部自由的跳轉(zhuǎn)》。

          總結(jié)

          今天這篇文章主要總結(jié)了前端開(kāi)發(fā)過(guò)程中的HTML規(guī)范問(wèn)題,相信大家也或多或少遇到過(guò),希望這篇文章能加深大家的認(rèn)識(shí)。

          ideo元素與audio元素所具有的屬性大致相同,

          下面來(lái)看一下這兩個(gè)元素都具有哪些屬性。

           src屬性和autoplay屬性

          src屬性用于指定媒體數(shù)據(jù)的URL地址。

          autoplay屬性用于指定媒體是否在頁(yè)面加載后自動(dòng)播放,使用方法如下。

          <video src="sample.mov" autoplay="autoplay"></video>

          在文件中創(chuàng)建多媒體元素<video>,并在元素的src屬性中,

          設(shè)置播放的視頻文件的URL地址,并設(shè)置頁(yè)面加載完成后自動(dòng)播放這個(gè)文件。代碼如下。

          <!DOCTYPE HTML>

          <html>

          <head>

          <meta charset="utf-8" />

          <title>使用多媒體元素播放文件</title>

          </head>

          <body>

          <video id="vdoMain" src="../Video/2.ogv" autoplay="true">

          你的瀏覽器不支持視頻

          </video>

          </body>

          </html>

           perload屬性

          perload屬性用于指定視頻或音頻數(shù)據(jù)是否預(yù)加載。如果使用預(yù)加載,

          則瀏覽器會(huì)預(yù)先將視頻或音頻數(shù)據(jù)進(jìn)行緩沖,這樣可以加快播放速度,

          因?yàn)椴シ艜r(shí)數(shù)據(jù)已經(jīng)預(yù)先緩沖完畢。

          該屬性有3個(gè)可選值,分別是none、metadata和auto,其默認(rèn)值為auto。

           none值表示不進(jìn)行預(yù)加載。

           metadata表示只預(yù)加載媒體的元數(shù)據(jù)(媒體字節(jié)數(shù)、第一幀、播放列表、持續(xù)時(shí)間等)。

           auto表示預(yù)加載全部視頻或音頻。

          該屬性的使用方法如下。

          <video src="sample.mov" preload="auto"></video>

           poster(video元素獨(dú)有屬性)和loop屬性

          當(dāng)視頻不可用時(shí),可以使用該元素向用戶展示一幅替代用的圖片。當(dāng)視頻不可用時(shí),

          最好使用poster屬性,以免展示視頻的區(qū)域中出現(xiàn)一片空白。

          該屬性的使用方法如下。

          <video src="sample.mov" psoter="cannotuse.jpg"></video>

          在文件中創(chuàng)建一個(gè)video元素,為video元素設(shè)置poster屬性,并選取一幅圖片作為該屬性的值。代碼如下。

          <html>

          <head>

          <meta charset="utf-8" />

          <title>設(shè)置video 元素的poster 屬性</title>

          </head>

          <body>

          <video id="vdoMain" src="../Video/2.ogv" controls="true" poster="../Images/1.jpg">

          你的瀏覽器不支持視頻

          </video>

          </body>

          </html>

          運(yùn)行實(shí)例,在播放視頻文件之前,在視頻播放區(qū)域中首先將顯示poster屬性指定的圖片,

          loop屬性用于指定是否循環(huán)播放視頻或音頻,

          其使用方法如下。

          <video src="sample.mov" autoplay="autoplay" loop="loop"></video>

           controls屬性、width屬性和height屬性(后兩個(gè)是video元素獨(dú)有屬性)

          controls屬性指定是否為視頻或音頻添加瀏覽器自帶的播放用的控制條。

          控制條中具有播放、暫停等按鈕。其使用方法如下。

          <video src="sample.mov" controls="controls"></video>

          說(shuō)明

          開(kāi)發(fā)者也可以在腳本中自定義控制條,而不使用瀏覽器默認(rèn)的控制條。

          width屬性與height屬性用于指定視頻的寬度與高度(以像素為單位),

          使用方法如下。

          <video src="sample.mov" width="500" height="500"></video>

          在文件中創(chuàng)建一個(gè)video元素,首先在元素的src屬性中設(shè)置需要播放的視頻文件,

          然后分別設(shè)置video元素的寬度與高度。代碼如下。

          <html>

          <head>

          <meta charset="utf-8" />

          <title>設(shè)置video 元素的大小</title>

          </head>

          <body>

          <video id="vdoMain" src="../Video/2.ogv" autoplay="true" width="360" height="220">

          你的瀏覽器不支持視頻

          </video>

          </body>

          </html>

           error屬性

          在讀取、使用媒體數(shù)據(jù)的過(guò)程中,正常情況下該屬性為null,

          但是任何時(shí)候只要出現(xiàn)錯(cuò)誤,該屬性將返回一個(gè)MediaError對(duì)象,

          該對(duì)象的code屬性返回對(duì)應(yīng)的錯(cuò)誤狀態(tài)碼,其可能的值如下。

           MEDIA_ERR_ABORTED(數(shù)值1):媒體數(shù)據(jù)的下載過(guò)程由于用戶的操作而被終止。

           MEDIA_ERR_NETWORK(數(shù)值2):確認(rèn)媒體資源可用,但是在下載時(shí)出現(xiàn)網(wǎng)絡(luò)錯(cuò)誤,媒體數(shù)據(jù)的下載過(guò)程被終止。

           MEDIA_ERR_DECODE(數(shù)值3):確認(rèn)媒體資源可用,但是解碼時(shí)發(fā)生錯(cuò)誤。

           MEDIA_ERR_SRC_NOT_SUPPORTED(數(shù)值4):媒體資源不可用,媒體格式不被支持。

          error屬性為只讀屬性。

           networkState屬性

          該屬性在媒體數(shù)據(jù)加載過(guò)程中讀取當(dāng)前網(wǎng)絡(luò)的狀態(tài),其值如下。

           NETWORK_EMPTY(數(shù)值0):元素處于初始狀態(tài)。

           NETWORK_IDLE(數(shù)值1):瀏覽器已選擇好用什么編碼格式來(lái)播放媒體,但尚未建立網(wǎng)絡(luò)連接。

           NETWORK_LOADING(數(shù)值2):媒體數(shù)據(jù)加載中。

           NETWORK_NO_SOURCE(數(shù)值3):沒(méi)有支持的編碼格式,不執(zhí)行加載。

          networkState屬性為只讀屬性,讀取網(wǎng)絡(luò)狀態(tài)的實(shí)例代碼如下。

           currentSrc屬性、buffered屬性

          可以用currentSrc屬性來(lái)讀取播放中的媒體數(shù)據(jù)的URL地址,該屬性為只讀屬性。

          最靠譜的WEB前端教程——整整140集,全程干貨無(wú)廢話,學(xué)完變大佬!


          主站蜘蛛池模板: 一区二区三区在线观看中文字幕| 中文字幕日韩一区二区三区不| 国产日韩高清一区二区三区 | 精品福利一区二区三区| 国产一区二区三区乱码| 一区二区高清在线观看| 国产av福利一区二区三巨| 91精品一区二区综合在线| 国产91久久精品一区二区| 人妻少妇一区二区三区| 日韩视频在线观看一区二区| 夜夜高潮夜夜爽夜夜爱爱一区| 精品欧洲AV无码一区二区男男 | 色狠狠色狠狠综合一区| 一区二区乱子伦在线播放| 无码人妻精品一区二区三区久久久 | 在线免费观看一区二区三区| 国产亚洲3p无码一区二区| 久热国产精品视频一区二区三区| 国产自产对白一区| 中文激情在线一区二区| 精品一区二区久久久久久久网站| 精品一区二区三区免费毛片| 伊人色综合网一区二区三区 | 久久99国产精一区二区三区| 精产国品一区二区三产区| 国产av成人一区二区三区| 中文字幕日韩一区| 亚洲成av人片一区二区三区| 精品福利一区二区三区免费视频| 精品国产一区二区22| 精品一区二区ww| 国产精品一区二区电影| 熟女少妇精品一区二区| 国产一区二区三区影院| 性色av一区二区三区夜夜嗨 | 国产免费一区二区三区在线观看| 亚洲韩国精品无码一区二区三区| 亚洲av福利无码无一区二区| 亚洲av区一区二区三| 亚洲国产一区二区三区青草影视|