Html 在IE9中使用框阴影悬停按钮时,底部边框会消失
在IE9中,悬停/取消悬停按钮时,底部边框会不断向下移动:Html 在IE9中使用框阴影悬停按钮时,底部边框会消失,html,css,internet-explorer-9,Html,Css,Internet Explorer 9,在IE9中,悬停/取消悬停按钮时,底部边框会不断向下移动: <!DOCTYPE html> <html> <head> <style> .btn:hover { box-shadow: 0 0 0 2px #b1b3b4; } </style> <head> <body> <div style="overflow: auto; border:
<!DOCTYPE html>
<html>
<head>
<style>
.btn:hover {
box-shadow: 0 0 0 2px #b1b3b4;
}
</style>
<head>
<body>
<div style="overflow: auto; border: 1px solid black;">
<div style="width: 110%; height: 20px;">
Wide content causing horizontal scrolling....
</div>
<button class="btn">Hover Me</button>
</div>
</body>
</html>
.btn:悬停{
盒影:02px#b1b3b4;
}
宽内容导致水平滚动。。。。
盘旋我
小提琴:
这是一个已知的IE9问题吗?如何解决这个问题?将
显示:block
放在位置。btn:hover
我猜这会解决它的
.btn:hover {
box-shadow: 0 0 0 2px #b1b3b4;
display:block;
}
若要更正此问题,请将:
overlow:auto
更改为overflow:visible
,这样就可以了。选项1:设置可滚动div的高度似乎可以解决问题:
<div style="overflow: auto; border: 1px solid black; height:65px;">
<div style="width: 110%; height: 20px;">Wide content causing horizontal scrolling...</div>
<button class="btn">Hover Me</button>
</div>
<div style="overflow-x: scroll; border: 1px solid black;">
<div style="width: 110%; height: 20px;">Wide content causing horizontal scrolling....</div>
<button class="btn">Hover Me</button>
</div>
<!--[if IE]>
<div id="noIE"><a href="http://www.mozilla.org/en-US/">Please download a Real Browser!</a>
<br><sub>Internet Explorer is hateful non-compliant browser that kicks puppies... </sub>
</div>
<![endif]-->
备选案文3:
可能是最好的选择,因为它允许框阴影在IE9中可见。用class
.btn
将按钮包装在div中,而不是将类直接放在按钮上
.btn{
显示:内联;
}
.btn:悬停{
显示:内联块;
边界半径:2px;
盒影:02px#b1b3b4;
}
宽内容导致水平滚动。。。
盘旋我
盘旋我
盘旋我
选项4:只是为了笑
<div style="overflow: auto; border: 1px solid black; height:65px;">
<div style="width: 110%; height: 20px;">Wide content causing horizontal scrolling...</div>
<button class="btn">Hover Me</button>
</div>
<div style="overflow-x: scroll; border: 1px solid black;">
<div style="width: 110%; height: 20px;">Wide content causing horizontal scrolling....</div>
<button class="btn">Hover Me</button>
</div>
<!--[if IE]>
<div id="noIE"><a href="http://www.mozilla.org/en-US/">Please download a Real Browser!</a>
<br><sub>Internet Explorer is hateful non-compliant browser that kicks puppies... </sub>
</div>
<![endif]-->
请尝试以下css:
.btn:hover {
box-shadow: 1px 2px 0px 1px #b1b3b4;
}
<div style="overflow: auto; border: 1px solid black;">
<div style="width: 110%; height: 80px;">Wide content causing horizontal scrolling....</div>
<button class="btn">Hover Me</button>
<div> </div>
</div>
.btn:悬停{
盒影:1px 2px 0px 1px#b1b3b4;
}
宽内容导致水平滚动。。。。
盘旋我
在div中添加100%的高度可以解决您的问题
<div style="overflow: auto; border: 1px solid black;height: 100%">
<div style="width: 110%; height: 20px;">Wide content causing horizontal scrolling....</div>
<button class="btn">Hover Me</button>
</div>
宽内容导致水平滚动。。。。
盘旋我
这是正在工作的JSFiddle:先生,您在那里发现了一个非常奇怪的bug。这肯定是一个bug,如果你在ie10上使用ie9模式,这不会发生 我不明白为什么,但如果手动调整窗口大小,它似乎会回到原始状态。也许你可以用javascript来伪造这个 我发现的另一件事是,如果在带有滚动条的元素上设置一个
:hover{zoom:1}
,则在悬停该元素时,它会自动“重置”。也许有人可以用这个来解释为什么它会这样
在这里摆弄它:我在Ie9中检查了这个,没有发现边界底部正在扩展。 请试一试。让我知道
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>hover demo</title>
<style>
.btn{
box-shadow: 0 0 0 2px #b1b3b4;
}
.noBtn{
box-shadow: none;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div style="overflow: auto; border: 1px solid black;" >
<div style="width: 110%; height: 20px;">
Wide content causing horizontal scrolling....
</div>
<button id="hover">Hover Me</button>
</div>
<script>
$(document).ready(function(){
try{
$('#hover').hover(function () {
$("#hover").addClass('btn');
$("#hover").removeClass('noBtn');
});
$('#hover').mouseleave(function () {
$("#hover").removeClass('btn');
$("#hover").addClass('noBtn');
});
}catch(e){
alert(e);
}
});
</script>
</body>
</html>
悬停演示
.btn{
盒影:02px#b1b3b4;
}
noBtn先生{
盒影:无;
}
宽内容导致水平滚动。。。。
盘旋我
$(文档).ready(函数(){
试一试{
$('#hover')。hover(函数(){
$(“#悬停”).addClass('btn');
$(“#hover”).removeClass('noBtn');
});
$('#hover').mouseleave(函数(){
$(“#hover”).removeClass('btn');
$(“#hover”).addClass('noBtn');
});
}捕获(e){
警报(e);
}
});
请在尝试后告诉我。尝试以下内容:
选项1(稍微更改html):
您应该尝试在“”标记中添加此内容:'@Xarcell它没有帮助。如果没有这个元,页面也会以IE9模式呈现。为什么不在.btn类上加一个下边距呢?你想要jquery或javascript代码还是css?@Anobik jquery/javascript解决方案也可以。谢谢你的想法,确实如此。但是我仍然需要按钮是一个内联元素(事实上,目前它是内联块),这样我就可以在一行中放置几个按钮而不需要额外的标记。嗯,我仍然需要在容器中有滚动条。我真的无法从所有包含按钮的元素中删除“溢出:自动”,这会造成很大的混乱。谢谢你的想法。选项1不起作用,因为在我的案例中,容器具有动态内容,需要根据其内容进行扩展,选项2-有趣,但在大多数情况下没有溢出,不需要滚动条,选项3相当于Ryan的答案,显示:block,选项4-是最好的!)@Andrey您是否已删除选项3中.btn的边距?我想,这就是你想要的。@EugeneJoseph谢谢,这页边距是我忘了删除的以前方法的遗物。。。编辑以更正。有人能解释为什么我的答案被否决吗?了解我错在哪里会有帮助。干杯。:)不是我,但可能有人决定否决投票,因为答案看起来是重复的(设置高度值可以解决问题,如apaul答案选项1所述)。由于这不是一个精确的副本(高度在apaul的答案中设置为%vs px),所以请对此进行投票。谢谢。这是有道理的您可以使用类“btn”和$“.btn”来代替“#hover”谢谢,在这里给了我很大的帮助,因为这两个选项对我来说是最实用的解决方案(它们不会破坏我现有的样式)。我稍后会接受一个答案(我认为接受Apple的选择3或Anobic的答案,因为他们看起来有类似的想法作为选项1和选项2在这里相对):(我没有得到赏金:)(: