由于一些系统原生的表单控件在各个浏览器中显示效果不一致,且无法设置某些关键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('https://demo.xiaohuochai.site/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;

}

https://demo.xiaohuochai.site

选择一项游戏方式:

咻一咻

摇一摇

扭一扭

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';

}

}

多选按钮

【实现效果】

【实现过程】

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('https://demo.xiaohuochai.site/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;

}

https://demo.xiaohuochai.site

选择日常手机交易方式(可多选):

支付宝

微信

百度钱包

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');

}

}

}

下拉列表

【实现效果】

【实现过程】

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;

}

地址:

朝阳区

  • 朝阳区
  • 海淀区
  • 东城区
  • 西城区
  • 丰台区
  • 石景山区

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 + '';

}

}

//[3]点击box以外的其他部分时,oUl从隐藏变成显示,文字和三角恢复到黑色和向上的默认样式

document.onclick = function(){

this.getElementsByTagName('span')[0].className = 'show-select';

oUl.style.display = 'none';

}

一个不是计算机专业的理科生,转行学前端

如果你也有一个编程梦,这是咱们的前端学习QQ群:784-783-012

(在线学习,8个月时间,目前就业,广州工作,月薪16k)

html原生控件美化,HTML表单美化相关推荐

  1. 037——VUE中表单控件处理之表单修饰符:lazy/number/trim

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  2. HTML基本语法之表单标签:表单的组成 ,表单域,表单控件元素(表单元素) ,input表单元素, label标签, 表单控件(表单元素), select表单元素, textarea表单元素

    文章目录 表单标签 表单的组成 表单域 常用属性: 表单控件元素(表单元素) input表单元素 label标签 表单控件(表单元素) select表单元素 textarea表单元素 表单元素几个总结 ...

  3. js 拖拽生成html,js拖拽插件 js 拖拽控件生成自定义表单 怎么实现

    想请教一个js的问题,拖拽控件 js 拖拽控件生成自定义表单 怎么实现 说说步骤吧 监听mousedown事件 - 获取鼠标点击元素,判断是否可拖拽 - 设置flag做标记 - 建一个tempDOM, ...

  4. 一起学asp.net基础文章二 服务器控件、客户端控件和html表单控件

    首先解释一下这两个控件个概念. 所谓服务器控件 就是微软官方提供的如 textbox label dropdownlist等可以直接添加事件,属性 操作方式和winform类似的.net控件. 1.使 ...

  5. android tible控件_android自定义表单,表格控件TableRowTextView

    先上图: TableRowTextView----单元格宽度自适应[app:cell_mode="wrapContent"] 单元格宽度属性[app:cell_mode=wrapC ...

  6. JS对象迭代、事件处理器、表单控件绑定、表单复选框、表单单选按钮

    JS对象迭代 知识点 v-for v-for 循环JS对象,把对象内容循环显示到页面上. <div id="myApp"><h1>JS对象迭代</h1 ...

  7. 一步步学习微软InfoPath2010和SP2010--第十二章节--管理和监控InfoPath Form Services(IPFS)(4)--监控含图片控件的Products表单...

    如本章节前面提到的,你的IPFS表单表现没有你想象的好有很多可能的原因.一个最明显的原因是表单产生太多通信量(因为表单产生的HTML的大小).在许多你使用了大型.笨拙表单的许多方法中,最常见的是让用户 ...

  8. excel 表单控件 按钮_Excel表单控制按钮怪癖

    excel 表单控件 按钮 If you're building an Excel workbook for other people to use, you can add form control ...

  9. 通达OA二次开发 开发基于AJAX技术数据列表控件的智能表单(图文)

    按照人鱼兄弟的思路,自己也做了一个这样的表单,数据智能提取的效率大大提高,更主要的是数据获取及变换的形式更灵活,完全可以自己编程进行控制.感谢大怪兽的技术支持,这里面用到很多js的东西大怪兽研究的还是 ...

  10. html自动布局的控件,常见的表单控件

    html 常用的表单控件类型有哪些 文本输入框 单选按钮 密码输入框 图像 隐藏域 文件提交 复选框 普通按钮 选择列表 下拉子菜单 文本区域 标签 分组 描述元素. html 常用的表单控件类型有哪 ...

最新文章

  1. 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第六章 深入理解wi-Fi Simple Configuration...
  2. CF Educational Round 23 F.MEX Queries
  3. python接口测试面试题及答案_100道接口测试面试题收好了!【建议收藏】
  4. .net html转义字符,asp.net转义字符
  5. 搜索公网上所有使用了SAP BSP技术的网站
  6. 洛谷P3155:叶子的染色(树形dp)
  7. ClassNotFoundException:是否减慢了您的JVM?
  8. 程序定义了多个入口点。使用 /main (指定包含入口点的类型)进行编译
  9. 控制台打印菱形和方形
  10. 我的cocos2d-x集成sharesdk之旅(转)
  11. 阿里云存储:安防行业背后的赋能者 | 凌云时刻
  12. 关于eclipse adt更新的问题
  13. Android源码下载编译(高通)
  14. XGBoost中分位点算法快速查找分割点
  15. python学习第一课——环境配置+比着葫芦画个瓢
  16. python 二进制流长度_python怎么处理二进制流
  17. 序列化和反序列化的概念及应用
  18. 华为起诉三星是中国企业改头换面的开始
  19. java利用条件运算符的嵌套来完成此题:学习成绩 =90分.....(java50道经典编程题)
  20. 单相交流调压电路matlab仿真,单相斩控式交流调压电路

热门文章

  1. MicroSIP软电话的安装和使用--从电脑上接听和拨打电话
  2. Linux_无法运行可执行文件
  3. 基于MATLAB实现四阶龙格库塔法求解一、二阶微分方程实例
  4. linux zsh 终端,linux 终端命令加速-zsh让终端更优雅
  5. c语言程序设计二维数组ppt,C语言程序设计教程二维数组的应用优秀讲义.ppt
  6. Mac 从零搭建Android开发环境记录以及提高效率软件推荐
  7. 布谷鸟哈希函数的参数_布谷鸟算法详细讲解
  8. win10 android10之后高通芯片 adb和fastboot驱动无法识别问题
  9. 小小串联电阻,大大的作用
  10. SPSS教程及常用操作参考表 —— 一篇文章解决对SPSS的所有疑问