
本文旨在解决在移动端浏览器中,HTML
在移动端开发中,我们经常会遇到一些看似难以理解的渲染问题。其中一个典型例子是,当使用 HTML5 的 元素创建可折叠内容时,在移动设备上点击
展开
的背景色会短暂闪烁,这会影响用户体验。这种现象在 iOS 和 Android 设备上都可能出现。
问题分析
这种背景色闪烁并非由开发者定义的 CSS 样式直接引起,而是浏览器在处理触摸事件时的一种默认行为。当用户触摸
立即学习“前端免费学习笔记(深入)”;
解决方案:重置 cursor 属性
一个出人意料但有效的解决方案是重置
以下是具体的 CSS 代码实现:
/* 用于移动端 */
summary {
cursor: unset;
}
/* 用于桌面端,保留手型光标 */
@media screen and (min-width: 817px) {
summary {
cursor: pointer;
}
}代码解释:
完整示例代码:
<!DOCTYPE html>
<html>
<head>
<title>details/summary 背景色闪烁问题解决</title>
<style>
details {
width: 50%;
margin: 0 auto;
background: #FDF4E3;
margin-bottom: .5rem;
border-radius: 5px;
color: black;
outline: none;
}
summary {
padding: 1rem;
display: block;
padding-left: 2.2rem;
position: relative;
cursor: pointer; /* 默认手型光标 */
}
details[open] summary {
background: #F9D478;
}
details:focus,
details:hover,
details:active {
background: #FDF4E3;
}
summary:focus,
summary:hover,
summary:active {
background: none;
}
summary {
cursor: unset; /* 移除移动端点击时的背景色闪烁 */
}
/* 桌面端保留手型光标 */
@media screen and (min-width: 817px) {
summary {
cursor: pointer;
}
}
details p {
padding: 1rem;
}
</style>
</head>
<body>
<details>
<summary>Summary</summary>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque porro odit nulla quis voluptas quod similique sunt, nostrum, ea maxime repellendus quisquam harum tempore illum sed, dolore qui aperiam impedit!
</p>
</details>
</body>
</html>注意事项:
总结
通过重置
以上就是解决HTML details/summary在移动端点击时背景色闪烁问题的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号