我不明白为什么当我将鼠标悬停在第一个框(左上角)上时框会移动。我已将 box-sizing 设置为 border-box,因此悬停时添加的边框不会产生影响,而且它只发生在第一个框上。请帮忙!
JS fiddle here.
* {
box-sizing: border-box !important;
}
body{
font-family: Arial, Helvetica, sans-serif;
}
#gameArea {
width: 700px;
margin: 0 auto;
}
h1{
text-align: center;
}
.card {
float: left;
margin: 10px;
padding: 20px;
background: lightblue;
text-align: center;
border-radius: 5px;
box-shadow: 10px 10px 10px #ccc;
}
.hidden{
display: none;
}
.card:hover {
cursor: pointer;
border: 3px solid blue;
}
.card p {
font-size: 48px;
color: blue;
}
img {
width: 250px;
height: 188px;
vertical-align: middle;
}
.helper {
display: inline-block;
height: 100%;
vertical-align: middle;
margin:0;
}
最佳答案
这是因为边框宽度增加了元素的宽度,因此当悬停时向元素添加额外的宽度时,它会改变正常的布局流程。
您可以通过在静态下添加一个 3px
透明边框来轻松修复它:
.card { border: 3px solid transparent; }
jsFiddle 分支:https://jsfiddle.net/azizn/pL2j0zu5/
关于添加边框时 CSS Div 跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043432/