css - 为什么 Firefox 和 Chrome 的 inline-block 的结果不同?
问题描述
我将元素并排使用inline-block
. 我想让元素之间的间隙为 2px,所以我为span
元素设置了负边距。
* {
margin: 0;
}
.content {
width: 100%;
min-width: 320px;
}
span {
display: inline-block;
}
span {
display: inline-block;
width: 78px;
padding: 3px 10px;
cursor: pointer;
background: #ddd;
color: #777;
margin-right: -2px;
width: calc(25% - 22px);
}
span:hover {
background: #eee;
}
<div class="content">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
问题 1。它适用于 Firefox 64.0。但是,当使用 Google Chrome 71.0 检查时,最后一个span
元素出现了。Firefox 和 Chrome 浏览器的默认字体大小为 16px。
此外,它在CodePen中运行良好,但在 stackoverflow 代码片段上无法正常运行。
为什么会出现这些问题?我已阅读以下问题,但似乎与此问题的原因无关。
Firefox 中的屏幕截图(CodePen 版本): Firefox 中的屏幕截图(stackoverflow 的运行片段版本): Google Chrome 中的屏幕截图:
问题 2。我设置width: 25%
为使span
元素全宽。但是,除非从 25% 中减去 22 px(在 Firefox 中),否则水平宽度不会变满。
如何计算 22px 的值?我不明白为什么(padding-left + padding-right)*4 - negative-margin = 22px
,即使在每个元素中都设置了 padding-left
和(总共 80 像素)。padding-right
span
我已阅读以下问题,但似乎与此问题的原因无关。
解决方案
推荐阅读
- vuejs2 - 添加没有 ES6 或 webpack 的库
- c# - 使用 WMI 远程查询服务
- angular - HttpClient 不发出 http 网络请求
- guidewire - 如何在策略中心创建自定义事件
- django - 如何使用 QuerySet 输出 CSV 文件
- spring-boot - 我正在尝试将 IBMMQ 与我的 Spring Boot 应用程序连接,但连接应该通过 spid(pki)。有人知道该怎么做吗?
- python - 自动编码器重建图像(输出)不清楚,因为我想要
- xslt - XSLT。将数字转换为印度格式
- c++ - 当类的成员存储为没有此类方法的父类的对象时,如何访问该类的成员?
- sonarqube - 如何在 sonarqube 中获取 scm 帐户搜索的代码行