他們會…
鑰匙要點
>一個很好的例子,說明您何時可能要使用Web組件,那就是當您在瀏覽器中構建不存在的UI時,例如彩色拾取器,旋轉木馬,手風琴或打字機等元素。另外,您可能會在各個站點上一直使用一些組件,這些組件每次都厭倦了重建。這些是社交按鈕,訂閱表格或通知之類的東西。使用Web組件,您可以使用HTML標籤將標記,樣式和腳本捆綁到封裝的模塊中,例如
> Web組件使您可以構建一次UI零件並在任何地方使用它們。這對於像Living StyleGuide這樣的項目是理想的選擇,您想為每個組件構建一個帶有真理來源的庫。這種方法意味著重複更少的代碼並擁有您或您的團隊可以簡單地將引用到界面中的便攜式組件。
>>使用Web組件的另一個重要優勢是能夠將這些組件包裝好並與其他開發人員或網站所有者共享。本質上,消費者可以在其網頁中放置一個導入語句,例如:
<span><span><span><link</span> rel<span>="import"</span> </span></span><span> <span>href<span>="http://url.com/subscribe-form.html"</span>></span></span>
>我覺得最好的演示方法是例子,所以我將繼續使用訂閱表單,這是一個常見的UI,在不同的站點和實現之間不會改變太大。
在我的Web組件模板中,我有一些對錶單的基本標記。
<span><span><span><ul</span> class<span>="form"</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Email:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span><span><span><span></ul</span>></span></span>
>
>現在我們都已設置,讓我們看一些響應式技術。
><span><span>.form__item</span> { </span> <span>display: table; </span> <span>float: left; </span> <span>width: 50%; </span><span>} </span> <span>label { </span> <span>display: table-cell; </span> <span>width: auto; </span><span>} </span> <span>input { </span> <span>display: table-cell; </span> <span>width: 100%; </span><span>}</span>
>我們所知道和愛的經典方法仍然活著,並且在響應式網絡組件內都很好。如果您想在某些斷點中烘烤組件,則可以在模板中應用這些模板,也可以將鉤子(例如,使用類別使用類)應用於容器,如果您想將該決定留給消費者。在這種情況下,我們需要做的就是剝離浮子並將其調整為完全寬度。
<span><span><span><link</span> rel<span>="import"</span> </span></span><span> <span>href<span>="http://url.com/subscribe-form.html"</span>></span></span>
但是,媒體查詢這次不足以拯救我們。
>>我對我的註冊表格樣式感到滿意,並且在體內效果很好,但是當網站作者想將其塞入側邊欄中時會發生什麼?突然,我的表格看起來被壓扁了,並不是真正可用的。
>這是因為組件不知道其邊界 - 它沒有上下文。
> Web組件的全部要點是您可以將它們放在任何地方,它們可以正常工作嗎?因此,顯然這不會做到,但是您可以使用一些技術來確保您的組件響應迅速且上下文。> Flexbox Trickery
通過將容器設置為顯示:flex; flex-inp:包裝,.form__Item元素將出現並排,但是我們仍然需要進行一些調整,以便當容器變得太小時,它們會很好地堆疊。
> 在.form__Item內部,我使用了flex的flex速記:1 0 320px;它以柔性術語轉換為 - 一個生長,柔性收縮為零,柔性基礎為320像素。將Flex包裝設置為包裝,這意味著它不會比我們設置的基礎小(320px)小,但是將其設置為Flex意味著它將佔用其餘可用空間。>
我給出了與標籤和輸入元素類似的處理。他們的柔性柔性值總計320,這意味著它們在較小的容器尺寸下的行為將按照所需的方式行為。<span><span><span><ul</span> class<span>="form"</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Email:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span><span><span><span></ul</span>></span></span>
好得多!但是,有多種方法可以使貓皮膚。
>元素查詢元素查詢的想法是,您能夠模擬媒體查詢類型功能,但在組件級別 - 對於響應式Web組件非常方便。本質上,想像能夠在您的CSS中寫下類似的東西:
>
不幸的是,由於瀏覽器供應商關注導致無限循環的潛力,因此該技術不可用。但是,一些聰明的人已經編寫了插件來啟用此功能。
>在我的示例中,我使用了Marc J Schmidt的CSS元素查詢,這是一個非常不錯的實現。也有以下類似的項目:
>
<span><span><span><link</span> rel<span>="import"</span> </span></span><span> <span>href<span>="http://url.com/subscribe-form.html"</span>></span></span>
>
屬性
<span><span><span><ul</span> class<span>="form"</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Email:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span><span><span><span></ul</span>></span></span>
>
在陰影dom中,包含的元素被稱為:主機。一個例子看起來像:然後,這將允許組件消費者編寫一些簡單的JavaScript,以在您提供的不同尺寸之間翻轉。這意味著您可以將其留給消費者,以決定如何將其掛在模塊中。這使您的組件能夠成為更多的未來證明。
<span><span>.form__item</span> { </span> <span>display: table; </span> <span>float: left; </span> <span>width: 50%; </span><span>} </span> <span>label { </span> <span>display: table-cell; </span> <span>width: auto; </span><span>} </span> <span>input { </span> <span>display: table-cell; </span> <span>width: 100%; </span><span>}</span>
>自己嘗試!
>安裝CORS Chrome Extension並將其打開。這是為了允許HTML導入從外部站點工作。
<span><span>@media (max-width: 30em)</span> { </span> <span><span>.form__item</span> { </span> <span>float: none; </span> <span>width: 100%; </span> <span>} </span><span>}</span>
<span><span>.form</span> { </span> <span>display: flex; </span> <span>flex-wrap: wrap; </span><span>} </span> <span><span>.form__item</span> { </span> <span>align-items: center; </span> <span>display: flex; </span> <span>flex: 1 0 320px; </span> <span>flex-wrap: wrap; </span> <span>max-width: 100%; </span><span>} </span> <span>label { </span> <span>flex: 1 0 90px; </span><span>} </span> <span>input { </span> <span>flex: 1 0 230px; </span> <span>width: 100%; </span><span>}</span>
>如果您在了解有關響應式網絡設計的更多方面有趣 >響應式Web組件上的經常詢問問題(FAQ)
>
> CSS容器查詢如何有助於響應式組件?>
>我如何確保可以訪問我的響應式Web組件?設計響應式Web組件時的關鍵考慮。這包括確保在所有屏幕尺寸上都可以閱讀文本,交互式元素足夠大,可以輕鬆地在觸摸屏上挖掘,並且該站點可為無法使用鼠標的人提供鍵盤。此外,您應該使用語義HTML為屏幕讀者提供上下文和含義,並確保對視覺障礙的人的顏色對比足以。一些常見的挑戰包括處理不同的屏幕尺寸和分辨率,確保與不同的瀏覽器和設備的兼容性以及優化性能。可以通過使用移動優先方法,在各種設備上進行測試,使用功能檢測來確保兼容性以及優化性能的圖像和腳本。
響應式Web組件可以對SEO產生積極影響。 Google的算法喜歡移動友好的網站,而響應式設計是其中的關鍵方面。此外,擁有一個單個響應網站而不是單獨的桌面和移動版本避免了重複內容的問題,這可能會對SEO產生負面影響。
>)的在線工具如何適應。響應式Web組件的未來可能涉及更先進的技術和技術。這可能包括當前正在開發的容器查詢之類的內容,以及更多地使用AI和機器學習根據用戶行為和偏好調整佈局。
>>有許多資源可用於了解響應式Web組件。其中包括在線教程和課程,書籍和社區論壇。此外,嘗試創建自己的響應組件並研究他人的代碼可能是一種學習的好方法。
以上是您今天如何使用響應迅速的網絡組件的詳細內容。更多資訊請關注PHP中文網其他相關文章!