整合營銷服務(wù)商

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

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

          那些你從不使用的且有趣的HTML屬性

          這篇文章中,描述并演示了一些有趣的 HTML 屬性,您可能聽說過也可能沒有聽說過,并且可能會發(fā)現(xiàn)它們非常有用,可以在您的項(xiàng)目中親自使用。

          有次和公司大佬閑余時(shí)間進(jìn)行討論時(shí),說到了一個問題:

          今年你很高興學(xué)習(xí)或更深入地學(xué)習(xí)哪些語言/技術(shù)?

          我的:typescript、next.js、react、graphql、solidity、node


          他的答案很簡單:HTML。而且我一點(diǎn)也沒有諷刺或嘲弄。當(dāng)然,我非常清楚在哪些情況下使用哪些標(biāo)簽,以及如何使我的 HTML 大部分具有語義性和可訪問性。

          但是我確信我已經(jīng)忘記了一大堆較少使用的屬性,并且可能有一大堆我甚至不知道存在的屬性。這篇文章是我學(xué)習(xí)的結(jié)果,我希望你會發(fā)現(xiàn)其中的一些對你有用,因?yàn)榇蟛糠殖鯇W(xué)者在接下來的幾個月里正在構(gòu)建 HTML 頁面。

          enterkeyhint虛擬鍵盤 的屬性

          iOS 13.7+,以及Chrome77+新支持了一個HTML屬性enterkeyhint,可以修改軟鍵盤中的enter鍵,也就是回車鍵的文案或者UI。

          該HTML屬性的兼容性如下圖所示:

          enterkeyhint接受七個可能值之一,這些值將確定用戶在他的“輸入”鍵上看到的內(nèi)容:

          enter

          表示回車,多出現(xiàn)在<textarea>文本域等需要多行輸入的場景中。

          go

          表示前往,, 意思是把用戶帶到他們輸入的文本的目標(biāo)處。

          next

          表示下一項(xiàng),通常會移動到下一個輸入項(xiàng)那里。

          previous

          ‘previous’表示上一個,通常會移動到上一個輸入項(xiàng)那里。

          search

          ‘search’表示搜索,通常用在搜索行為中。

          send

          ‘send’表示發(fā),通常用在文本信息的發(fā)送上。

          done

          ‘done’表示完成,表示沒有更多內(nèi)容輸入,輸入結(jié)束。

          只是強(qiáng)調(diào)一下,這個屬性不接受自定義值;該值需要是上面顯示的七個之一。無法識別的值將默認(rèn)為輸入鍵的設(shè)備默認(rèn)文本。

          <link>標(biāo)簽的title屬性

          這對我來說是全新的,可能是此列表中最有趣的一個。作為一些背景知識,如果您不知道,F(xiàn)irefox 有一個選項(xiàng)可讓您選擇查看頁面時(shí)要使用的樣式表。通常,此功能顯示兩個選項(xiàng):“基本頁面樣式”和“無樣式”,如下圖所示。

          這使您可以快速測試禁用樣式時(shí)頁面的外觀,還允許您使用任何備用樣式表查看頁面。

          備用樣式表功能通過兩個屬性啟用:title屬性和rel=alternate應(yīng)用于<link>元素,如下面的代碼所示:

          <link href="main.css" rel="stylesheet" title="Default">
          <link href="contrast.css" rel="alternate stylesheet" title="High Contrast">
          <link href="readable.css" rel="alternate stylesheet" title="Readable">

          在這種情況下,我的“默認(rèn)”樣式將自動應(yīng)用,但僅當(dāng)我使用 Firefox 的“頁面樣式”選項(xiàng)選擇它們時(shí),備用樣式表才會應(yīng)用。

          <blockquote>標(biāo)簽定義及用法

          <blockquote>標(biāo)簽定義塊引用。

          <blockquote>與</blockquote>之間的所有文本都會從常規(guī)文本中分離出來,經(jīng)常會在左、右兩邊進(jìn)行縮進(jìn)(增加外邊距),而且有時(shí)會使用斜體。也就是說,塊引用擁有它們自己的空間。

          <blockquote></blockquote>這個標(biāo)簽可以將其包起來的文字,全部往右縮排。而且加一組標(biāo)簽,往右縮排一單位,加兩組標(biāo)簽,往右縮排兩單位,依此類推。

          現(xiàn)在我們來看看長文本的引用,還有和p標(biāo)簽的對比,效果如圖:

          自定義有序列表的屬性<ol>

          <ol>經(jīng)常使用使用該元素的有序列表。一些鮮為人知的功能允許您自定義出現(xiàn)在此類列表中的編號行為:

          • 屬性,以相反的順序?qū)?/span>reversed項(xiàng)目進(jìn)行編號(從高到低,而不是默認(rèn)的從低到高);
          • 屬性,定義從start哪個數(shù)字開始;
          • 屬性,定義是type使用數(shù)字、字母還是羅馬數(shù)字;
          • 屬性,用于在value特定列表項(xiàng)上指定自定義編號。

          如您所見,使用純 HTML 的有序列表比您通常習(xí)慣的要靈活得多。

          reversed屬性是一個有趣的屬性,因?yàn)樗鼘?shí)際上并沒有反轉(zhuǎn)列表本身的內(nèi)容;它只會反轉(zhuǎn)每個列表項(xiàng)旁邊的數(shù)字。

          <ol reversed>
              <li>List item...</li>
              <li>List item...</li>
              <li>List item...</li>
          </ol>

          結(jié)果是這樣的排序

          上面,我還提到了其他三個屬性。讓我們將它們合并到列表中,看看如何使用它們:

          <ol reversed start="20" type="1">
              <li>Typee: A Peep at Polynesian Life (1846)</li>
              <li>Omoo: A Narrative of Adventures in the South Seas (1847)</li>
              <li>Mardi: and a Voyage Thither (1849)</li>
              <li>Redburn: His First Voyage (1849)</li>
              <li value="100">White-Jacket; or, The World in a Man-of-War (1850)</li>
              <li>Moby-Dick; or, The Whale (1851)</li>
              <li>Pierre; or, The Ambiguities (1852)</li>
              <li>Isle of the Cross (1853 unpublished, and now lost)</li>
          </ol>

          請注意,已添加的type和屬性以及單個列表項(xiàng)上的屬性。該屬性接受表示編號類型的五個單字符值(、、、、 )之一效果如圖:

          結(jié)果展示

          <a>標(biāo)簽的download屬性

          <a href="/example.pdf" download>Download File</a>

          如果沒有值,該download屬性會強(qiáng)制下載鏈接頁面。或者,您可以提供一個值,瀏覽器將其用作下載資源的建議文件名。

          <img>標(biāo)簽的decoding屬性

          在研究這個標(biāo)簽時(shí),這對我來說是另一篇全新的文章——而且在規(guī)范中似乎相當(dāng)新。將decoding屬性添加到圖像元素可為瀏覽器提供圖像解碼提示。

          <img src="/images/example.png" alt="Example" decoding="async">

          此屬性類似于async在腳本上使用該屬性。加載圖像所需的時(shí)間不會改變,但其“解碼”的方式(因此其內(nèi)容在視口中變得可見)由decoding屬性決定。

          值為:

          • sync 同步解碼圖像,一般瀏覽器都是這樣做的。
          • async 異步解碼圖像以避免延遲其他內(nèi)容的呈現(xiàn)。
          • auto 默認(rèn)允許瀏覽器使用自己的內(nèi)置解碼方法。

          <iframe>標(biāo)簽 的loading屬性

          您可能已經(jīng)知道,圖像元素現(xiàn)在可以包含一個loading屬性,該屬性將延遲加載作為一項(xiàng)功能放入瀏覽器,這是我們多年來使用 JavaScript 解決方案所做的事情。但不要忘記該loading屬性也可以用于<iframe>元素:

          <iframe src="/page.html" width="300" height="250" loading="lazy">

          與圖像一樣,該loading屬性接受eager(默認(rèn)瀏覽器行為)或 的值lazy,這會延遲 iframe 內(nèi)容的加載,直到 iframe 即將進(jìn)入視口。此屬性的唯一缺點(diǎn)是 Firefox 不支持在 iframe 上使用它(盡管 Firefox 確實(shí)支持loading圖像)。

          刪除/插入的citeAnddatetime屬性

          我在處理塊引用時(shí)已經(jīng)提到cite過,但是這個屬性也可以用于用<del>and<ins>元素標(biāo)記的刪除和插入。此外,兩個元素都可以包含一個datetime屬性。

          <del
            cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
            datetime="2020-07-23"
          >Firefox doesn't support CSS's standard <code>appearance</code> property, so you can only use it prefixed.</del>
          
          <ins          
            cite="https://bugzilla.mozilla.org/show_bug.cgi?id=1620467"
            datetime="2020-07-23"
          >The <code>appearance</code> property, previously only available prefixed in Firefox, can now be used in all modern browers unprefixed.</ins>

          對于每個元素,這兩個屬性代表的內(nèi)容如下:

          • cite 指向資源的 URL,該資源解釋了刪除或插入內(nèi)容的原因。
          • datetime 刪除或插入的日期。

          HTML <optgroup> 標(biāo)簽

          通過 <optgroup> 標(biāo)簽把相關(guān)的選項(xiàng)組合在一起:

          <select>
            <optgroup label="Swedish Cars">
              <option value ="volvo">Volvo</option>
              <option value ="saab">Saab</option>
            </optgroup>
          
            <optgroup label="German Cars">
              <option value ="mercedes">Mercedes</option>
              <option value ="audi">Audi</option>
            </optgroup>
          </select>

          結(jié)果展示

          optgroup 元素用于組合選項(xiàng)。當(dāng)您使用一個長的選項(xiàng)列表時(shí),對相關(guān)的選項(xiàng)進(jìn)行組合會使處理更加容易。

          用于預(yù)加載響應(yīng)式圖像的imagesizes和imagesrcset屬性

          這是我在研究本文時(shí)的另一對新屬性,它們在規(guī)范中也是相對較新的。

          這兩個屬性都可以與元素一起定義rel=preloadas如下<link>所示:

          <link rel="preload"
            as="image"
            imagesrcset="images/example-480.png 480w,
            images/example-800.png 800w,
              images/example.png 2000w"
            imagesizes="(max-width: 600px) 480px,
            (max-width: 1000px) 800px,
              1000px"
            src="images/example.png"
            alt="Example Image">

          這里的使用rel=preload通知瀏覽器我們希望指定的資源優(yōu)先加載,因此它們不會被腳本和樣式表之類的東西阻塞。該as屬性指定所請求內(nèi)容的類型。

          您可以使用href屬性以及preload和預(yù)加載常規(guī)圖像as。但最重要的是,您可以使用imagesrcsetandimagesizes屬性,就像我在上面的代碼中所做的那樣。

          這允許您預(yù)加載正確的圖像,具體取決于視口的大小或您在imagesizes屬性中指定的其他媒體功能。

          除了我已經(jīng)詳細(xì)描述和演示的屬性之外,您可能還想了解其他一些屬性,我將在這里簡要提及:

          • crossorigin可以應(yīng)用于多個元素的屬性,包括<audio><img><link><script><video>,為跨域資源共享(CORS)提供支持;
          • HTML屬性;<dfn><abbr>
          • HTML的新disablepictureinpicture屬性;<video>
          • HTMLintegrity屬性,幫助瀏覽器驗(yàn)證資源沒有被不當(dāng)操作;
          • HTMLdisabled屬性<fieldset>,輕松同時(shí)禁用多個表單元素;
          • 電子郵件和文件輸入的multiple屬性。

          如果您使用過本文中提到的任何屬性,或者如果您知道在您的項(xiàng)目中使用過的另一個 HTML 屬性,請隨時(shí)在評論中告訴我。

          個開發(fā)工具插件,可以理解為 tailwindcss 的小程序版本。

          weapp-tailwindcss 簡介

          weapp-tailwindcss 是一系列專門為小程序開發(fā)而生的插件,主要解決在小程序中使用 tailwindcss 的問題,提升開發(fā)效率的全方面解決方案。

          weapp-tailwindcss 官網(wǎng)

          本質(zhì)上它是一個轉(zhuǎn)義器,負(fù)責(zé)把 tailwindcss 中所采集的類名,以及生成的結(jié)果,轉(zhuǎn)化成小程序中可以編譯的方式。

          小程序版 tailwindcss

          tailwindcss 是一款原子化的樣式生成器,特點(diǎn)是所寫即所得,可讀性很好,能夠自動搖樹優(yōu)化沒有用到的樣式,也能通過插件和預(yù)設(shè)提煉項(xiàng)目公共的樣式部分,在前端領(lǐng)域非常受歡迎。weapp-tailwindcss 項(xiàng)目的作者是 sonofmagic ,他在2021 年接觸到了 tailwindcss 后非常喜歡,并且開始在很多項(xiàng)目中使用。

          后來他發(fā)現(xiàn)在小程序中沒法直接使用像 tailwindcss 這樣的 web 庫,所以就產(chǎn)生了開發(fā) weapp-tailwindcss 的想法,發(fā)布后也很受歡迎,截止本文發(fā)文的2024年2月中旬,已經(jīng)得到了 833 Star!

          技術(shù)特性

          • 不但可以處理和轉(zhuǎn)義 wxml/wxss , 像微信小程序中的 js 和 wxs 產(chǎn)物也能處理;
          • 提供多種使用方式,包括 webpack/vite/gulp 和 nodejs api,項(xiàng)目集成很方便;
          • 生態(tài)以及解決方案豐富,提供大量現(xiàn)成模板,可以利用許多 tailwindcss 現(xiàn)有的生態(tài)來構(gòu)建小程序;
          • 高效的解析和緩存機(jī)制,即使項(xiàng)目很大,熱更新響應(yīng)時(shí)間也是毫秒級;
          • 貼合 tailwindcss 的設(shè)計(jì)思路,智能提示友好。

          weapp-tailwindcss 文檔

          為什么在小程序中不能直接使用tailwindcss?

          在國內(nèi)的各家小程序開發(fā)中,由于小程序本身有自己的一套 獨(dú)特的 技術(shù)規(guī)范標(biāo)準(zhǔn),會導(dǎo)致我們無法使用 web 中很多的特性,也沒辦法直接使用像 tailwindcss 這種 for web 的工具庫。

          今天向大家推薦的 weapp-tailwindcss ,就是一款能讓你在小程序開發(fā)中使用 tailwindcss 大部分特性的開發(fā)插件。目前支持所有使用 webpack 和 vite 的主流小程序框架,以及使用 webpack / gulp 的原生小程序打包方式。

          簡單地說,我們可以很容易在目前市面上的各個框架,或者原生開發(fā)中集成 tailwindcss。

          開發(fā)上手

          使用 weapp-tailwindcss 之前需要先安裝好 tailwindcss,官網(wǎng)有詳細(xì)的教程,這里不贅述了。開發(fā)支持很全面,幾乎涵蓋了所有的開發(fā)小程序的方式:

          • uni-app vue2 webpack
          • uni-app vue3 vite
          • uni-app HbuilderX 使用方式
          • Taro v3 (所有框架)
          • Rax (react)
          • mpx (原生增強(qiáng))
          • 原生開發(fā)(打包方案)
          • Nodejs API

          uni-app HbuilderX 使用方式

          我開發(fā)小程序使用的是 HbuilderX,默認(rèn)的需要配置 tailwind.config.js 文件:

          // tailwind.config.js
          const path = require("path");
          
          const resolve = (p) => {
            return path.resolve(__dirname, p);
          };
          /** @type {import('tailwindcss').Config} */
          module.exports = {
            // 注意此處,一定要 `path.resolve` 一下, 傳入絕對路徑
            // 如果有其他目錄,比如 components,也必須在這里,添加一下
            content: ["./index.html", "./pages/**/*.{html,js,ts,jsx,tsx,vue}"].map(resolve),
            // ...
            corePlugins: {
              preflight: false,
            },
          };

          同時(shí)配置 vite.config.js :

          import path from "path";
          import { defineConfig } from "vite";
          import uni from "@dcloudio/vite-plugin-uni";
          import { UnifiedViteWeappTailwindcssPlugin as uvwt } from "weapp-tailwindcss/vite";
          // 注意: 打包成 h5 和 app 都不需要開啟插件配置
          const isH5 = process.env.UNI_PLATFORM === "h5";
          const isApp = process.env.UNI_PLATFORM === "app";
          const WeappTailwindcssDisabled = isH5 || isApp;
          
          const resolve = (p) => {
            return path.resolve(__dirname, p);
          };
          
          export default defineConfig({
            plugins: [uni(), uvwt({
              rem2rpx: true,
              disabled: WeappTailwindcssDisabled
            })],
            css: {
              postcss: {
                plugins: [
                  require("tailwindcss")({
                    // 注意此處,手動傳入 `tailwind.config.js` 的絕對路徑
                    config: resolve("./tailwind.config.js"),
                  }),
                  require("autoprefixer"),
                ],
              },
            },
          });

          注意兩個配置文件都需要傳入 tailwindcss 的絕對路徑。配置完成后,就可以在頁面文件中使用 tailwindcss,最后在 uni-app 插件市場安裝「Tailwind CSS語言服務(wù)」這個插件,就可以開啟智能語法提示,可以大大提高開發(fā)效率。

          視頻教程

          視頻教程

          作者還錄制的詳細(xì)的視頻教程,幫助大家快速上手。

          免費(fèi)開源說明

          weapp-tailwindcss 是一款免費(fèi)開源的小程序開發(fā)插件工具,源碼基于 MIT 開源協(xié)議托管在 Github 上,我們可以免費(fèi)下載來使用,也可以用在商業(yè)項(xiàng)目上。

          ↓↓點(diǎn)擊查看本次分享的網(wǎng)站。

          weapp-tailwindcss - 在開發(fā)小程序中使用 tailwindcss 的最佳方式,免費(fèi)開源,支持國內(nèi)各家主流小程序平臺|那些免費(fèi)的磚

          為大家介紹使用 CSS 來制作按鈕。


          基本按鈕樣式

          默認(rèn)按鈕 CSS 按鈕

          CSS 實(shí)例

          .button {

          background-color: #4CAF50; /* Green */

          border: none;

          color: white;

          padding: 15px 32px;

          text-align: center;

          text-decoration: none;

          display: inline-block;

          font-size: 16px;

          }


          按鈕顏色

          GreenBlueRedGrayBlack

          我們可以使用 background-color 屬性來設(shè)置按鈕顏色:

          CSS 實(shí)例

          .button1 {background-color: #4CAF50;} /* Green */

          .button2 {background-color: #008CBA;} /* Blue */

          .button3 {background-color: #f44336;} /* Red */

          .button4 {background-color: #e7e7e7; color: black;} /* Gray */

          .button5 {background-color: #555555;} /* Black */

          嘗試一下 ?


          按鈕大小

          10px12px16px20px24px

          我們可以使用 font-size 屬性來設(shè)置按鈕大小:

          CSS 實(shí)例

          .button1 {font-size: 10px;}

          .button2 {font-size: 12px;}

          .button3 {font-size: 16px;}

          .button4 {font-size: 20px;}

          .button5 {font-size: 24px;}


          圓角按鈕

          2px4px8px12px50%

          我們可以使用 border-radius 屬性來設(shè)置圓角按鈕:

          CSS 實(shí)例

          .button1 {border-radius: 2px;}

          .button2 {border-radius: 4px;}

          .button3 {border-radius: 8px;}

          .button4 {border-radius: 12px;}

          .button5 {border-radius: 50%;}

          嘗試一下 ?


          按鈕邊框顏色

          綠藍(lán)紅灰黑

          我們可以使用 border 屬性設(shè)置按鈕邊框顏色:

          CSS 實(shí)例

          .button1 {

          background-color: white;

          color: black;

          border: 2px solid #4CAF50; /* Green */

          }

          ...

          嘗試一下 ?


          鼠標(biāo)懸停按鈕

          綠藍(lán)紅灰黑

          綠藍(lán)紅灰黑

          我們可以使用 :hover 選擇器來修改鼠標(biāo)懸停在按鈕上的樣式。

          提示: 我們可以使用 transition-duration 屬性來設(shè)置 "hover" 效果的速度:

          CSS 實(shí)例

          .button {

          -webkit-transition-duration: 0.4s; /* Safari */

          transition-duration: 0.4s;

          }

          .button:hover {

          background-color: #4CAF50; /* Green */

          color: white;

          }

          ...


          按鈕陰影

          陰影按鈕鼠標(biāo)懸停后顯示陰影

          我們可以使用 box-shadow 屬性來為按鈕添加陰影:

          CSS 實(shí)例

          .button1 {

          box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);

          }

          .button2:hover {

          box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19);

          }

          嘗試一下 ?


          禁用按鈕

          正常按鈕禁用按鈕

          我們可以使用 opacity 屬性為按鈕添加透明度 (看起來類似 "disabled" 屬性效果)。

          提示: 我么可以添加 cursor 屬性并設(shè)置為 "not-allowed" 來設(shè)置一個禁用的圖片:

          CSS 實(shí)例

          .disabled {

          opacity: 0.6;

          cursor: not-allowed;

          }

          嘗試一下 ?


          按鈕寬度

          250px

          50%100%

          默認(rèn)情況下,按鈕的大小有按鈕上的文本內(nèi)容決定( 根據(jù)文本內(nèi)容匹配長度 )。 我們可以使用 width 屬性來設(shè)置按鈕的寬度:

          提示: 如果要設(shè)置固定寬度可以使用像素 (px) 為單位,如果要設(shè)置響應(yīng)式的按鈕可以設(shè)置為百分比。

          CSS 實(shí)例

          .button1 {width: 250px;}

          .button2 {width: 50%;}

          .button3 {width: 100%;}

          嘗試一下 ?


          按鈕組

          ButtonButtonButtonButton

          移除外邊距并添加 float:left 來設(shè)置按鈕組:

          CSS 實(shí)例

          .button {

          float: left;

          }

          嘗試一下 ?


          帶邊框按鈕組

          ButtonButtonButtonButton

          我們可以使用 border 屬性來設(shè)置帶邊框的按鈕組:

          CSS 實(shí)例

          .button {

          float: left;

          border: 1px solid green

          }

          嘗試一下 ?


          按鈕動畫

          CSS 實(shí)例

          鼠標(biāo)移動到按鈕上后添加箭頭標(biāo)記:

          Hover

          嘗試一下 ?

          CSS 實(shí)例

          點(diǎn)擊時(shí)添加 "波紋" 效果:

          Click

          CSS 實(shí)例

          點(diǎn)擊時(shí)添加 "壓下" 效果:

          Click

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!


          主站蜘蛛池模板: 国产婷婷色一区二区三区深爱网| 色窝窝无码一区二区三区| 日韩精品一区二区午夜成人版| 国产精品美女一区二区三区| 变态拳头交视频一区二区| 午夜福利一区二区三区在线观看| 欲色aV无码一区二区人妻| 少妇无码AV无码一区| 乱人伦一区二区三区| 国产一区二区三区播放心情潘金莲| 无码人妻精品一区二区三区久久 | 怡红院一区二区在线观看| 无码人妻AⅤ一区二区三区水密桃| 毛片一区二区三区无码| 亚洲欧洲无码一区二区三区| 国产亚洲综合一区柠檬导航| 99精品国产高清一区二区三区| 国产一区高清视频| 成人国产精品一区二区网站公司| 日本一区精品久久久久影院| 亚洲福利精品一区二区三区| 丝袜无码一区二区三区| 国产一区二区福利| 日韩精品无码一区二区中文字幕 | 亚洲一区二区三区在线| 国产一区二区三区韩国女主播| 国产在线精品一区二区在线看| 日本一区二区三区精品视频| 精品视频一区二区| 国产高清不卡一区二区| 一区二区三区视频| 国产午夜精品一区二区| 日本午夜精品一区二区三区电影| 亚洲av乱码一区二区三区按摩| 一区二区三区四区在线观看视频| 日韩免费一区二区三区在线播放| 精品一区二区久久久久久久网站| 国产精品一区二区不卡| 亚洲熟女乱综合一区二区| 精品国产一区二区三区香蕉| 日本道免费精品一区二区|