css3 :target 和onclick 的区别

首先,在移动版本上的测试结果是,直接使用Target属性来部分代替onclick
使用Target属性:touchEnd --- animationend 46ms
click ---- animationend 37ms
touchEnd --- click 10ms 也有时候6-8ms

使用touchEnd 追加Class:

touchEnd --- animationend 35ms
click ---- animationend 24ms
touchEnd --- click 10ms 也有时候6-8ms

所以总结来看,touchEnd追加Class,比使用Target伪类要快,响应事件要短。

所以说,使用Target来代替click的情况,只适合于在没有JS的情况下使用。也可以做一定的兼容来处理。
个人觉得,还是不使用Target来部分取代 click 比较好。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以将HTML和CSS分开,使用外部样式表的方式来引入CSS,代码如下: HTML代码: ``` <!DOCTYPE html> <html> <head> <title>Login Form</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <button id="open-login">Login</button> <div class="overlay" id="overlay"> <div class="login-form"> <span class="close-btn" id="close-btn">×</span> <form> <label for="username">Username:</label> <input type="text" id="username" name="username"><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="Submit"> </form> </div> </div> <script src="script.js"></script> </body> </html> ``` CSS代码: ``` /* 遮罩层样式 */ .overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: none; align-items: center; justify-content: center; } /* 登录表单样式 */ .login-form { background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); display: none; } /* 关闭按钮样式 */ .close-btn { position: absolute; top: 10px; right: 10px; cursor: pointer; } ``` JavaScript代码: ``` // 获取元素 var openLogin = document.getElementById("open-login"); var overlay = document.getElementById("overlay"); var closeBtn = document.getElementById("close-btn"); // 点击登录按钮显示登录表单和遮罩层 openLogin.onclick = function() { overlay.style.display = "flex"; overlay.style.justifyContent = "center"; overlay.style.alignItems = "center"; overlay.style.zIndex = "999"; document.body.style.overflow = "hidden"; document.querySelector("form").reset(); } // 点击关闭按钮隐藏登录表单和遮罩层 closeBtn.onclick = function() { overlay.style.display = "none"; document.body.style.overflow = "auto"; } // 点击遮罩层隐藏登录表单和遮罩层 window.onclick = function(event) { if (event.target == overlay) { overlay.style.display = "none"; document.body.style.overflow = "auto"; } } ``` 注意,JavaScript代码需要单独放在一个独立的文件中,并且需要在HTML代码中引入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值