1. 程式人生 > >對select表單控制元件進行美化

對select表單控制元件進行美化

最近在一個專案中,要在原生的select表單控制元件進行美化成input表單控制元件一樣的樣式。

對此,我的想法是把這個select元素絕對定位並完全覆蓋到一個input元素上,然後讓這個select元素透明。這樣,我看到的就會是一個input元素,但是點選該input元素時,會出現select元素的下拉選擇,因為select雖然透明化了,但是option並不會受影響,這就完美解決了select的美化問題。html如下:

<select class="select" id="sel_time" value="">
	<option value="">請選擇日期</option>
	<option value="12:00">12:00</option>
	<option value="13:00">13:00</option>
</select>
<input type="text" placeholder="請選擇時間" id="time">

但是,對於不同瀏覽器,select的透明化有差異,有的瀏覽器只需要把select的邊框和背景透明即可,但是有些瀏覽器不行,因此需要把整個select元素設定不透明度。css實現樣式如下:

input[type="text"], .select{
    width: 100%;
    height: 44px;
    margin: 10px auto 0px;
    padding: 0px 15px;
    box-sizing: border-box;
    font-size: 11pt;
    border: 1px solid #ccc;
}
.select{
    background-color: transparent;
    opacity: 0;
    border: none;
    outline: none;
    color: transparent; 
    position: absolute;
}
.select>option{
    color: #2c2c2c;
}
.select>option:first-child{
    color: #ccc;
}
為了能夠讓該input元素同步select的取值,需要JavaScript來完成取值的同步:
var sel_time = document.getElementById('sel_time'),
	time = document.getElementById('time');
sel_time.addEventListener('change', function(){
	time.value = sel_time.value;
}, false);


相關推薦

select控制元件進行美化

最近在一個專案中,要在原生的select表單控制元件進行美化成input表單控制元件一樣的樣式。 對此,我的想法是把這個select元素絕對定位並完全覆蓋到一個input元素上,然後讓這個select元素透明。這樣,我看到的就會是一個input元素,但是點選該input元素

Vue之控制元件繫結

1.text <p>text輸入文字</p> <span>Hello {{name}}</span> <input type="text" v-model="name" placeholder="yous name" name

FlowLayoutPanel裡面的控制元件進行排序

FlowLayoutPanel是可以通過設定控制元件的索引值來達到對FlowLayoutPanel裡面的控制元件進行排序的目的。 public virtual void SetChildIndex( Control child, int newIndex ) 在使

C# 新增Excel控制元件(Form Controls)

在Excel中,新增的控制元件可以和單元格關聯,我們可以操作控制元件來修改單元格的內容,在下面的文章中,將介紹在Excel中新增幾種不同的表單控制元件的方法,包括:  新增文字框(Textbox)  單選按鈕(Radio button)  複選框(Checkbox

第三章 3-4 控制元件

1、輸入框inputbootstrap通過對input標籤的type屬性進行識別,得到相應的格式,所以input標籤一定要對type進行指定。另外,還需通過form-control對輸入框進行規範統一,此外,可以用placeholder對框內內容進行初始化。 <form role="form"&

Vue 控制元件

js檔案 var vm = new Vue({ el: '#app', data: { msg : '', age : u

form控制元件向後臺傳遞陣列

後臺: public class MSelectDetail { private Integer xxx; private String xxxx; private Str

細說 Angular 的自定義控制元件 (贊,實用)

我們在構建企業級應用時,通常會遇到各種各樣的定製化功能,因為每個企業都有自己獨特的流程、思維方式和行為習慣。有很多時候,軟體企業是不太理解這種情況,習慣性的會給出一個診斷,『你這麼做不對,按邏輯應該這樣這樣』。但企業往往不會接受這種說法,習慣的力量是強大的,我們一定要尊重

Vue 的(v-model)控制元件繫結

v-model 為表單控制元件元素建立資料雙向繫結。(將js變數的值 快速 設定到控制元件上,然後將使用者輸入內容 快速 設定回js變數)   <!DOCTYPE html> <html lang="en"> <head> <m

HTML5(一)語義化標籤、新增控制元件

1、新的頁面結構以及寬鬆的語法規範         <!doctype html>         <meta charset="utf-8"/> 2、語義化標籤 (1)<header></header>    頁首:主要用於頁

vuejs控制元件繫結

一、基礎語法 vuejs中用v-model指令在表單控制元件元素上建立雙向資料繫結。它會根據控制元件型別自動選取正確的方法來更新元素。但要注意的是v-model僅僅是語法糖,它只負責監聽使用者的輸入時間一更新資料,並特別處理一些極端的例子。 注:1.·v

js 動態新增多控制元件 div

<script type="text/javascript">  var p=1; function CreateUpload()     {         p++;         var div=document.createElement('div');         var html

HTML常用行標籤和控制元件

HTML常用的行級標籤 行內元素不獨佔一行 HTML連結 a標籤 href屬性是必須要的屬性,target指定連線以何種方式開啟,_blank用新視窗開啟,預設是self原視窗開啟。 <a href="連結" target="_blank">連結文字</a&

validateField方法部分欄位進行校驗

<template> <div class="content-container developer-container dev-register-container"> <nav-bar :address="address" :

使用jstl el表示式form的功能進行區分 比如新建和修改共用一個form

新建一個專欄,修改這個專欄資訊 完全可以做在一個jsp的一個form中 但是,需要注意的是,使用mvc的物件屬性自動封裝的話 如果id為空,將會報錯,無法進入controller中的 所以要在頁面上判斷,id是不是大於0,大於0表示已經傳來了一個model這時候把id設為隱藏域 並且執行修改操作

使用jstl el表達式form的功能進行區分 比如新建和修改共用一個form

存在 oos 功能 記錄 信息 mage 分享圖片 bsp color 新建一個專欄,修改這個專欄信息 完全可以做在一個jsp的一個form中 但是,需要註意的是,使用mvc的對象屬性自動封裝的話 如果id為空,將會報錯,無法進入controller中的 所以要在頁面上判斷

Vue.js筆記-控制元件繫結

基礎語法         可以用v-model指令在表單控制元件元素上建立雙向資料繫結,根據控制元件型別它自動選取正確的方法更新元素。 text <span>Message is

HTML控制元件的集合

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>好好學習天天向上</title> </he

Asp.Net Form控制元件的回車預設事件

在WEB頁面上,通常SUBMIT型別的按鈕會被預設指派為所在FORM表單的提交按鈕 在做ASP.net WEB應用的時候,常常遇到會在同一個頁面裡新增多個按鈕,而每個按鈕肯定都會觸發頁面回送事件。 在ASP.NET中,只能指定一個帶有runat="server"的FORM表單,因此,這個表單會指派

angularjs-與驗證-控制元件的使用

表單控制元件:input/select/textarea <!--h4的表單控制元件--> <input type="text"/> <input type="password"/> <input ty