表单的默认控件在不同的浏览器中的样式不同,用户体验很差。用CSS3可以实现表单控件的美化,可以提供更好的用户体验。不足之处就是浏览器的兼容性问题。
一.下拉控件
效果图:
下拉控件的布局结构:
XML/HTML Code复制内容到剪贴板- <div class="container">
- <div class="select">
- <p>所有选项</p>
- <ul>
- <li class="selected" data-value="所有选项">所有选项</li>
- <li data-value="Python">Python</li>
- <li data-value="Javascript">Javascript</li>
- <li data-value="Java">Java</li>
- <li data-value="Ruby">Ruby</li>
- </ul>
- </div>
- </div>
ul用来模拟下拉列表,在实际的使用过程中,可以根据后台返回过来的数据动态生成。p元素用来渲染选中的选项。
核心样式:
- .container .select{
- width: 300px;
- height: 40px;
- font-size: 14px;
- background-color:#fff;
- margin-left: auto;
- margin-right: auto;
- position: relative;
- }
- /*下拉箭头的样式*/
- .container .select:after{
- content: "";
- display: block;
- width: 10px;
- height: 10px;
- position: absolute;
- top: 11px;
- rightright: 12px;
- border-left: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transition: transform .2s ease-in, top .2s ease-in;
- transition: transform .2s ease-in, top .2s ease-in;
- }
- /*
- 被选中的列表项显示的区域
- */
- .container .select p{
- padding: 0 15px;
- line-height: 40px;
- cursor: pointer;
- }
- /*
- 下拉列表的样式
- 默认高度为0
- */
- .container .select ul{
- list-style: none;
- background-color: #fff;
- width: 100%;
- overflow-y: auto;
- position: absolute;
- top: 40px;
- left: 0;
- max-height:0;
- -webkit-transition: max-height .3s ease-in;
- transition: max-height .3s ease-in;
- }
- .container .select ul li{
- padding: 0 15px;
- line-height: 40px;
- cursor: pointer;
- }
- .container .select ul li:hover{
- background-color: #e0e0e0;
- }
- .container .select ul li.selected{
- background-color: #39f;
- color: #fff;
- }
- /*下拉控件动画*/
- @-webkit-keyframes slide-down{
- 0%{
- -webkit-transform: scale(1, 0);
- transform: scale(1, 0);
- }
- 25%{
- -webkit-transform: scale(1, 1.2);
- transform: scale(1, 1.2);
- }
- 50%{
- -webkit-transform: scale(1, .85);
- transform: scale(1, .85);
- }
- 75%{
- -webkit-transform: scale(1, 1.05);
- transform: scale(1, 1.05);
- }
- 100%{
- -webkit-transform: scale(1, 1);
- transform: scale(1, 1);
- }
- }
- @keyframes slide-down{
- 0%{
- -webkit-transform: scale(1, 0);
- transform: scale(1, 0);
- }
- 25%{
- -webkit-transform: scale(1, 1.2);
- transform: scale(1, 1.2);
- }
- 50%{
- -webkit-transform: scale(1, .85);
- transform: scale(1, .85);
- }
- 75%{
- -webkit-transform: scale(1, 1.05);
- transform: scale(1, 1.05);
- }
- 100%{
- -webkit-transform: scale(1, 1);
- transform: scale(1, 1);
- }
- }
- .container .select.on ul{
- /*
- 默认情况下,ul的高度为0,当点击控控件的时候,
- 设置下拉列表的高度。
- */
- max-height: 300px;
- -webkit-transform-origin: 50% 0;
- transform-origin: 50% 0;
- -webkit-animation: slide-down .5s ease-in;
- animation: slide-down .5s ease-in;
- }
- /*下拉选项被选中后控制箭头的方向*/
- .container .select.on:after{
- -webkit-transform: rotate(-225deg);
- transform: rotate(-225deg);
- top: 18px;
- }
这里只是静态的样式,如果要实现“选择”这个过程,需要用到JavaScript来实现。
JavaScript Code复制内容到剪贴板- $(function(){
- var selected = $('.select > p');
- //控制列表显隐
- selected.on('click', function(event){
- $(this).parent('.select').toggleClass('on');
- event.stopPropagation();
- });
- //点击列表项,将列表项的值添加到p标签中
- $('.select li').on('click', function(event){
- var self = $(this);
- selected.text(self.data('value'));
- });
- //点击文档其他区域隐藏列表
- $(document).on('click', function(){
- $('.select').removeClass('on');
- });
- });
二.美化单选框
lable标签可以通过for属性与单选框实现联动。我们利用这一特性来实现美化单选框,这也是原理所在。还有就是别忘了将真正的单选框(type="radio")隐藏掉。
- /*用过label标签来模拟radio 的样式*/
- .radio-block label{
- display: inline-block;
- position: relative;
- width: 28px;
- height: 28px;
- border: 1px solid #cccccc;
- background-color: #fff;
- border-radius: 28px;
- cursor: pointer;
- margin-right:10px;
- }
- input[type="radio"]{
- display: none;
- }
- .radio-block label:after{
- content: '';
- display: block;
- position: absolute;
- width: 20px;
- height: 20px;
- left: 4px;
- top: 4px;
- background-color: #28bd12;
- border-radius: 20px;
- /*通过scale属性来控制中心点*/
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- /*选中样式*/
- input[type="radio"]:checked + label{
- background-color :#eee;
- -webkit-transition: background-color .3s ease-in;
- transition: background-color .3s ease-in;
- }
- /*选中之后的样式*/
- input[type="radio"]:checked + label:after{
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transition: transform .2s ease-in;
- transition: transform .2s ease-in;
- }
最后效果:
三.美化复选框
原理和单选框的制作方式类似。在checked的时候该表圆形的left值和label的背景。
CSS Code复制内容到剪贴板- .switch-block{
- width: 980px;
- padding: 3% 0;
- margin: 0 auto;
- text-align: center;
- background-color: #fc9;
- }
- .switch-block label{
- display: inline-block;
- width: 62px;
- height: 30px;
- background-color:#fafafa;
- border:1px solid #eee;
- border-radius: 16px;
- position: relative;
- margin-right: 10px;
- cursor: pointer;
- -webkit-transition: background .2s ease-in;
- transition :background .2s ease-in;
- }
- input[type="checkbox"]{
- display: none;
- }
- .switch-block label:after{
- content: '';
- position: absolute;
- width: 28px;
- height: 28px;
- border: 1px solid #eee;
- border-radius: 14px;
- left: 1px;
- background-color:#fff;
- -webkit-transition: left .2s ease-in;
- transition: left .2s ease-in;
- }
- .switch-block input[type="checkbox"]:checked + label{
- background-color:#3c6;
- -webkit-transition: background .2s ease-in;
- transition :background .2s ease-in;
- }
- .switch-block input[type="checkbox"]:checked + label:after{
- left: 32px;
- -webkit-transition: left .2s ease-in;
- transition: left .2s ease-in;
- }
本文链接:http://www.cnblogs.com/maple0x/p/5624401.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]