有趣的css - 多選立體標簽按鈕

🍭

大家好,我是 Just,這里是「設計師工作日常」,今天分享的是一個交互較完整的多選立體標簽按鈕。

最新文章通過公眾號「設計師工作日常」發布。


目錄

  • 整體效果
  • 核心代碼
    • html 代碼
    • css 部分代碼
  • 完整代碼如下
    • html 頁面
    • css 樣式
    • 頁面渲染效果

整體效果

💎知識點:
1?? transition 過渡屬性
2?? transform 變換屬性
3?? box-shadow 陰影屬性
4?? :hover:checked 選擇器
5?? labelinput 標簽的使用

🔑思路:
利用多選按鈕屬性模擬標簽選中和未選中狀態,然后分別寫出不同的樣式。

一個交互較完整的多選立體標簽按鈕,適用于多個標簽同時展示及開發調用。


核心代碼部分,簡要說明了寫法思路;完整代碼在最后,可直接復制到本地運行。

核心代碼

html 代碼

<label class="label98"><input type="checkbox" class="input98" /><div class="btn-box98"><div class="text98">HTML</div></div>
</label>
<label class="label98"><input type="checkbox" class="input98" /><div class="btn-box98"><div class="text98">CSS</div></div>
</label>
<label class="label98"><input type="checkbox" class="input98" /><div class="btn-box98"><div class="text98">Vue</div></div>
</label>

標簽按鈕html頁面結構。

css 部分代碼

.label98{width: fit-content;position: relative;margin: 0 5px;
}
.input98{display: none;
}
.btn-box98{width: fit-content;display: flex;background-color: rgba(0, 0, 0, 0.1);border-radius: 5px;box-shadow: inset 0px 2px 1px rgba(0, 0, 0, 0.2), 0px 1px 1px rgba(255, 255, 255, 0.2);transition: all 0.3s cubic-bezier(0.25, 0.8, 0.2, 1);cursor: pointer;
}
.text98{padding: 3px 10px;font-size: 18px;font-weight: 700;color: rgba(255,255,255,0.8);
}
.btn-box98:hover{background-color: rgba(50,50,50, 1);box-shadow: inset 0px -2px 1px rgba(0, 0, 0, 0.4),0px 2px 4px 1px rgba(0, 0, 0, 0.4), 0px -1px 1px rgba(255, 255, 255, 0.2);transform: translateY(-2px);
}
.btn-box98:hover .text98{color: #fff;
}
.input98:checked + .btn-box98{background-color: #09a641;box-shadow: inset 0px -2px 1px rgba(0, 0, 0, 0.4),0px 2px 4px 1px rgba(0, 0, 0, 0.2), 0px -1px 1px rgba(255, 255, 255, 0.2);transform: translateY(-2px);
}
.input98:checked + .btn-box98 .text98{color: #fff;
}
.input98:checked + .btn-box98:hover{background-color: #00b62e;
}

1、先隱藏掉多選按鈕 display: none; ,然后再繪制出標簽按鈕的基本樣式,并且添加 transition 過渡屬性以及參數

2、通過 :hover 選擇器,給多選按鈕添加上鼠標懸浮上方時的按鈕樣式

3、通過 :checked 選擇器,通過多選按鈕選中狀態給不同的元素編寫不同的樣式效果

完整代碼如下

html 頁面

<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8"><link rel="stylesheet" href="style.css"><title>公眾號:設計師工作日常</title></head><body><div class="app"><label class="label98"><input type="checkbox" class="input98" /><div class="btn-box98"><div class="text98">HTML</div></div></label><label class="label98"><input type="checkbox" class="input98" /><div class="btn-box98"><div class="text98">CSS</div></div></label><label class="label98"><input type="checkbox" class="input98" /><div class="btn-box98"><div class="text98">Vue</div></div></label></div></body>
</html>

css 樣式

/** style.css **/
.app{width: 100%;height: 100vh;background-color: #222;position: relative;display: flex;justify-content: center;align-items: center;
}
.label98{width: fit-content;position: relative;margin: 0 5px;
}
.input98{display: none;
}
.btn-box98{width: fit-content;display: flex;background-color: rgba(0, 0, 0, 0.1);border-radius: 5px;box-shadow: inset 0px 2px 1px rgba(0, 0, 0, 0.2), 0px 1px 1px rgba(255, 255, 255, 0.2);transition: all 0.3s cubic-bezier(0.25, 0.8, 0.2, 1);cursor: pointer;
}
.text98{padding: 3px 10px;font-size: 18px;font-weight: 700;color: rgba(255,255,255,0.8);
}
.btn-box98:hover{background-color: rgba(50,50,50, 1);box-shadow: inset 0px -2px 1px rgba(0, 0, 0, 0.4),0px 2px 4px 1px rgba(0, 0, 0, 0.4), 0px -1px 1px rgba(255, 255, 255, 0.2);transform: translateY(-2px);
}
.btn-box98:hover .text98{color: #fff;
}
.input98:checked + .btn-box98{background-color: #09a641;box-shadow: inset 0px -2px 1px rgba(0, 0, 0, 0.4),0px 2px 4px 1px rgba(0, 0, 0, 0.2), 0px -1px 1px rgba(255, 255, 255, 0.2);transform: translateY(-2px);
}
.input98:checked + .btn-box98 .text98{color: #fff;
}
.input98:checked + .btn-box98:hover{background-color: #00b62e;
}

