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 久久综合欧美,91久久精品一区二区三区,在线亚洲综合

          整合營銷服務商

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

          免費咨詢熱線:

          純CSS修改checkbox復選框樣式

          果圖:

          移入:

          本篇文章里,我們一起學習下如何使用 CSS checkbox hack 技巧制作一個響應式的手風琴組件,這個組件完全基于CSS,沒有JavaScript腳本,基于窗口大小進行水平和垂直之間進行切換。為了讓大家更好理解,我將和大家一起一步步的進行完成。

          手風琴樣式效果:

          下圖是我們要制作的手風琴效果

          本示例需要你具備一些關于flexbox的知識。

          首先,我們先了解下什么是 CSS Checkbox Hack ?

          CSS Checkbox Hack 允許你通過復選框(Checkbox)是否選中(或單選按鈕radio buttons)來控制某些特定的樣式。這里運用的是:checked 偽類選擇器,其意思就是”如果選中了表單(復選框、單選按鈕),則應用相關樣式規(guī)則“

          我們通常隱藏表單控件,然后結合<lable>來控制復選框或單選框的選擇,制作一些特殊的效果,因此用戶無法感知復選框的存在。

          這是我的最愛,不僅可以完成本文的例子,還會制作一些更有趣例子,稍后會介紹到。

          1、創(chuàng)建 HTML 標記結構

          在本練習中,我們從維基百科找一些四種不同類型的內(nèi)容介紹:動物、植物、空間和河流。然后我們創(chuàng)建相應的單選按鈕,并為其分配內(nèi)容關鍵詞:

          建立無序列表

          接下來,我們設置一個包含4行的無序列表,每行列表<li>包含了標題項<lable>標簽和內(nèi)容項<div>標簽:

          1. 首先我們在標題選型卡外層定義標簽,這里的關鍵所在就是這個標簽,尤其是 for 這屬性,指向?qū)韱蔚膇d的屬性,label 標簽不會向用戶呈現(xiàn)任何特殊效果。不過,它為鼠標用戶改進了可用性。如果您在 label 元素內(nèi)點擊文本,就會觸發(fā)此控件。就是說,當用戶選擇該標簽時,瀏覽器就會自動將焦點轉(zhuǎn)到和標簽相關的表單控件上。這就是這個案例的關鍵所在。
          2. <li>標簽里<div>內(nèi)容,我們用來定義選項卡里對應的內(nèi)容。

          基于上面的思路,整理后無需列表內(nèi)容如下:

          2、定義相關樣式

          準備好上述的HTML內(nèi)容后,我們來定義相關樣式,首先我們需要隱藏我們的幾個單選按鈕,我們可以使用left屬性,將其移除屏幕顯示區(qū)域,示例代碼如下:

          接下來我們來定義手風琴整體外觀布局,讓其具有響應式,用到了彈性盒子布局,設置display:flex, 同時又應用到了CSS的自定義變量新屬性,方便我們進行統(tǒng)一設置和修改,示例代碼如下:

          然后我們定義無需列表<li>標簽的樣式,也設置其為彈性盒子布局,示例代碼如下:

          為了區(qū)分每個<li> 選型,讓其有分割的感覺,我們來定義其邊框?qū)傩?,示例代碼如下:

          每個選項卡容器,讓標題默認在縱軸上進行布局,然后設置標題選項卡的寬度為70px,以及定義鼠標經(jīng)過的外觀樣式:

          由于寬度有限,我們需要旋轉(zhuǎn)標題文字的方向,讓其由下往上垂直顯示,示例代碼如下:

          最后我們來定義選項卡內(nèi)容文本的樣式,我們應該默認第一個選項卡的內(nèi)容出于展示狀態(tài),其它選項卡隱藏,這里我們先讓所有的選項卡默認隱藏,后面我們會使用 Checkbox Hack 讓選中的選項卡內(nèi)容處于展示狀態(tài)。示例代碼如下:

          3、Checkbox Hack: 切換選型內(nèi)容

          這部分代碼就像變魔法一般,當我們點擊每個標題選型卡內(nèi)容時就響應顯示相關內(nèi)容,這里我們使用了 :checked 偽類,以及結合 CSS的后續(xù)同胞選擇器(~)以及 緊鄰同胞選擇器(+)。

          接下來我們來動手實踐吧,為了讓對應選中的選項卡內(nèi)容可見,我們使用 display: flex 讓其可見,并使用 align-items: center 屬性讓文本內(nèi)容垂直居中。同時為了讓用戶區(qū)分選中了哪個選項卡,我們需要定義選項卡出于選中狀態(tài)時的標題顏色。

          最后定義一個可選的外觀樣式,當每個單選按鈕獲取焦點時,我們?yōu)閘able標簽定義outline屬性,這個細節(jié)幫組我們增強組件的可訪問性。(accessibility)

          以下是完成后的CSS代碼內(nèi)容:


          4、響應式處理

          接下來我們來處理下,在小屏或可視窗口低于 650px 的情況,幸虧我們使用了彈性盒子布局,在這種情況下,我們讓手風琴垂直顯示,也就是每個選項卡縱向分布,每個選項卡的標題內(nèi)容橫向分布。示意圖效果如下:

          對應的代碼如何實現(xiàn)呢?首先我們需要更改無序列表讓其為縱向分布,flex-direction: column;然后更改選型卡的標題區(qū)域布局為橫向分布,flex-direction: row,示意代碼如下:

          5、處理內(nèi)容有限的情況

          在我們的案例中,每個選項卡的內(nèi)容都很多,看起來很漂亮。但是為了確保沒有足夠內(nèi)容支撐時,手風琴效果不走樣,我們需要進行一些樣式上的特殊處理,效果如下圖所示:


          • 我們需要在每個當前選中狀態(tài)的選項卡里添加flex-grow: 1屬性,并不是所有的選項卡,讓當前選中的選項卡里占據(jù)所有剩余寬度,我們需要在li標簽上增加用戶自定義屬性(data-radio)方便我們來定義樣式。
          • 接下來我們需要在選項卡的內(nèi)容部分添加 flex-grow: 1 的規(guī)則,讓選項卡的內(nèi)容比較少是也能占滿整個父元素容器的寬度。
          • 最后為選項卡的內(nèi)容定添加內(nèi)容居中的屬性,示意代碼如下:justify-content: center

          基于以上思路,我們調(diào)整后的html代碼如下,只是在li標簽上增加了自定義屬性(data-radio),代碼如下:

          CSS部分修部分的代碼如下:

          最終完成的代碼

          1、HTML代碼部分:


          2、CSS代碼部分:

          小節(jié)

          今天的案例就和大家聊到這里,通過本文,我們一起學習了如何使用 CSS checkbox hack 技術完成了一個純CSS手風琴效果, CSS checkbox hack 不僅能做手風琴效果,還有更多有趣的效果等待你挖掘,比如實現(xiàn)常見的導航切換、點擊按鈕彈出層的效果,不用寫一行JS代碼,是不是覺得CSS很神奇呢,在接下來的文章,我將會給大家繼續(xù)分享 CSS checkbox hack 的案例,敬請期待。

          heckbox 對象

          Checkbox 對象代表一個 HTML 表單中的 一個選擇框。

          在 HTML 文檔中 <input type="checkbox"> 每出現(xiàn)一次,Checkbox 對象就會被創(chuàng)建。

          您可以通過遍歷表單的 elements[] 數(shù)組來訪問某個選擇框,或者通過使用 document.getElementById() 。

          Checkbox 對象的屬性

          accessKey 設置或返回訪問 checkbox 的快捷鍵。

          alt 設置或返回不支持 checkbox 時顯示的替代文本。

          checked 設置或返回 checkbox 是否應被選中。

          defaultChecked 返回 checked 屬性的默認值。

          disabled 設置或返回 checkbox 是否應被禁用。

          form 返回對包含 checkbox 的表單的引用。

          id 設置或返回 checkbox 的 id。

          name 設置或返回 checkbox 的名稱。

          tabIndex 設置或返回 checkbox 的 tab 鍵控制次序。

          type 返回 checkbox 的表單元素類型。

          value 設置或返回 checkbox 的 value 屬性的值

          checked 屬性設置或返回 checkbox 是否應被選中。

          checkboxObject.checked=true|false

          下面的例子可設置該 checkbox 的狀態(tài):

          <html>
          <head>
          <script type="text/javascript">
          function check()
          {
              document.getElementById("check1").checked=true //1
          }
          function uncheck()
          {
              document.getElementById("check1").checked=false //0
          }
          </script>
          </head>
          <body>
          <form>
          <input type="checkbox" id="check1" />
          <input type="button" onclick="check()" value="Check Checkbox" />
          <input type="button" onclick="uncheck()" value="Uncheck Checkbox" />
          </form>
          </body>
          </html>

          標準屬性

          className 設置或返回元素的 class 屬性。

          dir 設置或返回文本的方向。

          lang 設置或返回元素的語言代碼。

          title 設置或返回元素的 title 屬性。

          Checkbox 對象的方法

          blur() 從 checkbox 上移開焦點。

          click() 模擬在 checkbox 中的一次鼠標點擊。

          focus() 為 checkbox 賦予焦點。

          復選框全選、全不選、反選


          主站蜘蛛池模板: 蜜桃无码AV一区二区| 国产在线精品一区二区高清不卡 | 久久精品国内一区二区三区| 性无码免费一区二区三区在线 | 亚洲影视一区二区| 国模精品视频一区二区三区| 国产精品区AV一区二区| 在线播放偷拍一区精品| 精品日本一区二区三区在线观看| 亚洲视频一区调教| av在线亚洲欧洲日产一区二区| 久久综合精品不卡一区二区| 天堂一区二区三区在线观看| 国产高清视频一区二区| 国产一区二区三区在线观看精品| 日韩毛片一区视频免费| 一区二区三区无码被窝影院| 国产不卡视频一区二区三区| 亚洲一区二区三区高清在线观看| 亚洲国产国产综合一区首页| 精品一区二区三区在线播放 | 国产成人av一区二区三区在线观看 | 国产精品久久久久一区二区 | 蜜桃AV抽搐高潮一区二区| 久久精品一区二区三区日韩| 国产精品亚洲产品一区二区三区 | 精品日韩亚洲AV无码一区二区三区| 久久影院亚洲一区| 久久福利一区二区| 免费看AV毛片一区二区三区| 无码人妻精品一区二区三区不卡 | 国产福利在线观看一区二区| 国产高清一区二区三区视频| 国产精品一区二区三区99| 亚洲乱码一区二区三区在线观看| 久久综合九九亚洲一区| 人妻夜夜爽天天爽一区| 国产伦精品一区二区三区| 无码人妻久久一区二区三区| 人妻av综合天堂一区| 精品国产一区二区三区AV性色|