html - 未对齐的“轮廓”与奇数的 div
问题描述
我的问题是我想要带边框的并排元素,但我注意到如果不做一些边距破解,很难使用该border
属性,而且它看起来仍然不正确。但是,当我使用outline
orbox-shadow
时,最后会遇到此对齐问题。
.inner {
outline: 1px solid black;
width: 50%;
height: 50px;
float: left;
margin: 0;
display: inline-block;
box-sizing: border-box;
position: relative;
background: #fff;
}
<div class="inner">
</div>
<div class="inner">
</div>
<div class="inner">
</div>
<div class="inner">
</div>
<div class="inner">
</div>
当有偶数个元素时它看起来不错,但是当我有最后一个元素时它看起来很奇怪。有些人可能会建议我让它适合最后,这没关系,但有时可以配置大小,所以这可能是常见的情况。
在最后一个元素正确排列边框(或轮廓)的情况下,实现此目的的正确方法是什么?
解决方案
因为您使用轮廓来创建边框,所以中心的轮廓实际上是相互重叠的。当你到达只有一个 div 的底部时,轮廓没有重叠,因此看起来没有对齐。您可以通过将其构建为表来解决此问题:
.table {
width: 100%;
display: table;
border-collapse: collapse;
}
.column {
display: table-row;
}
.inner {
display: table-cell;
border: 1px solid black;
width: 50%;
height: 50px;
background: #fff;
}
<div class="table">
<div class="column">
<div class="inner"></div>
<div class="inner"></div>
</div>
<div class="column">
<div class="inner"></div>
<div class="inner"></div>
</div>
<div class="column">
<div class="inner"></div>
</div>
</div>
推荐阅读
- python - RecursionError:使用pickle.load()时调用Python对象时超出了最大递归深度
- ios - 如何制作 Popup ViewController 的透明背景?
- docker - Kubernetes NFS 持久卷权限被拒绝
- javascript - 以 HTML 形式发送 POST 和 GET
- xml - 为什么我的方案无效?文档类型声明包含或指向的标记声明必须格式正确
- apache - Apache 2.4 HTTPS 重定向在首次使用后有效
- javascript - 反应原生句柄翻译和语言
- python - Python遍历csv并在多边形操作中执行点
- java - 向 messenger api 发送意图中的图像会出错
- android - 如何仅为特定单词而不是整个应用程序设置字体