頁面渲染效果

以上就是所有代碼,以及簡單的思路,希望對你有一些幫助或者啟發。


我是 Just,這里是「設計師工作日常」,求點贊求關注!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90029.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90029.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++中byte*和char*的區別

在C中&#xff0c;byte*&#xff08;通常指 std::byte*&#xff09;和 char* 都是指針類型&#xff0c;但它們在語義和用途上有重要區別&#xff1a;1. 類型定義char* char 是C內置的基本類型&#xff0c;表示字符&#xff08;通常是1字節&#xff09;。 char* 常用于&#xff…

【node】npm包本地開發與調試

npm link 進入本地的 babel-plugin-function-try-catch 這個 npm 包的根目錄執行&#xff1a; npm link上面的命令可以將當前的這個包安裝在全局&#xff08;mac 中的路徑是 /usr/local/bin&#xff09;&#xff0c;也就是 npm i -g 安裝包的目錄。 執行后結果如圖&#xff…

突破量子仿真瓶頸:微算法科技MLGO量子算法的算術化與核操作迭代模型

近年來&#xff0c;量子計算機的迅速發展和潛在的強大計算能力吸引了全球科研機構和企業的廣泛關注。量子計算機利用量子力學的特性來處理復雜的計算任務&#xff0c;具有在某些方面遠超經典計算機的潛力。然而&#xff0c;真正實用的量子計算機尚未大規模普及&#xff0c;因此…

python中讀取 Excel 表格數據

在pandas中讀取 Excel 表格后&#xff0c;有多種方式可以按列、按行提取數據&#xff0c;下面我將詳細介紹常見的方法。 0.聲明 在本文中我使用的excel表內容如下&#xff1a;1. 讀取 Excel 文件 首先&#xff0c;我們需要使用 pandas 的 read_excel 函數讀取 Excel 文件&#…

算法訓練營day28 貪心算法②122.買賣股票的最佳時機II、55. 跳躍游戲、 45.跳躍游戲II 、1005.K次取反后最大化的數組和

貪心算法第二篇博客&#xff01;感覺這篇博客中的算法都很巧妙&#xff0c;需要動動腦筋 122.買賣股票的最佳時機II &#xff08;這道題可以遍歷數組&#xff0c;如果不能遍歷的話&#xff0c;就不能做了&#xff0c;需要注意的是&#xff1a; 只有一只股票&#xff01;當前只…

NumPy核心操作全攻略

NumPy&#xff08;Numerical Python&#xff09;是 Python 生態中用于科學計算的核心庫&#xff0c;提供高性能的多維數組對象&#xff08;ndarray&#xff09;及相關的數學運算工具。其核心功能圍繞數組操作、線性代數、隨機數生成等&#xff0c;是數據科學、機器學習等領域的…

Redis 主從同步對象模型

淘汰策略 對最外層的key進行淘汰 expire(秒)/pexpire(毫秒) ttlmaxmemory:最大內存的一半(持久化fork()子進程) 數據遷移需要額外的空間 maxmemory-policy 提供淘汰機制 默認不會淘汰 lru 最近最少使用 lfu最近最少頻次 voltaile 對由expire的進行淘汰持久化: fork:寫時復制原理…

C++ 使用 constexpr 、查表法、分治法加速位鏡像翻轉

代碼////// brief 左右翻轉位。////// note 翻轉后&#xff0c;最低位位將變為最高位&#xff0c;最高位將變為最低位。//////template <typename T>requires(std::is_same_v<T, uint8_t>)constexpr T Reverse(T value){int32_t bit_count sizeof(T) * 8;for (int…

知識庫搭建之Meilisearch‘s 搜索引擎 測評-東方仙盟測評師

windows 啟動后 啟動成功后關鍵信息 Config file path: "none" Database path: "./data.ms" Server listening on: "http://localhost:7700" Environment: "development" Commit SHA: &quo…

