html - 如何修复从鼠标悬停宽度变化的周围 div 的 div 移位?
问题描述
感谢社区的一些反馈,我正在重新创建我的网站。在我的一个页面上:我有一个部分,在那个部分中我有一个 div,在那个 div 中我还有 6 到 7 个 div。当您将鼠标悬停在它们上时,那些 6 到 7 会改变宽度。它们向左浮动,列和行因屏幕大小而异。我遇到的问题是,当您将鼠标悬停在第一列中的第一个上时,它下面的所有内容都会移动,而不是像第一行中的最后一个那样滑动。给我带来麻烦的网站/页面:https ://www.blizzardcraft.net/tutorials
按照下面的代码,会发生以下情况:
当您将鼠标悬停在 box1 -> box 4 上并右移后
当您将鼠标悬停在 box2 -> box 4 上并右移后
当您将鼠标悬停在 box3 上时 -> 都只是稍微向下移动(期望的结果)
我无法找到所需结果仅发生在一个上的原因。遗憾的是,我不知道为什么会出现预期的结果,因为与其他代码没有不同(我知道)
我尝试了不同的填充、浮动排列和处理溢出。(我在高中上过关于 Web 开发的课程,但是复杂的 html、css 目前仍然有点超出我的能力,我不知道具体是做什么的)
我希望有人在这里作为一个想法,我之前在这里找到了很多解决方案,所以我决定在这里发布我的问题。这是我在这里的第一篇文章,我希望我做得对。
CSS:
body {
margin: 0 auto;
}
#select {
color: #ffffff;
text-align: center;
}
.container {
width: 80%;
margin: auto;
overflow: hidden;
color: #ffffff;
}
#boxes {
margin: 20px;
}
#boxes .box {
float: left;
display: block;
border-style: solid;
border-color: #7f7f7f;
border-width: 5px;
margin: 5px;
text-align: center;
width: 27%;
padding: 10px;
transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
}
#boxes .box:hover {
width: 30%;
}
#boxes .box img {
/*display: inline-block;*/
width: 100%;
}
#boxes .box h3 {
margin-top: 0;
}
#boxes .box a, a:active, a:visited, a:hover, a:link {
color: inherit;
}
HTML:
<section id="boxes">
<div class="container">
<a>
<div class="box">
<img src="Box1.png" alt="Box1">
<h3>Lobby</h3>
</div>
</a>
<a>
<div class="box">
<img src="Box2.png" alt="Box2">
<h3>Missile Wars</h3>
</div>
</a>
<a>
<div class="box">
<img src="Box3.png" alt="Box3">
<h3>Creative</h3>
</div>
</a>
<a>
<div class="box">
<img src="" alt="Box4">
<h3>Sky Block</h3>
</div>
</a>
<a>
<div class="box">
<img src="" alt="Box5">
<h3>BedrockSMP</h3>
</div>
</a>
<a>
<div class="box">
<img src="" alt="Box6">
<h3>TNT Wars</h3>
</div>
</a>
</div>
</section>
解决方案
您可以尝试使用Flexbox。以下是对子元素的 flex-basis 属性使用转换的代码:https ://codepen.io/kostasx/pen/BaBvaxr?editors=1100
<section id="boxes">
<div class="container">
<a>
<div class="box">
<img src="https://www.blizzardcraft.net/tutorials/media/images/Lobby.png" alt="Box1">
<h3>Lobby</h3>
</div>
</a>
<a>
<div class="box">
<img src="https://www.blizzardcraft.net/tutorials/media/images/Lobby.png" alt="Box2">
<h3>Missile Wars</h3>
</div>
</a>
<a>
<div class="box">
<img src="https://www.blizzardcraft.net/tutorials/media/images/Lobby.png" alt="Box3">
<h3>Creative</h3>
</div>
</a>
<a>
<div class="box">
<img src="https://www.blizzardcraft.net/tutorials/media/images/Lobby.png" alt="Box4">
<h3>Sky Block</h3>
</div>
</a>
<a>
<div class="box">
<img src="https://www.blizzardcraft.net/tutorials/media/images/Lobby.png" alt="Box5">
<h3>BedrockSMP</h3>
</div>
</a>
<a>
<div class="box">
<img src="https://www.blizzardcraft.net/tutorials/media/images/Lobby.png" alt="Box6">
<h3>TNT Wars</h3>
</div>
</a>
</div>
</section>
CSS:
body {
margin: 0 auto;
background: black;
}
#select {
color: #ffffff;
text-align: center;
}
.container {
width: 80%;
margin: auto;
overflow: hidden;
color: #ffffff;
/* FLEXBOX */
display: flex;
flex-wrap: wrap;
justify-content: center;
}
#boxes a {
flex-basis: 30%;
transition: flex-basis 400ms ease;
box-sizing: border-box;
}
#boxes a:hover {
flex-basis: 33%;
}
#boxes {
margin: 20px;
}
#boxes .box {
box-sizing: border-box;
display: block;
border-style: solid;
border-color: #7f7f7f;
border-width: 5px;
margin: 5px;
text-align: center;
padding: 10px;
transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
}
#boxes .box img {
/*display: inline-block;*/
width: 100%;
}
#boxes .box h3 {
margin-top: 0;
}
#boxes .box a, a:active, a:visited, a:hover, a:link {
color: inherit;
}
推荐阅读
- java - 制作一个包含来自另一个字符串数组的特定字母的数组(Java)
- google-analytics - Google Analytics 在尝试保存报告时出现“内部错误,请重试”
- javascript - 在 nextjs 中有多个动态导入
- java - 使用 Jackson 库将字符串转换为 Java 对象时,线程主 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException 中的异常
- python - 将变量合并到命令语法中的最佳方法
- elasticsearch - 从浏览器禁用/隐藏弹性搜索默认端点访问
- python - Elastic Beanstalk 平台更新是指我在 ebextensions 中没有的包?
- html - 和之间的空间
/ - r - R - 如何使用循环和子集计算 MICE 的平均值?
- python - 使用 Python 将 WEBM 文件转换为 WAV 文件