【问题标题】:Is it possible to have only two items in each row in a two column grid?是否可以在两列网格中的每一行中只有两个项目?
【发布时间】:2021-03-05 21:17:23
【问题描述】:

我在对齐两列网格中的项目时遇到了一些问题。如果您查看this picture,您会发现这些项目没有正确对齐。您会注意到“示例 3”与“示例 4”不一致。我认为问题在于,由于“示例 2”没有描述,“示例 3”占据了“示例 2”的空白区域。

即使没有任何示例的描述,“示例 1”也应该与“示例 2”(第 1 行)对齐。 “示例 3”应与“示例 4”(第 2 行)对齐。 It should be like this.

我不确定是什么导致了这种错位。我不确定我的引导程序是否错误。我正在使用 Col-sm-6 Col-md-6 。这是我的代码:

<div class="myTree">
        <div class="col-sm-6 col-md-6">
            @if(link !=null)  // if link is there, then it shoud apply to image and title.
            {
            <a href="@link.URL" title="@link.LinkName" target="@link.TargetWindow">
                <div class="content">
                    <div class="treeimagewithLink">
                        <img class="treeimage" alt="@image.GetAttributeValue("AlternateText")" title="@image.GetAttributeValue("AlternateText")" src="images/@image.Value" />
                    </div>
                    <div class="treeTitle">
                        <h3>@title</h3>
                    </div>
                </div>
            </a>
            <div class="treeexcerpt">
                <p>@Html.Raw(Model.GetElementValue("description"))</p>
            </div>
            }
            else{ // if there is no link 
            <div class="imagewithnoLink">
                <img class="treeimage" alt="@image.GetAttributeValue("AlternateText")" title="@image.GetAttributeValue("AlternateText")" src="images/@image.Value" />
            </div>
            <div class="treeTitle">
                <h3>@title</h3>
            </div>
            <div class="treeexcerpt">
                <p>@Html.Raw(Model.GetElementValue("description"))</p>
            </div>
            }
        </div>
    </div>

【问题讨论】:

  • 我建议您使用 Tailwind Css 并查看这个很棒的视频 Tailwind Labs 如果您不需要使用引导程序。它更容易,反应更灵敏
  • 示例 1 和示例 2 都应该放在同一个 &lt;div class="row"&gt; ... &lt;/div&gt; 中,示例 4 和示例 3 也应该相同。这将确保 1 和 2 保持在同一行,而 3 和 4 保持在同一行另一排。更多信息:getbootstrap.com/docs/4.0/layout/grid
  • 能否请您发布呈现的 HTML 而不是模板,这使得重现问题变得困难?

标签: html css twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

您需要将row 类添加到myTree

这将导致myTree 获得display: flex

编辑:好的。看起来您的col-md-6 上显然有float,这可能意味着您使用的是引导程序v3,而不是v4。 (Bootstrap v3 使用 float 而不是 flexbox。)

因此我建议手动添加一些 flexbox。

CSS:

.myTree{
    display:flex;
    flex-wrap:wrap;
}

.myTree>.col-md-6{
   flex:1 1 auto;
}

@media (max-width:767px){
    .myTree>.col-md-6{
        width:100%;
    }
}

如果您想让整个网站更加全球化,您可以完全覆盖引导程序,如下所示:

.row{
    display:flex;
    flex-wrap:wrap;
}

[class*=col-]{
    flex: 1 1 auto;
}

@media (max-width:767px){
    [class*=col-]:not([class*="col-xs"]){
        width:100%;
    }
}

编辑 2:我刚刚意识到您的 HTML 可能实际上是问题所在。您的最终结果可能看起来像这样:

<div style="display:flex; flex-wrap:wrap;">
    <div class="myTree col-sm-6 col-md-6">
        ...
    </div>
    <div class="myTree col-sm-6 col-md-6">
        ...
    </div>
    <div class="myTree col-sm-6 col-md-6">
        ...
    </div>
    <div class="myTree col-sm-6 col-md-6">
        ...
    </div>
</div>

.myTree{
   flex:1 1 auto;
}

@media (max-width:767px){
    .myTree{
        width:100%;
    }
}

【讨论】:

  • 评论不用于扩展讨论;这个对话是moved to chat
  • @SamuelLiew OP 没有足够的声望在聊天中交谈,因此我们无法将对话转移到聊天中。我们应该怎么做?
  • 下次您可以标记您的帖子以供版主将其移至更早的聊天室,或者只是等到 25 cmets 后自动标记升起,版主会很快将其移至聊天室。跨度>
【解决方案2】:

&lt;div class="myTree"&gt; 更改为&lt;div class="row"&gt;,然后在底部class="row" 中添加&lt;div class="col-**"&gt;,然后添加&lt;div class="myTree"&gt;

【讨论】:

  • 先生,我有点困惑。不介意的话可以展示一下结构吗?
  • 我猜如果你为相同的宽度和高度创建一个列,需要在引导 Css 中添加一行,并且你想将示例 1 排序到示例 2 的左侧,将示例 3 排序到示例 4. 对吗?
  • 是的,没错。奇怪的项目在左侧。即使是右侧的项目。每行只有两个项目。像这样:i.stack.imgur.com/gShZ0.png
猜你喜欢
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
相关资源
最近更新 更多