您现在的位置是:网站首页> 编程资料编程资料
利用CSS3实现文本框的清除按钮相关的一些效果css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
2021-09-05
907人已围观
简介 这篇文章主要介绍了利用CSS3实现文本框的清除按钮相关的一些效果,主要是针对输入时的隐藏与显示效果的讲解,需要的朋友可以参考下
新技能传授-哔哔哔哔
search类型搜索框,设计师常常会设计一个叉叉图标,表示用户点之久可以清除输入的内容。比方说这个:
这是不错的体验!
当前现代浏览器中,Chrome浏览器下type=search的输入框会有清除按钮的动态呈现,不过搜索input框尺寸不太好控制(padding无视);FireFox浏览器貌似任何类型的输入框都无动于衷;IE10+浏览器貌似任何输入框都会出现清除按钮,但是长得略微粗糙了点,设计师同学接受不了。
貌似不和谐了,咋办?传授个新技能,借助HTML以及CSS,来模拟清除按钮可动态呈现的搜索框。
如下CSS:
- .input { padding: 5px; margin: 0; border: 1px solid #beceeb; }
- .clear { display: none; position: absolute; width: 16px; height: 16px; margin: 6px 0 0 -20px; background: url(clear.png);}
- .input::-ms-clear { display: none; }
- .input:valid + .clear { display: inline; }
如下HTML:
输入任意内容:
- <input class="input" required><a class="clear">a>
然后就有类似下面截图的效果了(均截自FireFox浏览器):
手摸为实,眼观为虚。您可以狠狠地点击这里:CSS与文本框上清除按钮显隐Demo
实现原理
HTML部分
因为search类型文本框在Chrome/Opera/Safari下尺寸不好控制,因此使用缺省的类型(也就是text类型);
required是必要属性,配合CSS伪类实现我们的效果。
CSS部分
使用的是:valid伪类。这是CSS3中新增伪类,IE10+以及其他现代浏览器支持,表示表单合法。由于HTML中的有HTML5表单验证属性required. 于是,如果文本框没有内容,则不合法;有内容,则合法,就会触发这里的:valid伪类选择器。而这里:valid伪类控制后面的清除按钮显示,于是就实现了我们想要的效果。
啊,对了。IE11浏览器下不是所有的文本框都有黑色的叉叉吗,会跟这里的自定义清除按钮重叠,::-ms-clear { display: none; }这段代码可以去之~~
更多伪元素改变表单控件默认样式可以参考“伪元素改变表单控件默认样式”一文。
补充于翌日:来公司用IE11测了下,没效果。后发现,不是伪类不认识,而是兄弟选择器的渲染bug. 通过修改透明度为0→1变化,鼠标hover清除按钮位置,则按钮出现或隐藏(见下面Gif)。尚未发现什么奇淫技巧修复这个问题。
评论有说mac下Chrome浏览器无法清除。经自己测试,可以的。如果意思是点击关闭按钮清除,确实CSS无能为力。
实现的优点
此方法相比传统JS实现的好处在于,更简单了。JS的话还要侦听输入事件(input)等,比较折腾。CSS的话完全浏览器自身事件特性,显然,高效简单的多。
实现的不足
不足在于,兼容性。IE9-以下的浏览器只能点蜡烛了。
不过,写写原型啊,demo;或者渐进增强使用;或者移动端开发等,都可以试试这个新技能。
注意:点击叉叉是不会清除的,本文只是输入控制显隐!!
相关内容
- 使用CSS3制作饼状旋转载入效果的实例
- 详解CSS中clear:left/right的用法使用CSS3制作响应式导航菜单的方法CSS中使用clearfix清除浮动的方法CSS clear属性给float带来哪些影响css的border和clear属性使用方法和示例css浮动(float/clear)使用讲解css中的clear属性使用方法实例介绍浅谈CSS中的clear清除浮动
- 举例详解CSS中的cursor属性CSS中cursor属性的鼠标样式明细css cursor 的可选值(鼠标的各种样式)CSS cursor 属性 -- 鼠标指针样式效果
- CSS设计之页面滚动条出现时防止页面跳动的方法前端页面弹框遮罩禁止页面滚动使用overflow: hidden来禁用页面滚动条纯css 实现footer 一直在页面底部,不随页面滚动HTML页面滚动时部分内容位置固定不滚动的实现
- 使用CSS代码的空格实现中文对齐的方法CSS实现让同一行文字和输入框对齐的方法CSS实现同一行的图片和文字垂直居中对齐的方法CSS强制换行对齐的实现方法
- 深入理解CSS的height:100%和height:inherit之间的使用区别CSS 继承 inherit属性的方法CSS中的inherit使用技巧小结CSS中的两个特殊值用于控制层叠的inherit和initial的方法
- 使用CSS中的meta实现web定时刷新或跳转的方法如何使用URL跳转解决Web服务80端口被屏蔽的问题?Web前端页面跳转并取到值
- 利用CSS3实现圆角的outline效果的教程使用CSS实现outline切换的动画效果css去掉点击连接时所产生的虚线边框技巧兼容符合w3c标准的浏览器CSS教程:text-indent隐藏文字出现虚线框outline-CSS教程-网页制作-网页CSS轮廓outline的具体使用
- 浅谈CSS编程的OOCSS和SMACSS设计模式CSS实现连续字符换行的方法纯CSS实现美观大方的网页柱状图效果纯CSS实现鼠标悬停提示的方法
- CSS框架开发指南CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题