网站首页 > 技术文章 正文
前言
浏览器自带的input标签,例如text,radio,checkbox的样式都显得很难看,虽然已经有类似于Bootstrap这种稳定的类库可以使用,但是对于定制化的input样式同样难以满足,今天我们就自己动手,一起来看看如何使用CSS3实现一个好看的input样式。
CSS3
如果感兴趣的,可以去github上去看源码进行学习,地址如下:
https://github.com/zhouxiongking/article-pages/tree/master/articles/beautifulInput
input-text
首先我们来看下type为text的文本框元素,实现的动态效果如下图所示。
效果图
实现过程
接下来我们来看看这样的效果是如何实现的。页面上的元素主要是以下几个部分。
input元素,将其border设置为none
label元素,与input元素绑定
div元素,实际为下面的横线
我们需要达到的效果是,在未点击input元素时,通过label元素显示提示信息;在input元素获得焦点后label元素会移动到input元素上面,并且显示出动态的获取焦点的过程,此后可以在input元素中正常输入信息。
代码组成
首先我们来看看HTML部分的代码。
HTML代码
通过html部分代码,可以看出页面主要由input,label,div三个元素构成。
然后我们再来看看CSS部分的代码,由于CSS部分代码比较多,我们拆开来看。
先看最外层的容器样式代码如下。
外层容器
然后是input标签的样式,在CSS3中提供了placehoder的样式,在这里为了防止placeholder属性会覆盖到label标签,我们将其透明度设置为0。关于input元素以及其placeholder属性值的css样式部分如下所示。
input样式
紧接着是下面的label标签的样式,因为在input获取焦点时,label元素会移动到input上方,因此需要给label元素加上一个动画效果。label部分代码如下所示。
label部分代码
其次是最下面的一条横线,在input元素未获取焦点的状态下,其长度为0。
横线
最后是在input获取焦点后的样式变化,下面的横线会逐渐延长至最大宽度,而且具有不同的颜色,这一动态效果由下面的代码决定。
获取焦点动态效果
至此,页面上所有的代码均已完成,在浏览器中运行页面后会看到文章开始时的效果。
结束
在万千已经成型的前端框架中,自己写出一个样式也算是一种收获,在后面的文章中,我会继续写关于如何实现checkbox和radio样式的文章,敬请期待~
猜你喜欢
- 2025-07-06 推荐!React 生态不容错过的6大顶级虚拟滚动库?
- 2025-07-06 用这7个CSS技巧来解决跨浏览器和屏幕的兼容问题
- 2025-07-06 后台产品设计规范-Ant Design实践到落地-表单篇
- 2025-07-06 每次用提示词都得找半天,10小时肝了个插件彻底解决问题
- 2024-10-09 领导让设计排行榜页面,给他18种样式,干就完了。
- 2024-10-09 最佳Icon图标库推荐,收藏等于学会
- 2024-10-09 开源组件库,将 LayUI 带入到 WPF
- 2024-10-09 前端:从零实现一款可视化图片编辑器
- 2024-10-09 ztext - 简单几行代码创建酷炫3D特效文字的开源JS库
- 2024-10-09 IconPark——比肩阿里Iconfont图库的前端Icon库
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)