Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS在使用float:left时去掉了额外的间距;_Css_Css Float - Fatal编程技术网

CSS在使用float:left时去掉了额外的间距;

CSS在使用float:left时去掉了额外的间距;,css,css-float,Css,Css Float,我有一堆内容灵活的红色方块 <div class="block"> lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. </div> 有人知道如何去掉这个额外的间隔吗 我不想将它们放入单独的父元素中,因为如果我这样做,每次调整屏幕大小时,我都必须更改元素的父元素 提前感谢, David通过使父级显示:flex,可以让元素占据所有垂直空间;柔性

我有一堆内容灵活的红色方块

<div class="block">
lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum. lorem ipsum.
</div>
有人知道如何去掉这个额外的间隔吗

我不想将它们放入单独的父元素中,因为如果我这样做,每次调整屏幕大小时,我都必须更改元素的父元素

提前感谢,


David

通过使父级
显示:flex,可以让元素占据所有垂直空间;柔性包装:包装

如果您希望元素向上移动,以便填充创建的垂直间隙,那么仅使用CSS是不容易做到这一点的。你需要使用像这样的库

.parent{
显示器:flex;
柔性包装:包装;
}
.街区{
宽度:40%;
保证金权利:10%;
边缘顶部:10px;
边缘底部:10px;
背景:红色;
颜色:白色;
}

你好

堆栈溢出。 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。 你好。
世界。 乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。乱数假文。
不使用任何javascript或库的另一种方法是使用
float:left和<代码>浮动:右侧

通过这样做,它们将向上移动,因为向右和向左浮动是相互独立的

例如,当向右浮动时,它的作用就好像左侧没有元素一样

对于左边的元素使用
float:left'
,对于右边的元素使用
float:right

下面是一个JSFIDLE:

您可能需要更新父容器的宽度,以使图元仍位于正确的区域中

为了使每一个项目都向左浮动而不是向右浮动,我使用了css
nth child
。见下文:

.block {
    ...
    float: left;
}

.block:nth-child(even) { /* even -> every second block */
    float: right;
}
我知道这似乎是毫无意义的,你可以有两个容器——一个是右边的,一个是左边的——然后把它们都放到左边,但必须这样做的原因是,当屏幕太小时,我需要它们能够一个一个地放在另一个下面。为此,我使用了媒体查询,当屏幕变小时,我将每个元素向左浮动:

@media screen and (max-width: X px) {
    .block { float: left; }
}
与我所知道的
砌石
解决方案相比,此解决方案的唯一缺点是,如果纯粹出于运气,右侧的所有项目都比左侧的项目高得多,那么底部左侧将有大量额外空间。您可以在上面给出的JSFIDLE链接中看到这一点


你还需要清除右边的空格。

你说的去掉额外的空格是什么意思?是否要用背景色填充空间?或者您希望项目向上移动,以便列中的文本之间没有垂直间距?我希望项目向上移动。您需要制作这两列(您说过您不想这样做),或者使用库。更新了我的答案与砌体库的例子。谢谢你的帮助!第二个选项是我想要的,但我不想使用jQuery或任何库。我通过使用
float:left
float:right
在我的情况下起作用。
@media screen and (max-width: X px) {
    .block { float: left; }
}