- 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"
我正在使用 SASS 开发一个基于 flexbox + calc() 的 grid system with gutters。
您可以像这样通过混合定义网格:
.box {
@include column('1/3', $gutter: 20px);
}
编译这将是:
.box {
width: calc(99.999999% * 1/3 - 13.33333px);
}
我正在努力寻找一种方法摆脱经典的 .row 容器。
在我看来,使用 flexbox + calc() 应该非常简单,但是我有这个奇怪的错误(或者我的计算中有错误?)当应该创建多行时,它有时会破坏布局.
举个例子:
我想要一个列之间有 20 像素间距的网格。
剩下的最好用代码来解释,所以这里有笔:
http://codepen.io/NilsDannemann/pen/OMBVry?editors=1100
为什么最后一个示例(1/8 - 多行)中断了?
好吧,这是怎么回事:问题不在于 flexbox space-between
属性,而是来自 flexbox 的一般行为。
Flexbox 始终将排水沟视为可用空间。因此,在最后一个示例中,它将它们合并 (7 * 20px = 140px) 并得出结论,第一行有足够的空间容纳另一个元素(calc() 后的宽度 = 107.5px)。
这就是整个东西掉落的地方。
space-between
然后按预期工作。
我认为解决这个问题的唯一方法是(正如@Siguza 指出的那样)添加边距以填充排水沟。然后使用 :nth-child 选择器将行的最后边距设置为 0。
在 SASS 中,这看起来像这样:
.box {
@include column('1/8', $gutter: 20px);
margin-right: 20px;
&:nth-child(8n) {
margin-right: 0;
}
}
现在它变成了 SASS 挑战:
如何从传递的分数中获取 :nth-child
(整数)?
经过一些努力,我已经解决了这个问题。 :-)
这是带有当前 SASS 版本网格的笔: http://codepen.io/NilsDannemann/pen/OMaOvX?editors=1100
哇!这很好用!具有完全干净的 DOM 的多列网格!
没有 .row
类或 .eigth
类。随意使用 mixin(更改分数或装订线)。
这里是悲伤的部分:
像这样尝试不均匀网格:
.box1 {
@include column('2/8', $gutter: 20px);;
}
.box2 {
@include column('4/8', $gutter: 20px);;
}
.box3 {
@include column('2/8', $gutter: 20px);;
}
现在 :nth-child 出错了,整个事情都崩溃了。 :-(
如果我们能解决这个问题(无需向混入中引入另一个变量),我们将拥有迄今为止我所见过的最干净的直观网格之一。但最后一个问题很棘手。
我不确定它是否可以完成。
有没有 SASS 天才可以提供帮助?
最佳答案
问题归结为 justify-content: space-between
的定义。
8.2. Axis Alignment: the
justify-content
propertyThe
justify-content
property aligns flex items along the main axis of the current line of the flex container.space-between
Flex items are evenly distributed in the line.
source: https://www.w3.org/TR/css-flexbox-1/#justify-content-property
因此,在您的代码中, flex 元素将按照 space-between
的规则对齐,即使它们换行也是如此。
额外的空间将根据行中存在的 flex 元素的数量进行不同的分配。
在说明问题的示例中,第一行有九个 flex 元素,第二行有七个 flex 元素。第二行有更多的额外空间可供分配。因此,排水沟更宽。
该容器中共有 16 个 flex 元素。再添加两个,一切都完美对齐。
还有一些注意事项:
Flexbox 不是为了用作网格系统而构建的。 W3C 正在开发 CSS Grid Layout Module为此目的。
不要使用 width
来定义 flex 元素的大小,请考虑使用 flex
属性,这将使您能够控制宽度,以及flex-grow
和 flex-shrink
因素。
虽然它似乎没有在 codepen 中引起问题,但使用行注释语法(\\comments
) 在 CSS 中无效,并且有可能破坏您的代码。使用标准的 CSS 注释方法(/* comments */
)会更安全。更多详情:https://stackoverflow.com/a/34799134/3597276
关于css - Flexbox + calc() - Flexbox 中可能存在错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35223043/
我想过滤掉特定列上具有特定颜色的行。我尝试几乎到处搜索但找不到答案。希望大家给点好的建议,谢谢。 最佳答案 据我所知,目前没有内置函数允许根据单元格的格式选择单元格。但在 this OOo forum
我有一个百分比表: A | B | C ------------------- 1| 12% | 22% | 42% ------------------- 2| 52% | 2%
我有一个格式为 HH:MM 的时间值求和列。总和的格式为 [HH]:MM,可防止 HH > 23 时翻转。我希望将此值转换为十进制数表示形式。例如: A B 1 12
LibreOffice Calc 中的什么公式将计算不同 Week_Number 出现的次数?答案应该是2。 最佳答案 这个问题之前已经被问过很多次了。一种方法是在 B6 中输入以下公式然后按 Ctr
我在 Calc 电子表格中有几个数据列,每个列有 400 到 500 个条目。对于这些列中的每一列,我只想简单地找到均值和标准差,但不知道如何进行。 有人可以用简单而非技术性的语言逐步指导我如何做到这
假设我在 LibreOffice calc 中有以下电子表格: | A | B | C | D | ------------------- |1| 1 | 2 | | 2 | |2| 2 |
LibreOffice Calc 中是否有接受 的函数整数 x 和 整数 y 并以该位置吐出单元格的内容? 有一个功能ADDRESS吐出给定 [x;y] 的地址。问题是我不知道如何取消引用它。 最佳答
我希望能够在 LibreOffice Calc 中选择两个单元格,然后按某种魔术键,结果交换两个单元格的内容。 我怎么做? 我为 Excel 找到了这个解决方案,但它在 LibreOffice 中不起
我有两列有数字。当另一个有重复时,另一个只有一次数字。这些列中的数字不匹配。我需要在 B 列中找到在 A 列中匹配的所有数字。 这可能更好地解释了它: 甲乙 1 2 2 2 4 5 6 5 7 6 8
我想为 Calc 编写一个返回 #VALUE 的 Basic 函数!可使用 ISERR() 进行测试。 Function foo() foo = #VALUE! End Function 但是
我正在寻找一种使用 LibreOffice 的 Calc 从网站获取一些数据的方法。 我之前使用带有 IMPORTXML 函数的 Google 表格,但因为它非常不可靠,所以我想改用 Calc。 我的
我有这些单元格的 A 列: A1: Apple A2: Banana A3: Cherry 我想要一个公式,将它们串在一个单元格中,如下所示: "Apple, Banana, Cherry" 最佳答案
我想从 LibreOffice Calc 中多次出现的字符中获取最后一次出现。 例如我有一个字符串 abc1ba2ac2adeaa43add .现在,如果我正在搜索 a它应该返回 18。 最佳答案 使
假设我有这个这个单元格: 然后出于某种原因,我想自动反转列的顺序,变成这样: 任何帮助将不胜感激! 最佳答案 快速步骤: 在 1 上方插入新行 用单调递增的整数索引向右填充行。 然后选择您的数据并降序
我想在 LibreOffice Calc(v5.4.4.2 但可以升级)中实现一些条件格式,以突出显示其值通过公式计算而不是直接输入的单元格。 例如,一个单元格包含 =A3 将突出显示,而 Hello
我有一个 LibreOffice 3 电子表格(在 Ubuntu 11.04 上),其中有一列包含数百个超链接,这些超链接仅显示为“链接”。 我需要将这些转换为纯文本,或者更糟糕的是显示超链接而不是文
我在屏幕上有四个绝对定位的 div,它们需要在所有分辨率下保持它们的位置。 div1 - 高度 150px,顶部 0px div2 - 高度 30%,顶部 150px div3 - 高度 50 像素,
所以我很清楚,一般来说,应该在 JS 和浏览器检测中使用特征检测。 jQuery 1.9 放弃了 $.browser 就是一个很好的例子。 此外,在我阅读的每篇文章中,都说永远不要使用浏览器检测。 但
到目前为止,我一直在使用 em-calc 在我的 Zurb Foundation 元素中定义 CSS 大小。但是,最近我注意到开发人员越来越多地使用 rem-calc。 我知道每个函数的作用,但我不太
如何在另一个 CSS calc 函数中使用 CSS calc 函数?根据这个post这是可能的,但没有这样的例子。 最佳答案 It is possible to use calc() inside a
我是一名优秀的程序员,十分优秀!