幾年前,Web開發人員無法僅使用CSS實施和構建如此多的東西,而無需依賴JavaScript。但是今天,CSS已經足夠成熟,可以在不編寫一行JavaScript的情況下做強大的事情。您可能還閱讀了幾篇有關“僅CSS方法”的文章,這些文章證明了CSS的力量。
>僅使用CSS方法,我們不能忽略:檢查的偽級選擇器,我將在這篇文章中使用。當然,我不是第一個寫有關此技術的人,並且關於使用形式元素作為JavaScript替代品還有其他更廣泛的討論。例如,路易斯·拉扎里斯(Louis Lazaris)和瑞安·塞登鑰匙要點
>請參閱純CSS的筆式切換器,使用:codepen上的sitepoint(@sitepoint)檢查。
現在讓我們開始。
>>
<span>/* we don't want the input fields to appear, all we need is the labels */ </span><span>input<span><span>[type="checkbox"]</span>, input<span>[type="radio"]</span></span> { </span> <span>position: absolute; </span> <span>visibility: hidden; </span><span>} </span> <span><span>.settings-box-element</span> { </span> <span>z-index: 10; </span><span>}</span>
>
>現在我們可以分解構成設置框的代碼。讓我們從齒輪按鈕開始。這是html:
<span><!-- the gear icon that opens the box when you click on it --> </span><span><span><span><input</span> id<span>="settings-btn"</span> class<span>="settings-btn"</span> type<span>="checkbox"</span>></span> </span><span><span><span><label</span> for<span>="settings-btn"</span> class<span>="settings-box-element"</span>></span><span><span></label</span>></span></span>
<span><span>.settings-btn + label</span> { </span> <span>position: fixed; </span> <span>top: 130px; </span> <span>right: 0; </span> <span>display: block; </span> <span>width: 35px; </span> <span>color: #e83737; </span> <span>text-align: center; </span> <span>background: #fff; </span> <span>cursor: pointer; </span><span>}</span>
> 在CSS中,給出標籤的位置:固定聲明,具有適當的方向屬性/值(頂部和右)。
下一html首先:
和CSS:
框是一個單個DIV元素,其中包含“按鈕 - 版本”和“設置 - 盒元素”。正如我之前所說,後一類主要用於給出元素一個z指數值。 “按鈕 - 包裝器”用於樣式DIV元素。如您所見,DIV的寬度為200px,高度為240px,以適應您在演示中看到的5個按鈕。同樣,為DIV賦予固定權利和適當屬性的位置值。您唯一需要牢記的是,正確的屬性應具有與寬度相同的值,但在負面方面(為了使其從視口消失)。
><span><!-- the white box that contains the buttons --> </span><span><span><span><div</span> class<span>="buttons-wrapper settings-box-element"</span>></span><span><span></div</span>></span></span>
<span><span>.buttons-wrapper</span> { </span> <span>position: fixed; </span> <span>top: 130px; </span> <span>right: -200px; /* should match element width */ </span> <span>width: 200px; </span> <span>height: 240px; </span> <span>background: #fff; </span><span>}</span>
請注意,第一個複選框給出了“檢查”屬性。那是因為我們希望它是默認情況下突出顯示的那個。
><span><!-- background styles --> </span><span><!-- light background (#eaeaea) --> </span><span><span><span><input</span> id<span>="light-layout"</span> class<span>="light-layout"</span> type<span>="radio"</span> name<span>="layout"</span> checked></span> </span><span><span><span><label</span> for<span>="light-layout"</span> class<span>="layout-buttons settings-box-element"</span>></span> </span>Light Background<span><span><span></label</span>></span> </span> <span><!-- dark background (#494949) --> </span><span><span><span><input</span> id<span>="dark-layout"</span> class<span>="dark-layout"</span> type<span>="radio"</span> name<span>="layout"</span>></span> </span><span><span><span><label</span> for<span>="dark-layout"</span> class<span>="layout-buttons settings-box-element"</span>></span> </span>Dark Background <span><span><span></label</span>></span> </span> <span><!-- image background --> </span><span><span><span><input</span> id<span>="image-layout"</span> class<span>="image-layout"</span> type<span>="radio"</span> name<span>="layout"</span>></span> </span><span><span><span><label</span> for<span>="image-layout"</span> class<span>="layout-buttons settings-box-element"</span>></span> </span>Image Background<span><span><span></label</span>></span> </span> <span><!-- pattern background --> </span><span><span><span><input</span> id<span>="pattern-layout"</span> class<span>="pattern-layout"</span> type<span>="radio"</span> name<span>="layout"</span>></span> </span><span><span><span><label</span> for<span>="pattern-layout"</span> class<span>="layout-buttons settings-box-element"</span>></span> </span>Pattern Background<span><span><span></label</span>></span> </span> <span><!-- hide/show content --> </span><span><span><span><input</span> id<span>="hide-show-content"</span> class<span>="hide-show-content"</span> type<span>="checkbox"</span>></span> </span><span><span><span><label</span> for<span>="hide-show-content"</span> class<span>="layout-buttons settings-box-element"</span>></span> </span>Hide/Show content<span><span><span></label</span>></span></span>
上述所有標籤都有一類“佈局按鈕”。該類用於給按鈕提供默認和常見樣式,例如寬度,填充,邊框等。其他類用於將唯一樣式添加到每個類別中。正如您看到的齒輪圖標和白色框一樣,位置屬性與固定的值以及適當的頂部和正確屬性一起使用。請注意,每個標籤的最高值比以前的標籤大於45px。這是為了使按鈕彼此疊加,而沒有重疊。還請注意,正確的屬性值與按鈕的寬度相同,但為負。
現在看一下我們CSS代碼的最後一部分:>
<span>/* we don't want the input fields to appear, all we need is the labels */ </span><span>input<span><span>[type="checkbox"]</span>, input<span>[type="radio"]</span></span> { </span> <span>position: absolute; </span> <span>visibility: hidden; </span><span>} </span> <span><span>.settings-box-element</span> { </span> <span>z-index: 10; </span><span>}</span>
HTML中的其餘元素將包裹在DIV中:
>在上面的代碼中註意,我將設置框的每個元素放置在獨立的情況下,我可以將它們全部包裹在DIV或部分元素中,然後將一個單個元素放置,從而使事情變得更簡單。這僅僅是因為您不能選擇父元素,而只有一個兄弟姐妹。
<span><!-- the gear icon that opens the box when you click on it --> </span><span><span><span><input</span> id<span>="settings-btn"</span> class<span>="settings-btn"</span> type<span>="checkbox"</span>></span> </span><span><span><span><label</span> for<span>="settings-btn"</span> class<span>="settings-box-element"</span>></span><span><span></label</span>></span></span>
>在這裡,我正在使用一般的同級選擇器來選擇主div,這是唯一做到這一點的方法。
<span><span>.settings-btn + label</span> { </span> <span>position: fixed; </span> <span>top: 130px; </span> <span>right: 0; </span> <span>display: block; </span> <span>width: 35px; </span> <span>color: #e83737; </span> <span>text-align: center; </span> <span>background: #fff; </span> <span>cursor: pointer; </span><span>}</span>
單擊齒輪圖標應使設置框顯示。這是實現這一目標的代碼:
>用戶單擊齒輪圖標時,將選擇使用複選框,而魔術則是魔術。單擊齒輪圖標後,將會發生以下內容:
<span><!-- the white box that contains the buttons --> </span><span><span><span><div</span> class<span>="buttons-wrapper settings-box-element"</span>></span><span><span></div</span>></span></span>
>
使用相鄰的兄弟姐妹選擇器(),將選擇該複選框後立即出現的標籤,然後從視口右側移動200個像素。>使用一般同級選擇器〜,將選擇帶有“按鈕- wrapper”和“ butout buttons”類的元素,然後移動,以便它們分別是0個像素和30像素,從視口。
>
更改背景<span>/* we don't want the input fields to appear, all we need is the labels */ </span><span>input<span><span>[type="checkbox"]</span>, input<span>[type="radio"]</span></span> { </span> <span>position: absolute; </span> <span>visibility: hidden; </span><span>} </span> <span><span>.settings-box-element</span> { </span> <span>z-index: 10; </span><span>}</span>
我們將要更改的背景是.main-wrapper元素的背景。這是CSS:
<span><!-- the gear icon that opens the box when you click on it --> </span><span><span><span><input</span> id<span>="settings-btn"</span> class<span>="settings-btn"</span> type<span>="checkbox"</span>></span> </span><span><span><span><label</span> for<span>="settings-btn"</span> class<span>="settings-box-element"</span>></span><span><span></label</span>></span></span>
>您可以看到,在HTML中,我們有4個輸入元素=“無線電”和4個標籤。當單擊任何標籤時,將選擇與該特定標籤關聯的輸入,因此將與:檢查的偽級相匹配。然後,根據單擊哪個標籤,以上四種樣式之一將應用於主包裝器。
>>對於顯示/隱藏元素,我正在使用一個複選框:
><span><span>.settings-btn + label</span> { </span> <span>position: fixed; </span> <span>top: 130px; </span> <span>right: 0; </span> <span>display: block; </span> <span>width: 35px; </span> <span>color: #e83737; </span> <span>text-align: center; </span> <span>background: #fff; </span> <span>cursor: pointer; </span><span>}</span>
,這是CSS:
<span><!-- the white box that contains the buttons --> </span><span><span><span><div</span> class<span>="buttons-wrapper settings-box-element"</span>></span><span><span></div</span>></span></span>
在這種情況下,我們告訴瀏覽器選擇元素並將其設置為顯示:無”當用戶單擊關聯標籤時,因此選擇複選框。
結論>
下面您會找到完整的演示:>請參閱純CSS的筆式切換器,使用:codepen上的sitepoint(@sitepoint)檢查。
>經常詢問的問題(常見問題解答)使用檢查
>
我可以使用:檢查的偽級與其他html元素?the:Checked pseudo-class主要用於復選框,無線電按鈕和選項元素等形式元素。但是,它也可以與其他元素一起與HTML5屬性“可滿足”一起使用。這使您可以創建用戶可以編輯的交互式內容,並在“檢查”或“選定”狀態時以不同的方式進行樣式。
>>使用:檢查的偽級創建樣式切換器,您首先需要使用無線電按鈕或無線電按鈕或每個樣式選項的複選框。然後,在您的CSS中,您將使用:檢查的偽級使用:根據選擇哪個選項來應用不同的樣式。這可能涉及更改網頁外觀外觀的配色方案,字體,佈局或任何其他方面。
可以使用:不帶JavaScript的檢查偽級?的:檢查的偽級是,它允許您在不需要JavaScript的情況下創建交互式功能。儘管JavaScript是Web開發的強大工具,但它也可能很複雜且難以使用。 :檢查的偽級提供了一種更簡單的替代方案,用於創建交互式內容。
>
>:檢查的偽級?檢查偽級通常用於創建交互式功能,例如樣式切換器,手風琴,選項卡和模態。它也可以用於樣式形式形式的元素,例如復選框和無線電按鈕,或者用“可滿足”屬性創建可編輯的內容。它對用戶輸入做出反應的能力使其成為增強用戶體驗的強大工具。>
> >時,是否有任何限製或缺點。它只能選擇當前選擇或檢查的元素,因此不能根據其他狀態或條件來設計元素。此外,Internet Explorer 8或更早版本中不支持它。儘管有這些限制,但它仍然是創建交互式和動態的Web內容的寶貴工具。以上是使用純CSS構建樣式切換器,使用:檢查的詳細內容。更多資訊請關注PHP中文網其他相關文章!