如何用css更改表单元素如单选框或下拉框的默认样式

html-css08

如何用css更改表单元素如单选框或下拉框的默认样式,第1张

您好,如单选框,它会默认有一个圆形的选择框,如果觉得不好看,可以将这个标签定位到可视界面以外,因为你使用label标签是可以选中这个选择框的,你只需要更改该label标签的样式就行了

用cssselect下拉框的美化

这个可以换种方式实现,首先select的样式每个浏览器都有其默认的样式,需要先去除这些默认样式,其次,select里面的样式诸如箭头,下拉框等等的样式,这里提供一种思路,就是在select的外层添加一个div,对这个div元素设置样式,select元素则是没样式,从而达到一种掩眼法的效果,实现方式如下:

<!-- html 布局 -->

<div id="selectStyle">

<select id="select">

<option>option 1</option>

<option>option 2</option>

<option>option 3</option>

<option>option 4</option>

<option>option 5</option>

</select>

</div>

首先要去掉 #select 的默认样式:

/* 去掉默认样式,设置新的样式 */

#select{

display:block

width:100%

height:100%

box-sizing:border-box

background:none

border:1px solid #222

outline:none

-webkit-appearance:none

padding:0 5px

line-height:inherit

color:inherit

cursor:default

font-size:14px

position:relative

z-index:3

}

#select option{

color:#222

}

#select option:hover{

color:#fff

}

#select option:checked{

background:#535353

color:#fff

}

然后在外层div#selectStyle设置自定义样式

#selectStyle{

display:block

margin:0 auto

overflow:hidden

height:30px

width:240px

border-radius:0

background:#535353 url("箭头图片地址") right center no-repeat

background-size:auto 80%

color:#fff

line-height:2

/* 如果不想加图片,

则可以设置一个自己的三角形样式,

如下的自定义方式,

见代码1 */

position:relative

z-index:1

}

/* 代码1 */

#selectStyle:before{

position:absolute

z-index:1

top:50%

right:10px

margin-top:-2.5px

display:block

width:0

height:0

border-style:solid

border-width:5px 5px 0 5px

border-color:#fff transparent transparent transparent

content:""

}

/* 代码1 */

#selectStyle:after{

position:absolute

z-index:1

top:50%

right:10px

margin-top:-3.5px

display:block

width:0

height:0

border-style:solid

border-width:5px 5px 0 5px

border-color:#535353 transparent transparent transparent

content:""

}

以上就是自定义select样式的方法;

同时也可以完全不要select这个元素使用div+css来自定义一个跟select一样效果的下拉框(需要Javascript辅助)。

手机设备下的界面

正常浏览器下的html5界面

要解决该问题需要加入一些css样式,如下:

input[type="button"], input[type="submit"], input[type="reset"] {

-webkit-appearance: none

-moz-appearance: none

appearance: none

}

如果还有圆角的问题,

.button{ border-radius: 0}

在写表单时候会发现一些浏览器对表单赋了默认的样式,如在谷歌浏览器下,文本框和下拉选择框当载入焦点时,会出现发光的边框!文本框textarea可以自由拖拽拉大!在IE10下,文本框输入内容后,会在右侧出现一个小叉叉。面对这些问题,下面来看看解决方法。

去除谷歌等浏览器文本框默认发光边框

input:focus, textarea:focus {

outline: none

}

去掉高光样式:

input:focus{

-webkit-tap-highlight-color:rgba(0,0,0,0)

-webkit-user-modify:read-write-plaintext-only

}

也可以重新根据自己的需要设置一下,如:

input:focus,textarea:focus {

outline: none

border: 1px solid #f60

}

这样的话,当文本框载入焦点时,边框颜色就会变为橙色,增强用户体验!

去除IE10+浏览器文本框后面的小叉叉

input::-ms-clear {

display: none

}

禁止多行文本框textarea拖拽

添加属性多行文本框就不能拖拽放大缩小了:

textarea {

resize: none

}