写在前面:

之前踩坑css的时候,遇到滑轮,按钮,选择框这类型的东西,为了页面效果,总是需要自定义他们的样式,而不使用他们的默认样式。当时写的时候,我也是蛮头疼的,弄了个demo,链接在下面。对此做个总结。本文是面向前端小白的,大手子可以跳过,写的不好之处多多见谅。

额,今天就先大概的将代码贴上来,考虑到篇幅的问题,就先写一下三个的实现方式,一般也都看得懂,代码注释的非常详细。因为细分下来内容也很多,准备之后再将如何实现的方式,属性,优化以及如何兼容各个浏览器的方式一步步的写出来。

最终效果:


如何使用这些属性?

用法很简单,如下所示:

<input type="range">//滑动条
<input type="radio">//按钮
<select>//选择框

input type="range"样式修改:



html content

<div>
<input type="range" class="slider-block" id="slider" max="18" min="6" step="1" value="6">
<!--主要是一个type="range"属性,其他的会在细分的文章里面讲出来-->
</div>

csscontent

.slider-block{
outline: none; /*去掉点击时出现的外边框*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; /*这三个是去掉那条线原有的默认样式,划重点!!*/
width: 30%;
height: 0.3rem;
background: orange; /*这三个是设置滑块下面那条线的样式*/
}
input[type="range"]::-webkit-slider-thumb {
/*::-webkit-slider-thumb是代表给滑块的样式进行变更*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; /*//这三个是去掉滑块原有的默认样式,划重点!!*/
-webkit-box-shadow:0 0 2px ;/*设置滑块的阴影*/
width: 2.6rem;
height:1.6rem;
background: url("images/js2-d_03.png");
background-size: cover; /*//这几个是设置滑块的样式*/
}
//文章下面有demo链接

文章下面有demo链接

代码里面注释关键点都写了,还不能理解的,可以看下demo。


input type="radio"修改默认样式



html content

<form class="task10-main-box-shape" method="post" action="#">
<!--//表单元素基本上都要加form,传送的参数的方式,传递的位置,这是一个好习惯--> <div>
<input id="shape1" name="box-shape" type="radio" checked="checked" value="shape1" />
<!--checked属性是当页面载入的时候选择这个按钮,value是传送的值-->
<label for="shape1">对口箱</label><!--/加label标签点击这个字的时候,可以选中按钮-->
</div>
</form>

css样式这里相对难点,但我注释的已经很多了。


.task10-main-box-shape input[type="radio"]{
display: none;
/*隐藏默认按钮的样式,这跟其他隐藏默认按钮的样式的方法不一样,注意一下*/
}
    .task10-main-box-shape label{  /*这里是设置文字的样式*/
display: inline-block;
cursor: pointer;
position: relative;
padding-left: 3rem;
margin-right: 6rem;
font-size: 1.8rem;
color: rgb(102,102,102); }
.task10-main-box-shape label:before { /*这里是没被选中时候按钮的样式*/
content: "";
/*将要自定义的东西设置为空的字符串,就可以往里面随意加定义的样式了*/
display: inline-block;
background-color: #FFFFFF; /*设置背景*/
padding:0.45em; /*撑开背景,就是中间那块白色的*/
border: 1px solid gray;
margin-right: 10px;
position: absolute;
left: 0;
bottom: 3px;
border-radius: 50%; /*设置圆角*/ } input[type=radio]:checked + label:before {/*按钮被选中之后的样式,多了一个checked*/
font-size: 1px;
color: #FFFFFF;
border:0.7rem solid rgb(29,122,217);
/*设置按钮样式*/
}

select修改默认样式



### html cantent

<div>
<select class="task10-main-box-row2-select">
<option>查看详情</option>
<option>我也不知道</option>
<option>详情是什么</option>
</select>
</div>

css cantent

    .task10-main-box-row2-select{
font-size: 1.6rem;
color: rgb(153,153,153);
padding: 0.3% 2% 0.3% 1%;
margin: 0; /*这里是选择框里面的样式*/
background: url("images/task10-d_03.png") no-repeat 97%;
/*97%是设置图片,也就是三角形的位置*/
background-size:20%; /*背景图片的尺寸*/
appearance:none;
-moz-appearance:none;
-webkit-appearance:none; /*这三个是隐藏默认样式*/
}

ps:css样式写的有点乱,各位看官,将就着看看,下面有demo链接。


总结

总的来说这类型的首先需要将样式隐藏掉,然后再自行添加需要的类型,但是有些隐藏样式的方式也不同,有些是这种,appearance:none; -moz-appearance:none; -webkit-appearance:none;像radio按钮的,反而是display:none;这种类型的。还有的样式可以写的很好看,比如滑块怎么移动的时候,填充条跟着移动。会的大家都会,要琢磨的精,会别人不会的,才是你身价所在。


后话:

