這篇文章給大家介紹的是一個利用CSS實現的酷炫的下拉框,實現後效果真的非常不錯,文中給出了詳細實現過程和示例代碼,感興趣的朋友們下面來一起看看吧。
首先來看看要實現的效果圖
#想要製作這麼一個效果還是比較麻煩的,但是程式碼並不難理解。
首先,來看看 Html 程式碼。
XML/HTML Code#複製內容到剪貼簿
##p class="container"#>
-
p class="heading"#>
-
#h2>
Custom Select # -
##h2
> ; p>
-
p class=
"select" - >
- >
Please select<lt//; p> ##ul#>
-
li data-value ##>HTML5li#>
###; - li data-value#li data-value #"JavaScript">JavaScript#li >
li data-value=#"JQuery"
>##data-value- =
#"JQuery">#li
> -
#
# -
# #
### -value###=###"Backbone"######>###Backbone#########li######>##### ########## #########ul######>############## ################### #################### ;/######p######>########################p###########################p##### #>#######
#li data-value="CSS3">CSS3#li >
可見,我們並沒有利用原生的 select 元素,而是利用其它元素來模擬這個效果。我們為 li 元素指定了 data-value,主要是接下來我們會用 JQuery 取得選取值並將其放置到 p 元素下。
以下逐步來看 CSS 程式碼。
CSS Code#複製內容到剪貼簿
- ##* {
-
margin: 0;
-
#padding##: #
#}
html {
# #font -family: 'Terminal';
font-size: 62.5%;
-
}
body {
-
background-colorcolor##
#: #33CC66 - ;
##1、網頁中所有元素的外邊距與內邊距設定為0。
2、將網頁中的預設字體設定為 Terminal,字體大小設定為 62.5%, 也就是 10px。
3、設定背景顏色為 #33CC66。
XML/HTML Code
#複製內容到剪貼簿-
link
href
'http://fonts.googleapis.com/css?family=Lobster|Terminal+Dosis'
rel
='stylesheet'
type
='text/css'
上面我們用到了Terminal 字體,而且接下來我們還會使用Lobster 字體,所以用這行程式碼加入引用。
- 1、指定 headng, select 寬度並指定其水平居中。
2、修改 heading 的寬度,主要是為了讓其寬度大於 select 的寬度,顯得更美觀。然後指定其上外邊距和下外邊距。
3、設定 heading 下 h2 元素的字體和字體大小,顏色。 CSS Code
複製內容到剪貼簿-
.select > p, .select ul {
-
background-color: #fffffff##; #:
#ffffff ; ##of ##font-size: 2rem;
# - border
#: 1px
solque; # bisque; # bisque; -
- 5px
;
; }
-
#.select > text-align
#: left - ;
##1
- ##1
## position#: relative
; -
right-radius: 0;
######### ###border-bottom###-####left###-radius: #0; # ########### ###cursor###: ###pointer###; #### color#: rgba(102, 102, 102, .6);
- #.select > p:after {
-
#display
: - ##;
display: #; ##
width : - 10px
;
## - content
#: '';
-
# ##;
top - : 1.4rem;
1# : 2rem;
-
border-left:
1px - #solid
##33CC66## transform: rotate(-45deg);
- trans
## } #1、設定p 和ul 元素的背景色彩和邊框等設定。 2、為 p 元素單獨指定樣式,並設定其 position 屬性,主要是為了在下面繪製右側的下拉按鈕。
3、利用 :after 在p 元素的右邊繪製下拉按鈕,可以看出來,我們是利用左下邊框然後旋轉 -45 度 模擬的這個效果。值得注意的是,我們需要將其 display 設為 block,並且設定寬高,否則看不到 這個效果。 CSS Code複製內容到剪貼簿
- .select ul {
-
margin-top: 0;
-
border-top
-
border-top
-#left
-radius: 0;
-#right-radius: 0;
-
#
list-style-type : - none
;
- cursor
# # : pointer;
- overflow
-y: auto;
- 總是
##做什麼#
max-height : 0; - transition:
- #max-height
.3s ease-out;
#} .select ul li {
- # -left
: 0.5rem; #
display : - block
; ##line-height
: 3rem; -
# text-align: left
;
CSS Code#複製內容到剪貼簿
.select.open ul {
max-height: 20rem;
transform-origin: 50% 0;
- -webkit-animation: slide-down .5s ease-in;
- }
.select.open > p:after {
position#: absolute;
- #:
absolute;
1112
: 1.6rem;
transform: rotate(-225deg);
很難#很難#很難# : transform .3s ease-in,
#top- .2s ease-in;
- }
- 1、為open設定最大高度,並為其指定動畫效果。
2、將下拉按鈕旋轉 -225 度,並為其指定動畫。
下面我們來看看為 ul 元素指定的 slide-down 動畫效果,這也是這個下拉效果的關鍵。 CSS Code
複製內容到剪貼簿- @-webkit- keyframes slide-down {
- 0% {
-
#
} - 25% {
- # trans
trans
- 1. ## }
- 50% {
- # # }
- 75% {
- }
} 看到上述程式碼可能就都明白了,就是不斷改變ul 的大小,讓其在0.75-1.25 之間進行縮放,所以就會有那個跳動的效果了。
- 下面還有一些簡單的 CSS 程式碼,不再解釋。
CSS Code複製內容到剪貼簿
- .select ul li :hover {
- background-color
- : rgba(102, 153, 102, 0.4);
- }
- .select .selected {
#background-color
##: rgba(102, 153, 102, 0.8);} CSS 完成了,以下就可以看看我們如何利用JQuery控制這個效果的。
- 我們不需要下載 JQuery 就可以使用,因為現在已經有許多網站提供了 CDN 服務,像是我使用的 BootCDN。
XML/HTML Code#複製內容到剪貼簿
script src
=###"http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"### ###>############script######>###############下面就可以使用JQuery 了。 ##################XML/HTML Code#######複製內容到剪貼簿######腳本>
$(文檔).ready (function () {
$('.select ul li').on("click", function (e) {
var _this = $(this);
att $('.select #>p').text(_this.attr('資料值' )); $('.select').toggleClass('open');
-
cancelBubble(e); ##o
## -
$('.select
> p').on("點選", 函數( e) { ##p').on("點選", 函數( e) { - # $('.select').toggleClass('open');
- # });
- ## $('.select').removeClass('open');
- )
- 函數cancelBubble(事件) { ##
- event.preventDefault();
- event.stopPropagation();
- } else {
- event.cancelBubble();
- }
- }
- # script
- >
# 1、先為p標籤綁定點擊事件,在觸發的時候,為選擇新增或刪除開放類,也
2、為li綁定點擊事件,選出中了一個li元素的時候,首先獲取到data-value,然後將其賦值給p標籤,然後為選中的li添加selected class,同時利用siblings()方法,讓兄弟節點的selected class移除。不過這時候因為所有元素都在文件內,所以我們需要阻止事件冒泡,呼叫自己寫的cancelBubble()方法。好了,本文的內容到此基本介紹了,希望能夠對大家的學習或工作帶來一定的幫助,如果有疑問大家可以留言交流。
以上是如何利用CSS技術實現下拉框酷炫的特效的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在這篇文章中,布萊克·莫里(Blackle Mori)向您展示了一些駭客,同時試圖推動同位HTML支持的極限。如果您敢於使用這些,以免您也被標記為CSS罪犯。

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版