如何为链接创建class或id 解决HTML翻转卡片链接冲突及卡顿问题
问题排查与修复方案
根因说明
- 链接无法独立设置:
- 单页面非法嵌套多套
<html>、<head>、<body>标签,浏览器解析时合并冲突节点,导致a标签属性被覆盖 - 错误在CSS中为a标签定义
href、target属性,CSS仅负责样式渲染,无法配置HTML原生属性 - 两张卡片的跳转链接均未闭合
</a>标签,浏览器自动补全标签时出现逻辑错乱
- 单页面非法嵌套多套
- 第二张卡片翻转卡顿:
- 嵌套的多套文档结构导致浏览器渲染树计算异常,触发大量不必要的重绘回流
- 第二张卡片的内层容器额外设置了背景色,3D旋转时的重绘成本大幅提升
- 重复定义全局样式、重复编写相同的卡片样式,增加了浏览器样式计算的开销
修复后完整代码
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: Arial; text-align: center; } /* 列布局样式 */ .column { float: left; width: 280px; padding: 0; height: 220px; } .row:after { content: ""; display: table; clear: both; } @media screen and (max-width: 600px) { .column { width: 100%; } } /* 通用翻转卡片样式 所有卡片复用 */ .flip-card { background-color: transparent; width: 280px; height: 220px; perspective: 1000px; } .flip-card-inner { position: relative; width: 280px; height: 220px; text-align: center; transition: transform 0.9s; transform-style: preserve-3d; box-shadow: none; } .flip-card:hover .flip-card-inner { transform: rotateY(180deg); } .flip-card-front, .flip-card-back { position: absolute; width: 280px; height: 220px; -webkit-backface-visibility: hidden; backface-visibility: hidden; } .flip-card-front { background-color: #bbb; color: black; } .flip-card-back { background-color: #354C2F; color: white; transform: rotateY(180deg); } .flip-card-back a { display: block; width: 100%; height: 100%; } .flip-card img { width: 280px; height: 220px; border: 0; } </style> </head> <body> <div class="row"> <!-- 第一张翻转卡片 --> <div class="column" style="background-color:#aaa;"> <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> <img src="https://www.yorku.ca/c4/wp-content/uploads/sites/69/2021/11/2Sustainability-e1636580791650.jpg" alt="Avatar"> </div> <div class="flip-card-back"> <a href="https://yorku.ca/research" target="_blank"> <img alt="YorkU C4" src="https://www.yorku.ca/c4/wp-content/uploads/sites/69/2021/11/purpose-driven.png"> </a> </div> </div> </div> </div> <!-- 第二张翻转卡片 --> <div class="column" style="background-color:#bbb;"> <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> <img src="https://www.yorku.ca/c4/wp-content/uploads/sites/69/2021/11/2Sustainability-e1636580791650.jpg" alt="Avatar"> </div> <div class="flip-card-back"> <a href="https://yorku.ca/c4" target="_blank"> <img alt="YorkU C4" src="https://www.yorku.ca/c4/wp-content/uploads/sites/69/2021/11/the-looped-in-project.png"> </a> </div> </div> </div> </div> </div> </body> </html>
内容的提问来源于stack exchange,提问作者l117
相关产品推荐
相关产品推荐