连续一个多星期不睡午觉,终于熬不住了。感觉身体被掏空,以后就改为下午的时候更文。因为一些事情耽搁了,直到晚上才弄好。下面几天会逐渐把这几个如何实现的方式,属性,优化以及如何兼容各个浏览器的方式一步步的写出来,链接会放在文末的。

假装这里有三个链接。
range滑块自定义样式,步骤详解以及实际应用

最后:希望看完的朋友点个喜欢,也可以关注一下我,现在这阶段基本上每个月都不会少于十五篇文章(看到干货我也会进行分享)。码字不易,感谢支持,感激不尽!

掘金个人主页

demo链接:https://obkoro1.github.io/article-demo/diy-style/diyStyle.html

以上,2017.4.16.

css自定义 range radio select的样式滑轮,按钮,选择框的更多相关文章

  1. 利用CSS 修改input=radio的默认样式(改成选择框)

    html部分: <input id="item2" type="radio" name="item"> <label fo ...

  2. 【css】 如何修改select的样式

    select { /*清除select默认样式*/ appearance:none; -moz-appearance:none; -webkit-appearance:none; -ms-appear ...

  3. css取消input、select默认样式(手机端)

    IOS端: background-color:transparent; border-color:transparent; andorid端: 仅仅使用上面的代码还不够,可以发现select框在某些浏 ...

  4. css+js实现兼容性select的样式

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

  5. css 更改input radio checkbox的样式

    html <label> <input type="checkbox" class="colored-blue"> <span c ...

  6. struts2学习笔记之表单标签的详解:s:checkbox/radio/select/optiontransferselect/doubleselect/combobox

    struts2中的表单标签都是以s标签的方式定义的,同时,struts2为所有标签都提供了一个模板,C:\Users\180172\Desktop\struts2-core-2.2.1.1.jar\t ...

  7. 【笔记】css 自定义select 元素的箭头样式

    原文链接:https://www.imooc.com/qadetail/187585?t=281881 最近项目需要自定义select 元素的样式,搜索了一下发现了通过设置select 元素 css ...

  8. CSS自定义select下拉选择框(不用其他标签模拟)

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

  9. 修改radio、checkbox、select默认样式的方法

    样式 radio select checkbox 兼容性 现在前端页面效果日益丰富,默认的input组件样式显然已经不能满足需求.趁着这次开发的页面中有这方面的需求,在这里整理一下修改radio.ch ...

随机推荐

  1. [LC] 809. Expressive Words

    Example: Input: S = "heeellooo" words = ["hello", "hi", "helo&quo ...

  2. STOER-WAGNER算法求解无向图最大流最小割(无指定源点汇点)

    学习粗:https://blog.csdn.net/ddelphine/article/details/77935670 模板题:http://poj.org/problem?id=2914 #inc ...

  3. HDU 6126 Give out candies(网络流)

    题目给出n,m,k 然后给出n*m的矩阵a[i][j]代表第i个人在获得j 颗糖果能得到的满足值, 然后k是k行每行输入三个整数x,y,z     ,x,y,z表示一组限制表示第x个人分到的糖数减去第 ...

  4. day25-网络基础

    # 一.子网掩码: # 1. 作用是划分子网,就是将某个ip地址划分成网络地址和主机地址两部分. # 形式上等同于ip地址,也是一个32位二进制数, # 如果它的网络部分(前24位)全为1,主机部分( ...

  5. 常见字体图标库——font-awesome

    1.简介 FontAwesome一种带有网页功能的象形文字语言,并收集在一个集合里.字库中有675个图标,只支持英文搜索,中文地址:http://www.fontawesome.com.cn/ 2.使 ...

  6. OfficeCommandbarViewer20171005.rar

    OfficeCommandbarViewer用于查看Office各组件工具栏和控件信息的一款软件. 采用了本地XML文件的方式,所以使用本工具不需要提前打开任何Office组件. 动态图: 下载地址: ...

  7. sqlserver命令创建数据库和表 demo

    由于sqlserver用起来很不爽 可以尝试用vscode+sqlserver插件玩玩 友情提示 在vscode中新建一个.sql 并配置好与sqlserver的连接 利用sql会有提示创建表 数据库 ...

  8. 奇点云数据中台技术汇(三)| DataSimba系列之计算引擎篇

    随着移动互联网.云计算.物联网和大数据技术的广泛应用,现代社会已经迈入全新的大数据时代.数据的爆炸式增长以及价值的扩大化,将对企业未来的发展产生深远的影响,数据将成为企业的核心资产.如何处理大数据,挖 ...

  9. scarce|component|

    ADJ-GRADED 缺乏的;不足的;供不应求的If something is scarce, there is not enough of it. Food was scarce and expen ...

  10. 三步教你实现MyEclipse的debug远程调试

    MyEclipse远程调试程序是个神奇的东西,有时一个项目本地运行没问题可放到服务器上,同样的条件就是结果不一样:有时服务器上工程出点问题需要远程调测.于是就灰常想看一下程序在远程运行时候的状态,希望 ...