image
效果图
原理
表单元素中, 有一个 pattern 属性, 可以自定义正则表达式 (如手机号, 邮箱, 身份证..);valid 伪类, 可以匹配通过 pattern 验证的元素; invalid 伪类则相反, 可以匹配未通过 pattern 验证的元素; 于是就可以随便搞啦, 上面的效果图只是做一些简单的效果, 更多效果以及限制大家就发挥自己的想象力咯;
布局很简单, input 跟 button 是兄弟节点的关系, required 属性是必填的意思, 也就是输入的内容必须要验证通过;
- <section class="container">
- <input type="text" name="tel" placeholder="请输入手机号码" pattern="^1[3456789]\d{9}$" required><br>
- <input type="text" name="tel" placeholder="请输入验证码" pattern="\d{4}" required><br>
- <button type="submit"></button>
- </section>
- CSS
这里用的是 SCSS 预处理器
- input {
- // 验证通过时按钮的样式
- &:valid {
- &~button {
- pointer-events: all;
- cursor: pointer;
- &::after {
- content: "提交"
- }
- }
- }
- // 验证不通过时按钮的样式
- &:invalid {
- &~button {
- pointer-events: none; // 去除点击事件, 让按钮无法点击
- &::after {
- content: "未通过验证"
- }
- }
- }
- }
往期系列
你可能不知道的 CSS 骚操作 - tab 切换
你可能不知道的 CSS 骚操作 - switch 切换
这个系列会放许多你不知道的 CSS 骚操作, 敬请期待!
image
欢迎所有前端爱好者关注我的个人微信公众号, 我会不定期分享最新, 实用性高的前端文章以及技巧!
来源: http://www.jianshu.com/p/1a1eecb44ecd