html - 通过内部框架计算外部元素的悬停状态

标签 html css

当有带边框的外层元素和内层元素时,是否可以只在光标在边框内时才对外层元素的边框做悬停效果?

例如,当我创建这样的标记时:

<div class="b mn">
    <p><a href="#"><img src=""></a></p>
</div>

/*...*/
div.b.mn p{
 margin: 4px 4px 5px 4px;
 border: 2px dashed #93F;
 background-clip: content-box;
}
div.b.mn p:hover, div.b.mn p:focus{
 border-color: #F93;
}

悬停效果(边框颜色变化)粘在外部元素上,所以即使光标正好在边框上,边框也会突出显示,但我需要以某种方式突出显示外部边框,只有当内部元素被光标悬停时。

Hovering problem

-> 完整 jsFiddle 链接:demo markup

我知道如何通过 jQuery 或纯 JavaScript 实现这种效果,但我想知道是否有纯 html/css 解决方案。这可能是对同一概念的不同方法,我不介意,只要它适合纯标记范例。

附言我将不胜感激任何其他建议或指出我在我的 jsFiddlet 中的 html/css 代码中的错误。因为我觉得我为这样一个简单的布局把事情复杂化了。

最佳答案

hovera 而不是 p 并使其 display:inline-block; 覆盖边框作为 block 级元素。

div.b.mn p{
 margin: 4px 4px 5px 4px; 
}
div.b.mn p a{
 border: 2px dashed #93F;
 background-clip: content-box;
 display:inline-block;
 border-radius: 5px;
}
div.b.mn p a:hover, div.b.mn p a:focus{
 border-color: #F93;
}

fiddle demo

关于html - 通过内部框架计算外部元素的悬停状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42084283/

相关文章:

html - 调整页面大小时使 DIV 居中但带有滚动条

html - IE8 忽略绝对定位和边距 :auto

css - 自动缩放 SVG 以适应子内容的宽度(例如文本)[无 JS]

css - 这个字体是 : shorthand property syntax valid? 吗(我对规范的阅读说是的,但我安装的一半浏览器不同意。)

javascript - 带有关键帧和 css 变量的 stroke-dashoffset 动画

jquery - 引导 slider 功能

html - 在同一水平行中制作等宽的 DIV 标签?

html - 输入中的垂直对齐按钮

javascript - 从头开始重新创建 slick js 响应中心模式

css - 在 Twitter Bootstrap 3 模式上缩小弹出窗口