首頁  >  文章  >  web前端  >  表单美化_html/css_WEB-ITnose

表单美化_html/css_WEB-ITnose

WBOY
WBOY原創
2016-06-24 11:27:141136瀏覽

目录 [1]单选按钮 [2]多选按钮 [3]下拉列表

前面的话

  由于一些系统原生的表单控件在各个浏览器中显示效果不一致,且无法设置某些关键CSS样式,为了保证表单在各浏览器中的兼容性,表单美化就是不得不做的一件事了

 

单选按钮

【实现效果】

【实现过程】

body{    margin: 0;    font: 16px/20px "宋体";}.box{    width: 500px;    height: 100px;    line-height: 100px;    margin: 0 auto;    border: 1px solid black;    text-align: center;}.box label{    position:relative;    padding-left: 20px;}.box input{    visibility: hidden;}    .box i{    position: absolute;    top: -2px;    left: -2px;    height: 19px;    width: 19px;    background: url('http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/radiobutton.gif') no-repeat -14px -18px;}.box label:hover{    color: red;}.box label:hover i{    background-position: -14px -118px;}.box label.selected i{    background-position: -14px -218px;}

<div class="box" id="box">    选择一项游戏方式:    <label for="xiu"><i></i>咻一咻</label>    <input id="xiu" type="radio" value="咻一咻">    <label for="yao"><i></i>摇一摇</label>    <input id="yao" type="radio" value="摇一摇">    <label for="niu"><i></i>扭一扭</label>    <input id="niu" type="radio" value="扭一扭"></div><script>var oBox = document.getElementById('box');var aLabel = oBox.getElementsByTagName('label');for(var i = 0, leni = aLabel.length; i < leni; i++){    aLabel[i].onclick = function(){        for(var j = 0,lenj = aLabel.length; j < lenj; j++){            aLabel[j].removeAttribute('class');        }        this.className = 'selected';    }}</script>

 

多选按钮

【实现效果】

【实现过程】

body{    margin: 0;    font: 16px/20px "宋体";}.box{    width: 600px;    height: 100px;    line-height: 100px;    margin: 0 auto;    border: 1px solid black;    text-align: center;}.box label{    position:relative;    padding-left: 20px;}.box input{    visibility: hidden;}    .box i{    position: absolute;    top: -2px;    left: -2px;    height: 19px;    width: 19px;    background: url('http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/checkbox.gif') no-repeat -14px -18px;}.box label:hover{    color: red;}.box label:hover i{    background-position: -14px -118px;}.box label.selected i{    background-position: -14px -218px;}

<div class="box" id="box">    选择日常手机交易方式(可多选):    <label for="a"><i></i>支付宝</label>    <input id="a" type="radio" value="支付宝">    <label for="t"><i></i>微信</label>    <input id="t" type="radio" value="微信">    <label for="b"><i></i>百度钱包</label>    <input id="b" type="radio" value="百度钱包"></div><script>var oBox = document.getElementById('box');var aLabel = oBox.getElementsByTagName('label');for(var i = 0, leni = aLabel.length; i < leni; i++){    aLabel[i].onclick = function(){        if(!this.className){            this.className = 'selected';        }else{            this.removeAttribute('class');        }    }}</script>

 

下拉列表

【实现效果】

【实现过程】

body{    margin: 0;    font: 16px/20px "宋体";}ul{    margin: 0;    padding: 0;    list-style: none;}.box{    width: 300px;    height: 40px;    margin: 0 auto;    border: 1px solid black;}.box .show{    background-color: red;    line-height: 30px;    padding: 5px;}.box .show-area{    color: white;    vertical-align: middle;}.box .show-select{    position: relative;    display: inline-block;    vertical-align: middle;    width: 200px;    height: 28px;    border: 1px solid #999;    background-color: white;    text-indent: 20px;    cursor: pointer;}.box .show-selectAdd{    color: #999;}.box .show-select i{    position: absolute;    height: 0;    width: 0;    top: 0;    right: 0;    margin-top: 12px;    margin-right: 5px;    border: 5px solid transparent;    border-top-color: black;}.box .show-selectAdd i{    border: 5px solid transparent;    border-bottom-color: black;    margin-top: 8px;}.box .list{    border: 1px solid #dfdfdf;    border-top: none;    display: none;}.box .list-in{    height: 30px;    line-height: 30px;    text-indent: 74px;    border-bottom: 1px solid #dfdfdf;        cursor: pointer;}.box .list-in:hover{    color: red;}

<div class="box" id="box">    <div class="show">        <strong class="show-area">地址:</strong>        <span class="show-select">朝阳区<i></i></span>    </div>    <ul class="list">        <li class="list-in">朝阳区</li>        <li class="list-in">海淀区</li>        <li class="list-in">东城区</li>        <li class="list-in">西城区</li>        <li class="list-in">丰台区</li>        <li class="list-in">石景山区</li>    </ul></div><script>var oBox = document.getElementById('box');var oDiv = oBox.getElementsByTagName('div')[0];var oShow = oDiv.getElementsByTagName('span')[0];var oUl = oBox.getElementsByTagName('ul')[0];var aLi = oUl.getElementsByTagName('li');//简单思路//[1]点击oDiv时,默认文字为黑色,三角向上,变成文字为#999,三角向下;简化为增加一个show-selectAdd类名;oUl从隐藏变成显示oDiv.onclick = function(e){    //阻止冒泡    e = e || event;    if(e.stopPropagation){        e.stopPropagation();    }else{        e.cancelBubble = true;    }    oShow.className = 'show-select show-selectAdd';    oUl.style.display = 'block';}//[2]点击oUl的li时,oUl从隐藏变成显示,文字和三角恢复到黑色和向上的默认样式;并且文字内容变成当前点击的li的内容for(var i = 0,len=aLi.length; i < len;i++){    aLi[i].onclick = function(){        oShow.innerHTML = this.innerHTML + '<i></i>';    }}//[3]点击box以外的其他部分时,oUl从隐藏变成显示,文字和三角恢复到黑色和向上的默认样式document.onclick = function(){    this.getElementsByTagName('span')[0].className = 'show-select';    oUl.style.display = 'none';    }</script>

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn