```
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body {
font-size: 20px;
font-family: system-ui, Helvetica, Arial, sans-serif;
background: #fff;
}
form {
width: 300px;
margin: 20px auto;
}
fieldset {
position: relative;
border: none;
}
label {
position: absolute;
top: 18px;
color: rgba(0, 0, 0, 0.3);
transform-origin: left;
transition: all 0.3s ease;
}
input:focus~label {
color: red;
}
input:focus~label,
input:valid~label {
top: 0;
transform: scale(0.6, 0.6);
}
input {
font-size: 20px;
width: 100%;
border: none;
margin-top: 10px;
}
input:focus {
outline: none;
}
.after {
width: 100%;
height: 2px;
background: linear-gradient(to right, red 50%, transparent 50%);
background-color: rgba(0, 0, 0, 0.3);
background-size: 200% 100%;
background-position: 100% 0;
transition: all 0.6s ease;
}
input:focus~.after {
background-position: 0 0;
}
button {
position: relative;
width: 100%;
font-size: 20px;
font-family: system-ui, Helvetica, Arial, sans-serif;
line-height: 1.5;
margin-top: 20px;
padding: 2px 10px;
color: rgba(0, 0, 0, 0.4);
background: white;
border: none;
background: linear-gradient(to right, red 50%, transparent 50%);
background-color: rgba(0, 0, 0, 0.3);
background-size: 200% 100%;
background-position: 100% 0;
transition: all 0.6s ease;
}
button:before {
position: absolute;
content: "Submit";
top: 2px;
bottom: 2px;
left: 2px;
right: 2px;
display: block;
background-color: white;
}
button:active,
button:focus,
button:hover {
outline: none;
background-position: 0 0;
color: red;
}
</style>
</head>
<body>
<fieldset>
<input id="first" type="text" name="first" required>
<label for="first">First Name</label>
<div class="after"></div>
</fieldset>
<fieldset>
<input id="last" type="text" name="last" required>
<label for="last">Last Name</label>
<div class="after"></div>
</fieldset>
<fieldset>
<button>Submit</button>
</fieldset>
</body>
</html>
```
- 笔记内容来源
- 你不知道的JavaScript上
- vue
- 环境搭建
- node和npm安装配置
- 安装vue-cli并初始化vue项目
- 安装配置elementUI
- vuex安装配置
- axios安装配置
- main.js
- vue基础入门
- vue-router介绍
- vuex
- vue 原理学习源码学习
- js正则处理v-bind和语法
- 双向绑定
- 虚拟dom
- mvvm和render函数
- vue工作项目笔记
- elementUI 表格分页多选记忆功能
- elementUI表格展开一行
- keepAlive
- vue整合ckeditor5
- this.$router.push 内打开新窗口
- java修改上传图片的权限
- 兼容ie11
- 生成二维码
- base64图片下载(兼容IE10)
- vue新手引导程序intro.js
- vue插件 devtools
- vue刷新当前页面
- vue 锚点导航
- axios
- axios与springmvc
- vue-cli 3搭建vue
- git
- git常用命令
- 正则表达式
- 实例demo
- 1
- 新手引导页
- 纯css3从左显示下划线动画导航菜单
- 纯css3从中间显示下划线动画导航菜单
- css显示密码
- 倒计时时钟
- 星星评分
- 按钮悬停效果
- 步骤条
- css动画按钮
- input标题获得焦点上移
- css图片放大
- css镜像导航栏
- js
- 通信
- for in 和 for of
- 前端安全问题
- Promise
- 掘金冴羽学习笔记
- 模拟call
- 模拟bind
- 闭包
- 1 作用域
- 2 执行上下文栈
- 3 变量对象
- 4 作用域链
- 5 this
- 面向对象
- 基础知识点
- 渲染机制
- 其他
- 判断是否为数组
- http
- css
- 基础知识
- css阴影