不改dom结构如何通过该样式满足需求,场景如下:

发布于 2022-09-12 22:29:52 字数 885 浏览 13 评论 0

// dom
<div class="container">
    <div class="item">aaa</div>
    <div>
        <div class="item">bbb</div>
        <div class="item">ccc</div>
        <div class="item">ddd</div>
        <div class="item">eee</div>
        <div class="item">fff</div>
        <div class="item">ggg</div>
        <div class="item">hhh</div>
    </div>
</div>
// css
.container {
    width: 500px;
    background-color: #f0f0f0;
}

.item {
    display: inline-block;
    width: 100px;
    height: 100px;
    background-color: lightblue;
    margin-left: 10px;
    margin-top: 10px;
}

当前结果
图片.png

请问大神如何通过只改样式,实现下面的期望结果
图片.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟若柳尘 2022-09-19 22:30:25

上面几位大佬说用左浮动(float:left)没啥问题,但是为了兼容性更好,防止掉坑,建议使用盒模型(display:flex;)
怎么用?可以看下这篇文章:https://www.cnblogs.com/echolun/p/11299460.html

海夕 2022-09-19 22:30:24

楼上的改法,发现实际效果是左边距不等距,有偏差,不知道为啥。
可以这样改:

    .container {
      min-height: 240px;
      height: auto;
      width: 500px;
      background-color: #f0f0f0;
    }

    .item {
      height: 100px;
      width: 100px;
      display: inline-block;
      background-color: lightblue;
      float: left;
      margin-left: 10px;
      margin-top: 10px;
    }
甚是思念 2022-09-19 22:30:24

因为你container的长度固定了,所以直接用float就可以达到效果, 楼上的已经给出回答了~

.container>.item {
  float: left;
}
月下客 2022-09-19 22:30:24
.container .item {
    float: left;
}

最简单的办法了~

恰似旧人归 2022-09-19 22:30:23
.container>.item {
  float: left;
}

楼下提到了间距的问题,我已经在评论里做了回复,解决方法也很简单

.item {float: left}

当然,这个只是刚好float可以作为一种解决方案也正好是期望布局所实现的方案,所以一开始给的只是实现所需布局的方案,解决间距的问题还有多种方案

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文