【筆記】Anaconda 重裝后虛擬環境寫入路徑異常的完整排查與解決過程

Anaconda 安裝[僅為當前用戶安裝/為所有用戶安裝]選項對環境變量設置的影響_anaconda沒有添加環境變量-CSDN博客 Anaconda 路徑治理指南&#xff1a;路徑精簡、權限優化與環境隔離-CSDN博客 Windows系統下手動升級Anaconda的詳細指南_anaconda升級-CSDN博客 Conda 命令大全&…

QuecPython-正則表達式

該模塊通過正則表達式匹配數據。目前支持的操作符較少&#xff0c;部分操作符暫不支持。示例&#xff1a;import ureres $GNRMC,133648.00,A,3149.2969,N,11706.9027,E,0.055,,311020,,,A,V*18 $GNGGA,133648.00,3149.2969,N,11706.9027,E,1,24,1.03,88.9,M,,M,,*6C $GNGLL,3…

QT窗口(3)-狀態欄

QT窗口&#xff08;3&#xff09;-狀態欄 狀態欄 代碼如下&#xff1a;//存在就獲取&#xff0c;不存在就創建QStatusBar*statusBarthis->statusBar();this->setStatusBar(statusBar);//顯示一個臨時消息statusBar->showMessage("這是一個狀態消息");運行結…

更具個性的域名:解鎖互聯網多元價值的鑰匙

關于Dynadot Dynadot是通過ICANN認證的域名注冊商&#xff0c;自2002年成立以來&#xff0c;服務于全球108個國家和地區的客戶&#xff0c;為數以萬計的客戶提供簡潔&#xff0c;優惠&#xff0c;安全的域名注冊以及管理服務。 Dynadot平臺操作教程索引&#xff08;包括域名郵…

深度學習模塊實踐手冊(第十一期)

46、縮放點積注意力模塊論文《Attention Is All You Need》1、作用&#xff1a; 縮放點積注意力&#xff08;Scaled Dot-Product Attention&#xff09;是 Transformer 模型的核心組件&#xff0c;旨在解決序列建模中長距離依賴關系捕捉的問題。傳統的循環神經網絡&#xff08;…

C++高級技術詳解

C高級技術詳解 目錄 模板 (Templates)右值和移動語義 (Rvalue and Move Semantics)定位 new (Placement new)強類型 (Strong Types)智能指針 (Smart Pointers)容器和算法 (Containers and Algorithms)Lambda表達式常量表達式 (constexpr)多線程和并發 (Multithreading and Co…

跨境賣家緊急自查,Endryko Karmadi四季版畫版權維權

25年7月2日&#xff0c;Keith律所代理印尼藝術家Endryko Karmadi發起全新版權維權行動。案件基本情況&#xff1a;起訴時間&#xff1a;2025-7-2案件號&#xff1a;25-cv-07436品牌&#xff1a;Endryko Karmadi Work原告&#xff1a;Endryko Karmadi 原告律所&#xff1a;keith…

M3088NL是一款網絡濾波器/變壓器支持100M和1000M網絡環境,適用于高速網絡傳輸場景M3088

M3088NL是一款網絡濾波器/變壓器&#xff0c;主要特點如下&#xff1a;兼容性 支持100M和1000M網絡環境&#xff0c;適用于高速網絡傳輸場景。 ?封裝形式 采用SOP/SOIC封裝&#xff0c;便于電路集成。 ?應用場景 常用于網絡電話、開關電源等需要穩定電流的設備&#xff0c;符…

PyQt動態布局管理器:QSplitter詳細指南

PyQt動態布局管理器&#xff1a;QSplitter詳細指南 QSplitter簡介 在PyQt中&#xff0c;除了常見的QVBoxLayout、QHBoxLayout等靜態布局管理器外&#xff0c;QSplitter提供了一種動態布局解決方案。QSplitter允許用戶通過拖拽分隔條來實時調整控件大小&#xff0c;為應用程序提…

Java設計模式之行為型模式(備忘錄模式)實現方式詳解

最近看到一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站 一、基礎實現結構 角色定義與代碼骨架 備忘錄模式包含三個核心角色&#xff0c;其協作關系如下&#xff1a; Originator&#xff08;發起人&…

k8s:離線部署tomcatV11.0.9,報Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh

本文記錄了在離線環境下部署Tomcat容器時遇到的權限問題及解決方案。在Docker環境中運行Tomcat時出現&quot;找不到setclasspath.sh&quot;錯誤&#xff0c;通過添加--security-opt seccompunconfined參數解決。在Kubernetes環境中部署時出現相同問題&#xff0c;通過設置…