添加边框时 CSS Div 跳转

Rob*_*bin 3 css layout

当我将鼠标悬停在第一个(左上角)上时,我不明白为什么这些框会移动。我已将 box-sizing 设置为 border-box,因此悬停时添加的边框不应影响事物,它仅发生在第一个框上。请帮忙!

JS小提琴在这里。

* {
  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;
}
Run Code Online (Sandbox Code Playgroud)

Azi*_*ziz 6

这是因为边框宽度增加了元素的宽度,因此当悬停时向元素添加额外的宽度时,它将改变正常的布局流程。

您可以通过3px在静态状态下添加透明边框轻松修复它:

.card { border: 3px solid transparent; }
Run Code Online (Sandbox Code Playgroud)

jsFiddle 叉:https ://jsfiddle.net/azizn/pL2j0zu5/