首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果CSS中存在3个以上的元素,如何在新行中自动格式化?

如果CSS中存在3个以上的元素,如何在新行中自动格式化?
EN

Stack Overflow用户
提问于 2019-09-26 20:38:12
回答 2查看 282关注 0票数 0

我有一个<DIV>,我在里面放了一些元素。每个元素都在自己的<DIV>中,它们应该显示在一个大小为3的行中。例如,我加载了12个元素,然后应该是第一行中的前3个元素,第二行中的第二个3个元素,依此类推……

但是,我不使用table或Grid-System。我想在不使用庞大的JS逻辑的情况下实现这一点(更喜欢CSS)。因为,如果我这样做,我只需要将一些元素样式设置为display: none,它们就会消失,而另一些元素则会自动在正确的位置格式化。

我试着用display: inlinedisplay: inline-boxfloat: leftfloat: right来实现这一点,但是所有的东西都毁了我的元素容器。以下是我的一些相关代码:

代码语言:javascript
复制
        .Pic-Table-Container{
            border: 3px solid black;
            border-radius: 5px;
            position: relative;
        }

        .Pic-nonPreview {
            width: 236px;
            height: 136px;
            padding-top: 20px;
        }

        .Pic-Preview {
            width: 350px;
            height: 200px;
            padding-top: 20px;
        }

        .Pic-Container {    
            width: 30%;
            height: 360px;
            border: 2px solid black;
            background: white;
            text-align:center;
        }

然后我的JS逻辑创建这样的元素:

代码语言:javascript
复制
tableNode.innerHTML += '<div class="'+type+'">
                           <div class="Pic-Container" id="Pic-Container-'+ID+'">

                            <img onmouseover="previewMode(\'' + ID + '\')" onmouseleave="nonpreviewMode(\'' + ID + '\')" src="https://www.NOT-RELEVANT.com' + ID + '" class="Pic-nonPreview" id="' + ID + '" />

                            <a class="hoverBoy" id="a-name-'+ID+'" OnClick="copyText(\'a-name-' + ID + '\');return false;">
                               ' + String(Name) + '
                            </a>

                            <a class="hoverBoy" id="a-id-'+ID+'" OnClick="copyText(\'a-id-' + ID + '\');">
                               ' + String(ID) + '
                            </a>

                         </div>
                      </div>';

因为我认为它仍然不是很清楚,这是我的计划的一张图片:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-26 20:46:16

您应该使用flexbox

代码语言:javascript
复制
.Main-Container{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

.Child-Elements{
  width: 33.3%;
}
票数 0
EN

Stack Overflow用户

发布于 2019-09-26 20:46:03

代码语言:javascript
复制
.div-className:nth-child(3n+1){clear:left;}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58116998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档