- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在使用 flexbox 的 justify-content: space-between;
开发一个网格系统,我注意到在某些屏幕尺寸(大约每隔一个像素)上,在特定的末尾会出现 1 个像素的间隙列。
如果您开始使用下面的示例调整浏览器的大小,您可以看到 1 像素的空间出现和消失。
示例
* {
margin: 0;
padding: 0;
}
.row {
display: flex;
flex-wrap: wrap;
max-width: 550px;
width: 100%;
margin: 0 auto;
border: 2px solid #888;
justify-content: space-between;
}
div[class^="col"] {
border: 2px solid red;
}
.col-12 {
flex-basis: calc(100% - 4px);
}
.col-11 {
flex-basis: calc(11/12*100% - (1.167 - 11/12)*24px);
}
.col-10 {
flex-basis: calc(5/6*100% - (1.167 - 5/6)*24px);
}
.col-9 {
flex-basis: calc(3/4*100% - (1.167 - 3/4)*24px);
}
.col-8 {
flex-basis: calc(2/3*100% - (1.167 - 2/3)*24px);
}
.col-7 {
flex-basis: calc(7/12*100% - (1.167 - 7/12)*24px);
}
.col-6 {
flex-basis: calc(1/2*100% - (1.167 - 1/2)*24px);
}
.col-5 {
flex-basis: calc(5/12*100% - (1.167 - 5/12)*24px);
}
.col-4 {
flex-basis: calc(1/3*100% - (1.167 - 1/3)*24px);
}
.col-3 {
flex-basis: calc(1/4*100% - (1.167 - 1/4)*24px);
}
.col-2 {
flex-basis: calc(1/6*100% - (1.167 - 1/6)*24px);
}
.col-1 {
flex-basis: calc(1/12*100% - (1.167 - 1/12)*24px);
}
<div class="row">
<div class="col-12">col-12</div>
<div class="col-6">col-6</div>
<div class="col-6">col-6</div>
<div class="col-4">col-4</div>
<div class="col-4">col-4</div>
<div class="col-4">col-4</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-6">col-6</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-4">col-4</div>
<div class="col-8">col-8</div>
<div class="col-7">col-7</div>
<div class="col-5">col-5</div>
<div class="col-6">col-6</div>
<div class="col-4">col-4</div>
<div class="col-2">col-2</div>
</div>
这是一个有效的 Fiddle,因此您可以更轻松地调整它的大小。
*注意:我知道我正在用 calc()
做一些疯狂的事情,但即使你只是减去 5px
而不是 (1.167 - 1/12)* 24px)
问题依然存在。
这是 flexbox 的错误吗?
我需要做什么才能消除这些列末尾的空白?
最佳答案
在找到解决方案之前,我稍微解决了这个问题。步骤如下:
首先我将所有内容转换为使用标准格式
calc(a/12 * 100% - (7/6 - a/12) * 24px)
其中 a = "col number"
接下来我开始用数字进行实验,看看没有单位的实际输出(当然)
从这个我们可以看出三件事
x.3333...
x.6666...
结尾注意:1和2是特例,被颠倒了,因为它们的输出实际上是负数。我们可以假设他们的数字在现实世界中为正,并且与其他人一致
之后很容易查明等式中的实际问题:a/12 * 100%
因此舍入问题就是您的问题 - 即当您使用两个或更多以 x.3333...
我们不希望这些舍入误差级联,所以我们有几个选择
x.3333...
结尾的数字添加半个像素)例子:
flex-basis: calc((8/12 - 1/6/100) * 100% - (7/6 - 8/12) * 24px);
flex-basis: calc(8/12 * 100% - (7/6 - 8/12) * 24px);
我用第一个例子给我这个重复代码:
* {
margin: 0;
padding: 0;
}
.row {
display: flex;
flex-wrap: wrap;
max-width: 550px;
width: 100%;
margin: 0 auto;
border: 2px solid #888;
justify-content: space-between;
}
div[class^="col"] {
border: 2px solid red;
}
.col-12 {
flex-basis: calc(12/12 * 100% - (7/6 - 12/12) * 24px);
}
.col-11 {
flex-basis: calc((11/12 - 1/6/100) * 100% - (7/6 - 11/12) * 24px);
}
.col-10 {
flex-basis: calc((10/12 + 1/6/100) * 100% - (7/6 - 10/12) * 24px);
}
.col-9 {
flex-basis: calc(9/12 * 100% - (7/6 - 9/12) * 24px);
}
.col-8 {
flex-basis: calc((8/12 - 1/6/100) * 100% - (7/6 - 8/12) * 24px);
}
.col-7 {
flex-basis: calc((7/12 + 1/6/100) * 100% - (7/6 - 7/12) * 24px);
}
.col-6 {
flex-basis: calc(6/12 * 100% - (7/6 - 6/12) * 24px);
}
.col-5 {
flex-basis: calc((5/12 - 1/6/100) * 100% - (7/6 - 5/12) * 24px);
}
.col-4 {
flex-basis: calc((4/12 + 1/6/100) * 100% - (7/6 - 4/12) * 24px);
}
.col-3 {
flex-basis: calc(3/12 * 100% - (7/6 - 3/12) * 24px);
}
.col-2 {
flex-basis: calc((2/12 - 1/6/100) * 100% - (7/6 - 2/12) * 24px);
}
.col-1 {
flex-basis: calc((1/12 + 1/6/100) * 100% - (7/6 - 1/12) * 24px);
}
<div class="row">
<div class="col-12">col-12</div>
<div class="col-6">col-6</div>
<div class="col-6">col-6</div>
<div class="col-4">col-4</div>
<div class="col-4">col-4</div>
<div class="col-4">col-4</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-6">col-6</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-4">col-4</div>
<div class="col-8">col-8</div>
<div class="col-7">col-7</div>
<div class="col-5">col-5</div>
<div class="col-6">col-6</div>
<div class="col-4">col-4</div>
<div class="col-2">col-2</div>
</div>
这应该可以在支持非舍入 calc
的现代甚至大多数旧浏览器中工作
如果您想查看第二种解决方案,请发表评论,我会发布。
注意:如果可以的话,最好使用像 sass 或更少的语言来执行这些计算,因为它们在舍入后还可以将所有这些辛苦的工作保存在一个地方。
关于css - 使用 calc() 时,Flexbox space-between 在末尾有额外的 1px 间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56670636/
不确定是间隙还是音频样本未对齐,但是当我将音频文件一分为二时,如下所示: ffmpeg -ss 0 -t 00:00:15.00 -i song.mp3 seg1.mp3 和 ffmpeg -ss 0
我正在使用 NSDrawNinePartImage 绘制自定义按钮/文本字段。我在代码中将图像分割成九个部分,并使用 NSDrawNinePartImage 将其绘制到一个矩形中。 不幸的是,我在绘图
Check this image for the progressbar 知道如何消除 ProgressBar 下的那个小间隙吗?我怎样才能做到没有差距?应该通过 MainActivity 中的 ja
刚开始制作网站时,整个左侧都有几个像素的边距,但我不明白为什么。 http://jsbin.com/elufob/1/ 任何建议将不胜感激 CSS html{ min-width: 1
我一直在尝试在我的网站上使用静态图像,但页眉和图像之间存在很大差距,我尝试在 Photoshop 和 HTML 中删除填充并更改图像高度。这是我的问题的 fiddle https://jsfiddle
我前一段时间遇到过这个问题,忘记了解决方案是什么。我的文档顶部有一个小间隙,大概 5/10 像素? 我想你会知道我在说什么,我该如何摆脱它? 谢谢 最佳答案 在您的 CSS 文件中添加: html,
刚开始制作网站时,整个左侧都有几个像素的边距,但我不明白为什么。 http://jsbin.com/elufob/1/ 任何建议将不胜感激 CSS html{ min-width: 1
我正在尝试使用 Accordion MUI 组件在展开模式下不会移动,也不会对某些元素应用顶部和底部边距。 示例如下,但它不起作用,我的组件仍然太“跳跃”(扩展时它会增加宽度,并且添加了一些不可见的边
我有一个自定义 UITableViewCell Card 样式的动态高度,它的空间在应用程序中是恒定的。我正在使用 Storyboard ,并且在 UINavigationBar 下方有 UITool
假设您有一组日期范围 var arr = [ { "from": 'unix 1st of august', "until": 'unix 5th of august' },
我是radial-gradient的新手,我不知道这些多维数据集之间的背线或空格是什么?如何删除它们? * {margin: 0; outline: 0; border: 0;} .round {
我对 VBA 中的 HTML 正文有疑问。我创建了一封电子邮件并使用 HTML 填写信息。 我的问题描述如下: Reduce Gap between HTML and elements 但是我不能
我正在阅读 Lea Verou 的《CSS secret 》一书。 有一个圆 Angular 径向多重渐变的例子: http://dabblet.com/gist/24484257bc6cf7076a
我一直在为一个客户做一个元素,一切都很顺利,直到我注意到我的 h1/h2/h3(任何标题标签)已经向右移动了 2/3 像素。他们可能一直都在这样做,但我只是刚刚注意到。当您在 devtools 中突出
这里是 CSS 新手。奇怪的事情发生了,链接之间有间隙,我不知道为什么。 我正在使用 html html5 样板 css 进行重置。 HTML代码: Link 1 Link
这个问题在这里已经有了答案: margin on h1 element inside a div (3 个答案) 关闭 6 年前。 我有一个问题,我的 h1 标签与我的页面顶部分开 - 像这样:en
我希望我的文本在事件时带有下划线,但当我这样做时它看起来像这样: 我只希望文本有下划线,如果我使用 text-decoration:underline 它会在单词下划线,但我不知道如何在文本和下划线之
我似乎无法将这两张图片放在一起。它们都在 HTML 表格中自己的行中(我正在制作一封 html 电子邮件),但我似乎无法删除它们之间的 5px。 这是我的代码 它也在 jsfi
我正在尝试在我的项目中使用新的 CardView UI 小部件,但在某些运行 android 2.3 的设备上,CardView 角之间存在间隙(见下文)。 这是在我的 xml 文件中:
我想了解并学习当我使用共享边框填充两个形状/路径时遇到的问题的解决方案,即在为所有形状调用填充后,仍然有一个微小的间隙存在于他们之间。 该代码片段展示了绘制所涉及的形状/路径的代码: ctx.begi
我是一名优秀的程序员,十分优秀!