javascript - Knockout foreach 中的意外空格

标签 javascript html css knockout.js spaces

在 Knockout 中,我有一个 foreach 来按比例显示颜色列表。

但是现在试图解决间距问题时,发现问题有点像 Knockout。

基本设置数组中每个元素的背景颜色。 因为我非常喜欢缩进的源代码,所以 html 看起来像这样:

<div class="color-scale" data-bind="foreach: colors">
    <div class="color-scale-item horizontal" data-bind="style: {backgroundColor: $data}"></div>
</div>

JSFiddle

有 CSS 样式内联 block ,它不放置任何空间。

比例看起来不错,但添加 90 多种颜色,并不总是需要那个空间。那么如何去除呢?

空间仅仅是由于每个 div 的计算 html 中的返回行和间距。

我试过改变跨度,结果相同。

那么有没有一种方法可以用“很好”的书面源来编写 knockout ,但不会产生不需要的空间,而不用写在一行上?

<div class="color-scale" data-bind="foreach: colors"><div class="color-scale-item horizontal" data-bind="style: {backgroundColor: $data}"></div></div>

JSFiddle single line

最佳答案

这与 Knockout JS 无关。您的问题与 display: inline-block 有关。这应该让你继续:

https://css-tricks.com/fighting-the-space-between-inline-block-elements/

在您的情况下,您可能会使用表格布局:

.color-scale {
    display: table;
}

.color-scale span { /* These spans still left 1px spaces. */
    display:none;
}

.color-scale-item {
    width: 2px;
    height: 20px;
    display:table-cell;
}

fiddle :http://jsfiddle.net/uqvb2fou/3/

更新:

考虑到您的用例,您可能只需:

.color-scale {
    font-size: 0;
}

关于javascript - Knockout foreach 中的意外空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30241675/

相关文章:

html - 获取带有居中文本的全 Angular Bootstrap 导航栏

html - 无法使不可见文本可见(字体大小 : 0)

html - Wordpress 备用移动版本 Logo

html - 导航栏占页面高度的百分比

javascript - list.map 不是函数 help create-react-app

javascript - 如何创建本地存储的循环函数

javascript - 如果div的底部可见jquery

html - 使用 flexbox 时如何使图像大小为 'liquid'

javascript - 如何解决Sencha Touch中clear Filter()函数的性能问题?

javascript - 如何在 React 中单击单选按钮时显示 div