天天看點

基于Bootstrap裡面的Button dropdown打造自定義select

最近工作非常的忙,在對一個系統進行改版。項目背景是

mvc1.0開發的,但是前端部分已經改過幾個版本,而已之前的設計師很強大,又做設計又做前端開發。而已很時尚和前沿,使用了一直都很熱門的

bootstrap工具包,有很多把它定義為web前端css架構。說實話,之前隻知道它是twitter公司出品,界面做的比較好看。但是沒有在實際項

目中使用,之前公司新來的同僚會這個,準備在公司官網項目中使用,因為我不會,而已leader對這個也不感冒,是以就沒有用。而已她說配合less一起

做項目,可以提高開發效率,而已可以把系統做的更漂亮和美觀,而已對自适應設計支援比較好。

目需求是将html原生的select标簽替換為下圖所示的下拉框效果。我一般看到這種需求,要改變原生的html标簽,就不太喜歡弄。雖然也知道通過

ui和li标簽,加上javascript代碼可以實作和select一樣的功能,但是之前也沒有嘗試去寫過,到時bug和浏覽器相容性有問題,和pm溝

通,是不是不要改這個select,就用原生的select,pm說是為減低使用者幹擾,讓使用者不要太在意這個選擇項。我覺得也是這個道理,首先長的不想

select那麼誇張,其次那個下拉箭頭有點小,使用者也不會太刻意去點選。其實點選那個文字也是會把下面下拉清單打開的。

基于Bootstrap裡面的Button dropdown打造自定義select

select

原始功能是可以點選右側的下拉箭頭可以打開下拉清單,給使用者選擇。使用者選擇一個選項,文本框裡面的值要變成對應的option的内容,并且可以擷取到

option的value值。另外一個很重要的功能是option有一個selected屬性。如果某個option有

selected=”selected”,那麼下拉框預設會選中目前這個option。

bootstrap

提供button

dropdown是為了來做漂亮的菜單,壓根不是想做select的功能。當我搜尋看到它時,我還以為bootstrap可以提供類似button

dropdown樣式的select元件。不過我是妄想,沒有這個元件,必須元件實作。其實有過用ul和li寫select标簽的經驗,寫這個也不是很困

難。

這個是button dropdown的基本代碼。因為它本身會應用css樣式,而已我們後面要改bootstrap.min.css裡面的樣式,是以我們需要在這個頁面單獨放一些樣式。

點選過程中會出現一個背景。通過chrome檢視元素,是寫box-shodow的效果。但是我改過之後,還是出現了。明天繼續查找一下。

基于Bootstrap裡面的Button dropdown打造自定義select

添加1行樣式覆寫,bootstrap.css裡面本身的樣式。

注意事項:在執行個體化的過程中,我們傳入的是一個jquery選擇器的對象,是以如果一個頁面有很多自定義的dropdown,會使用類别。那在執行個體化的過程要修改一下代碼哦!

繼續閱讀