好看的html中的输入框,div+css助你实现漂亮的input

前言

在很多web或者app页面中,我们可以看到各种各样的输入框,从外观上看它们可以直观的看做是input元素,但是实际上并非如此。我们可以通过别的标签去模拟input标签的效果,今天我们就来看看如何使用div标签模拟input标签的效果。

12c98385ca0a531c08ab8adee243a33b.png

div+css

页面效果

这里我们用ofo的主页面作为例子,在点击下面数字的时候,数字的内容会出现在输入框内,这个输入框就是用div模拟实现的。

当然页面内容是静态的,只是一个简单的html,我们来看下实现后的效果。如果感兴趣的可以直接去github上去看看,源码地址:

https://github.com/zhouxiongking/article-pages/tree/master/articles/divToInput

334b1056bb48ab6eac43e4d411f632f4.gif

实现效果

显示框

这里我们定义一个显示内容的div来模拟input,其css样式如下。

5ce3ad3743de42122e314192f54a4250.png

css样式

:before

我们使用:before伪元素来装载输入的内容,在:before元素中使用content属性来动态的元素的属性值。

5b3818461888bd7e1e64c10c334d700d.png

使用:before伪元素

闪烁动作

在input标签中,如果input元素获取焦点后,在input元素内会有光标在闪烁,这个效果我们可以通过:after伪元素来实现。

我们会用到动画animation的知识,首先定义一个动画效果,利用opacity属性来控制显示与不显示,从而造成闪烁效果。

d524592099c63190cf75207bffb320c2.png

定义闪烁动作

然后在:after伪元素中使用。

26793049ababa5daa6aa4acd63a7d70f.png

:after伪元素

Javascript控制输入

在设置好div效果后,需要在点击下面的数字时,将值显示在div中,这就需要用到Javascript去控制。

首先获取页面上所有存在动作的元素。

376c3530caf7e4a9384687d19d7347f6.png

获取元素

然后给数字和删除元素分别添加对应的事件。

67f9ef974169c0b94c1c87ad725a6ef3.png

元素绑定事件

绑定事件后,在点击数字时会将值动态的显示在div中,在删除时也会相应删掉最后一个添加的元素值。

页面设计

对于整个页面的设计,采用了header,div和footer的布局。

header和div的html部分代码如下。

49ea3eb1743e5f0942455063f211d07c.png

header与div

相应的footer部分代码如下,其主要采用的是table布局,相对简单实用。

c5fd2e687f237198c8f05c4ba650a86d.png

footer部分

至此,整个页面的实现就讲解完毕了,中间有很多的css样式部分我并没有放出来,感兴趣的可以自行去github上clone下来看看。

总结

今天这篇文章主要以ofo主页面实现来讲解了一下如何使用div来模拟input的效果,你有收获吗

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例,实现了一个带有动画效果的登录界面: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Login Page</title> <style> * { box-sizing: border-box; margin: 0; padding: 0; } body { height: 100vh; display: flex; justify-content: center; align-items: center; background-color: #f2f2f2; } .login-form { width: 400px; background-color: #fff; border-radius: 10px; padding: 40px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); animation: slide-in 0.5s ease-out; } .login-form h1 { text-align: center; margin-bottom: 30px; color: #333; font-size: 28px; } .form-control { display: block; margin-bottom: 20px; } .form-control label { display: block; margin-bottom: 5px; color: #666; font-size: 14px; font-weight: 600; } .form-control input { width: 100%; border: none; border-bottom: 2px solid #ccc; padding: 10px; font-size: 16px; color: #555; transition: border-bottom-color 0.3s ease-out; } .form-control input:focus { border-bottom-color: #1abc9c; outline: none; } .form-control input[type="submit"] { background-color: #1abc9c; color: #fff; border: none; border-radius: 5px; padding: 10px 20px; font-size: 16px; cursor: pointer; transition: background-color 0.3s ease-out; } .form-control input[type="submit"]:hover { background-color: #148f77; } @keyframes slide-in { from { transform: translateY(-100%); } to { transform: translateY(0); } } </style> </head> <body> <form class="login-form"> <h1>Login</h1> <div class="form-control"> <label for="username">Username</label> <input type="text" id="username" name="username" /> </div> <div class="form-control"> <label for="password">Password</label> <input type="password" id="password" name="password" /> </div> <div class="form-control"> <input type="submit" value="Login" /> </div> </form> </body> </html> ``` 在上面的代码,我们使用了 HTMLCSS 和 JavaScript,实现了一个简单的登录界面。其HTML 代码用于构建页面结构,CSS 代码用于设置样式和动画效果,JavaScript 代码用于实现交互逻辑。具体来说,我们使用了以下技术: - Flexbox 布局:这是一种基于弹性盒子的布局方式,可以方便地实现页面的水平或垂直居、自适应等效果。 - CSS 动画:我们使用了 @keyframes 规则和 animation 属性,实现了一个简单的从上往下滑入的动画效果。 - 表单控件:我们使用了 input 元素和 label 元素,实现了一个简单的登录表单,并使用了 :focus 伪类和 transition 属性,实现输入框聚焦时的动态效果。 - JavaScript 事件处理:我们使用了 input 元素的 onfocus 事件和 form 元素的 onsubmit 事件,实现输入框聚焦时的动态效果和表单提交时的交互逻辑。 总体来说,这个示例虽然简单,但是涵盖了许多常用的 Web 开发技术,可以作为一个初学者入门的练手项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值