CSS实现谷歌材料设计文本输入框风格的示例

  介绍

小编给大家分享一下CSS实现谷歌材料设计文本输入框风格的示例,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

虽然今天我们有很多框架可以帮我们实现这些风格,不过通过学习在底层是如何使用纯CSS实现的原理,可以加强我们将来需要根据业务需求定制化这些框架组件的能力。

演示请看这里:点我看演示【CodePen】

最终效果图:

 CSS实现谷歌材料设计文本输入框风格的示例

仅在Chrome浏览器上面测试过。如果大家发现其他浏览器有问题,欢迎大家提供修改方法,一起学习进步。

开始动手实现

首先,我们先创建如下的HTML:

& lt; form>   & lt;才能input 类型=皌ext", required /比;   & lt;才能label>   ,,,& lt; span> Username   & lt;才能/label>   & lt;/form>

这是一个常规的输入用户名的HTML表单。

相信聪明的大家都注意到了,我们将& lt; label>标签放在& lt; input>标签的后面,是因为我们之后需要通过& lt; input>标签的状态来选择& lt; label>然。而他们是同级兄弟关系,介于纯CSS选择器的只提供选择下一个兄弟的方法,我们就将& lt; label>标签放在后面。

效果图:

 CSS实现谷歌材料设计文本输入框风格的示例

接着让我们对& lt; form>元素做一下CSS效果的定制。

form  {   ,,宽度:50%;   ,,身高:50 vh;   ,保证金:大敌;汽车;   位置:,才能相对;   ,,字体类型:无衬线;   }

这一段CSS没什么特别的,就是定义长度高度和字体而已。

接着让我们给& lt; input>元素上一些样式。

form  input  {   ,,高度:2快速眼动;   宽度:才能,10眼动;   边界:才能,没有;   边界底部才能:0.1 rem  solid 黑色;   }

这一段CSS主要也是设置长度跟宽度,还有就是只设置下方的边框,让其有下划线的感觉。

效果图:

 CSS实现谷歌材料设计文本输入框风格的示例

接下来我们要设置& lt; label>标签,也就是将用户名字样移动到文本输入框的上方。

form  label  {   位置:才能,绝对;   ,,:0;   ,,左:0;   pointer-events才能:没有;   }

这里值得注意的是,我们设定了:

<代码> pointer-events:没有。

是希望将来鼠标点击到文字的时候能够触发文本输入框焦点事件,而不是触发选择字体的事件。

效果图:

 CSS实现谷歌材料设计文本输入框风格的示例

接下来我们要给& lt; input>元素增加padding-top,这样做可以将& lt; label>用户名顶上去一点。

接着我们给& lt; input>元素加上大纲:没有,这样当我们点击文本输入框的时候就不会再出现蓝色的边框了。

form  input  {   ,,高度:2快速眼动;   宽度:才能,10眼动;   padding-top才能:1 rem,,/*,新增,*/边界:才能,没有;   边界底部才能:0.1 rem  solid 黑色;   大纲:才能,没有,,/*,新增,*/}

效果图:

 CSS实现谷歌材料设计文本输入框风格的示例

接着我们要在& lt; input>元素后面的伪元素:在上一个底部边框的样式,并且要将底部边框平移到左边。

之所以要将底部边框平移到左边,是将来要通过溢出:隐藏;将其隐藏起来,只有当文本输入框被选中的时候,才将这个底部边框平移回来,作为一种加强视觉冲击的手段。

form 标签:after  {   ,,内容:““,/*,这个很关键,我们需要这个属性底部边框才会显示出来,*/,,身高:3快速眼动;   宽度:才能,10眼动;   位置:才能,绝对;   ,,:0;   ,,左:0;   边界底部才能:0.2 rem  solid  # 1 cb9b6;,/*,底部边框需要较为突出,这里我们加粗跟上颜色,*/变换才能:translateX(-100%);,/*,向左平移,100%,确保移出,form 元素之外,*/过渡:才能,all  0.3 s 缓解;,/*,添加动画来达到平滑移动的效果,*/}

效果图:

 CSS实现谷歌材料设计文本输入框风格的示例

CSS实现谷歌材料设计文本输入框风格的示例