<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【HTML】905- 5個(gè)隱藏的 HTML 技巧

          共 3316字,需瀏覽 7分鐘

           ·

          2021-03-26 08:41

          編譯:冷星

          來(lái)源:SegmentFault 思否社區(qū)

          Web開(kāi)發(fā)人員都在廣泛的使用HTML。無(wú)論你使用什么框架或者選擇哪個(gè)后端語(yǔ)言,框架在變,但是HTML始終如一。盡管被廣泛使用,但還是有一些標(biāo)簽或者屬性是大部分開(kāi)發(fā)者不熟知的。雖然現(xiàn)在有很多的模版引擎供我們使用,但是我們還是需要盡可能的熟練掌握HTML內(nèi)容,就像CSS一樣。


          在我看來(lái),最好盡可能使用HTML特性來(lái)實(shí)現(xiàn)我們的功能,而不是使用JavaScript實(shí)現(xiàn)相同的功能,盡管我承認(rèn)編寫HTML可能會(huì)是重復(fù)的和無(wú)聊的。

          盡管許多開(kāi)發(fā)人員每天都在使用HTML,但他們并沒(méi)有嘗試改進(jìn)自己的項(xiàng)目,也沒(méi)有真正利用HTML的一些鮮為人知的特性。


          下面這5個(gè)通過(guò)HTML標(biāo)簽/屬性實(shí)現(xiàn)的功能我覺(jué)得需要了解一下:




          圖片懶加載


          圖片懶加載可以幫助提升網(wǎng)站的性能和響應(yīng)能力。圖片懶加載可以避免立即加載那些不在屏幕中立即顯示的圖片素材,當(dāng)用戶滾動(dòng)臨近圖片時(shí)再去開(kāi)始加載。


          換言之,當(dāng)用戶滾動(dòng)到圖片出現(xiàn)時(shí)再進(jìn)行加載,否則不加載。這就降低了屏幕內(nèi)容展示過(guò)程中的圖片素材的請(qǐng)求數(shù)量,提升了站點(diǎn)性能。


          往往我們都是通過(guò)javascript來(lái)實(shí)現(xiàn)的,通過(guò)監(jiān)聽(tīng)頁(yè)面滾動(dòng)事件來(lái)確定加載對(duì)應(yīng)的資源。但是,在不完全考慮兼容性的場(chǎng)景下,我們其實(shí)可以直接通過(guò)HTML來(lái)直接實(shí)現(xiàn)。


          注:本篇的提到的標(biāo)簽和屬性的兼容性需要大家根據(jù)實(shí)際場(chǎng)景來(lái)選取是否使用


          可以通過(guò)為圖片文件添加loading="lazy"的屬性來(lái)實(shí)現(xiàn):


          <img src="image.png" loading="lazy" alt="lazy" width="200" height="200" />




          輸入提示


          當(dāng)用戶在進(jìn)行輸入搜索功能時(shí),如果能夠給出有效的提示,這會(huì)大大提升用戶體驗(yàn)。輸入建議和自動(dòng)完成功能現(xiàn)在到處可見(jiàn),我們可以使用Javascript添加輸入建議,方法是在輸入框上設(shè)置事件偵聽(tīng)器,然后將搜索到的關(guān)鍵詞與預(yù)定義的建議相匹配。


          其實(shí),HTML也是能夠讓我們來(lái)實(shí)現(xiàn)預(yù)定義輸入建議功能的,通過(guò)<datalist>標(biāo)簽來(lái)實(shí)現(xiàn)。需要注意的是,使用時(shí)這個(gè)標(biāo)簽的id屬性需要和input元素的list屬性一致。


          <label for="country">請(qǐng)選擇喜歡的國(guó)家:</label>
          <input list="countries" name="country" id="country">
          <datalist id="countries">
            <option value="UK">
            <option value="Germany">
            <option value="USA">
            <option value="Japan">
            <option value="India">
            <option value=“China”>
          </datalist>




          Picture標(biāo)簽


          你是否遇到過(guò)在不同場(chǎng)景或者不同尺寸的設(shè)備上面的時(shí)候,圖片展示適配問(wèn)題呢?我想大家都遇到過(guò)。


          針對(duì)只有一個(gè)尺寸的圖片素材的時(shí)候,我們往往可以通過(guò)CSS的object-fit屬性來(lái)進(jìn)行裁切適配。但是有些時(shí)候需要針對(duì)不同的分辨率來(lái)顯示不同尺寸的圖片的場(chǎng)景的時(shí)候,我們是否可以直接通過(guò)HTML來(lái)實(shí)現(xiàn)呢?


          HTML提供了<picture>標(biāo)簽,允許我們來(lái)添加多張圖片資源,并且根據(jù)不同的分辨率需求來(lái)展示不同的圖片。


          <picture>
            <source media="(min-width:768px)" srcset="med_flower.jpg">
            <source media="(min-width:495px)" srcset="small_flower.jpg">
            <img src="high_flower" style="width: auto;" />
          </picture>


          我們可以定義不同區(qū)間的最小分辨率來(lái)確定圖片素材,這個(gè)標(biāo)簽的使用有些類似<audio>和<video>標(biāo)簽。




          Base URL

          當(dāng)我們的頁(yè)面有大量的錨點(diǎn)跳轉(zhuǎn)或者靜態(tài)資源加載時(shí),并且這些跳轉(zhuǎn)或者資源都在統(tǒng)一的域名的場(chǎng)景時(shí),我們可以通過(guò)<base>標(biāo)簽來(lái)簡(jiǎn)化這個(gè)處理。


          例如,我們有一個(gè)列表需要跳轉(zhuǎn)到微博的不同大V的主頁(yè),我們就可以通過(guò)設(shè)置<base>來(lái)簡(jiǎn)化跳轉(zhuǎn)路徑


          <head>
            <base href="https://www.weibo.com/" target="_blank">  
          </head>
          <body>
            <a href="jackiechan">成龍</a>
            <a href="kukoujialing">賈玲</a>
          </body>


          <base>標(biāo)記必須具有href和target屬性。




          頁(yè)面重定向(刷新)


          當(dāng)我們希望實(shí)現(xiàn)一段時(shí)間后或者是立即重定向到另一個(gè)頁(yè)面的功能時(shí),我們可以直接通過(guò)HTML來(lái)實(shí)現(xiàn)。


          我們經(jīng)常會(huì)遇到有些站點(diǎn)會(huì)有這樣一個(gè)功能,“5s后頁(yè)面將跳轉(zhuǎn)”。這個(gè)交互可以嵌入到HTML中,直接通過(guò)<meta>標(biāo)簽,設(shè)置http-equiv="refresh"來(lái)實(shí)現(xiàn)


          <meta http-equiv="refresh" content="4; URL='https://google.com' />


          這里content屬性指定了重定向發(fā)生的秒數(shù)。值得一提的是,盡管谷歌聲稱這種形式的重定向和其他的重定向方式一樣可用,但是使用這種類型的重定向其實(shí)并不是那么的優(yōu)雅,往往會(huì)顯得很突兀。


          因此,最好在某些特殊的情況下使用它,比如在長(zhǎng)時(shí)間用戶不活動(dòng)之后再重定向到目標(biāo)頁(yè)面。




          后記


          HTML和CSS是非常強(qiáng)大的,哪怕我們僅僅使用這兩種技術(shù)也能創(chuàng)建出一些奇妙的網(wǎng)站。雖然它們的使用量很大很普遍,還是有很多的開(kāi)發(fā)者并沒(méi)有真正的深入了解他們,還有很多的內(nèi)容需要我們深入的去學(xué)習(xí)和理解,實(shí)踐,有很多的技巧等待著我們?nèi)グl(fā)現(xiàn)。


          本文是翻譯,譯者,閱讀原文:

          https://js.plainenglish.io/5-html-tricks-nobody-is-talking-about-a0480104fe19

          1. JavaScript 重溫系列(22篇全)
          2. ECMAScript 重溫系列(10篇全)
          3. JavaScript設(shè)計(jì)模式 重溫系列(9篇全)
          4. 正則 / 框架 / 算法等 重溫系列(16篇全)
          5. Webpack4 入門(上)|| Webpack4 入門(下)
          6. MobX 入門(上) ||  MobX 入門(下)
          7. 100+篇原創(chuàng)系列匯總

          回復(fù)“加群”與大佬們一起交流學(xué)習(xí)~

          點(diǎn)擊“閱讀原文”查看 100+ 篇原創(chuàng)文章

          瀏覽 36
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产成人视频九色91 | 中国一级免费色电影 | 国产免费资源 | 淫淫色综合| 国产特级AV |