javascript - 为什么这个焦点事件在按下制表符时会破坏 html 样式?
问题描述
我遇到了一个奇怪的行为。我有包含隐藏溢出的简单块。触发 hoover 事件以显示隐藏的溢出。隐藏部分具有绝对位置。
HTML:
<div class='container'>
<div class="edito">
<img src="https://via.placeholder.com/273x211" />
<div class="inner">
<p>Lorem ipsum dolores</p>
<a href="#cta">See more</a>
</div>
</div>
<div class="edito">
<img src="https://via.placeholder.com/273x211" />
<div class="inner">
<p>Lorem ipsum dolores</p>
<a href="#cta">See more</a>
</div>
</div>
<div class="edito">
<img src="https://via.placeholder.com/273x211" />
<div class="inner">
<p>Lorem ipsum dolores</p>
<a href="#cta">See more</a>
</div>
</div>
</div>
CSS:
.edito {
width: 273px;
height: 211px;
position: relative;
border: 2px solid;
overflow:hidden;
}
.edito .inner {
position: absolute;
left: 0;
width: 100%;
height: 195px;
transition: top 0.8s ease;
top: calc(100% - 50px);
}
.edito:hover .inner {
background-color: purple;
top: calc(100% - 150px);
}
.container {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-around;
}
img {
position:relative;
}
现在,当有人(例如存在可访问性问题)尝试按 Tab 在这些块之间导航时,样式会被破坏。
你可以在这里看到这个:
jsfiddle.net/0ubqwfxc
尝试按 Tab 键导航到第三个块;第一个的风格被打破了。
为什么会发生这种情况以及如何解决?
谢谢
解决方案
它会中断,因为当用户单击选项卡时,它会选择链接并且链接会自动上升。要阻止他们专注于带有选项卡的链接,只需将属性添加tabindex="-1"
到您的<a>
标签中,如下面的<a href="#cta" tabindex="-1">See more</a>
工作示例:https ://codepen.io/Ajjarindahouse/pen/qBbjERM
推荐阅读
- r - 将坐标映射到世界地图并标记它们
- svn - 是什么导致 SVN 错误“修订 xxx 与现有修订 yyy 不匹配...”
- spring-cloud - Spring Cloud Gateway uri解码失败
- python-3.x - 我们如何加快 Pulp 中的 for 循环
- sql - 向现有表添加填充列
- css - 页脚处的 Jumbotron 不粘在页面底部?
- .net - 正则表达式工作正常,直到轮括号开始播放
- here-api - 根据 Isoline API 无法到达的城市
- angular - 从 Angular 7 迁移到 8 后应用程序无法加载
- c++ - 如何在 Qt 中更改图表轴的标题?