【问题标题】:Evenly spaced logos using bootstrap使用引导程序均匀间隔的徽标
【发布时间】:2016-01-17 13:03:44
【问题描述】:

使用 bootstrap 3,如何创建单行等间距的徽标?徽标是简单的 JPG 图片,我目前正在使用这样的代码:

<table class="logotable text-center">
     <tr>
        <td>
          <img ..>
        </td>
     </tr>
</table>

.logotable {
   width: 100%
}

尽管这在 PC 上看起来很棒,但它不会转换为小屏幕设备的堆叠形式。

无论我尝试什么都没有用(徽标总是以堆叠形式出现)

  • 由于某种原因,row-fluidcontainer-fluid 不起作用(我的父容器不能流动,因为我还需要容器中的一些文本)
  • 我尝试在容器中放置 div.row-fluid 并将每个图像添加到 div.row 中,但没有成功
  • 我不想 "hard code" 获取固定数量的列
  • lots of confusion 之后,我意识到我不需要容器流体,即。它不会均匀地隔开行,而是会扩展以填充可用空间

【问题讨论】:

  • 您使用 而不是
    是否有原因?
  • 我会使用 div 但引导版本不起作用。因此,现在我正在使用纯 HTML 等待引导程序的帮助。
  • 表格是表格数据,一行等间距的标志不是表格数据。
  • @APAD1 - 该评论既没有意义也没有帮助。我们在这里讨论实现某些目标的实用方法。如果您有提示,请添加答案。不要只是解雇您不可能始终遵循的个人政策。
  • 是的,它既有意义又有帮助。在您的问题中,您发布了表格的 HTML,我告诉您这不是使用表格的正确情况。这不是“个人政策”,而是当今时代普遍接受的最佳做法。

标签: html css twitter-bootstrap


【解决方案1】:

您需要 col-[breakpoint]-[columns]row div,这可能是您尝试时它不起作用的原因。

除此之外,在 Boostrap 3 中,您需要对图像使用 img-responsive 类以使其具有响应性。

row-fluid 我相信在 Bootstrap 2 中使用过,但在 Bootstrap 3 中已弃用。

我不确定您希望在一行中有多少个徽标,但您可以执行以下操作以在一行中显示 3 个图像:

<div class="row">
  <div class="col-md-4">
    <img class="img-responsive" alt="" src="/path/to/image" />
  </div>
  <div class="col-md-4">
    <img class="img-responsive" alt="" src="/path/to/image" />
  </div>
  <div class="col-md-4">
    <img class="img-responsive" alt="" src="/path/to/image" />
  </div>
</div>

编辑

为避免硬编码,您可以像这样使用 flexbox:

HTML

<div class="flex-container">
  <div class="flex-item">
    <img src="" alt="1" class="img-responsive" />
  </div>
  <div class="flex-item">
    <img src="" alt="2" class="img-responsive" />
  </div>
  <div class="flex-item">
    <img src="" alt="3" class="img-responsive" />
  </div>
  <div class="flex-item">
    <img src="" alt="4" class="img-responsive" />
  </div>
  <div class="flex-item">
    <img src="" alt="5"class="img-responsive" />
  </div>
</div>

CSS

.flex-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  padding: 10px;
}

/* to center flex-items */
.flex-item {
   margin: auto;
}

Non-Centered Items Fiddle | Centered Items Fiddle

Flexbox Guide

更新

要使 flexbox 项目垂直居中,只需为容器添加一个高度:

.flex-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  height: 200px;
  background: red;
}

.flex-item {
  margin: auto;
}

Vertically Centred Fiddle

【讨论】:

  • 既然我们有col-md-4,这不是对标志数量的硬编码吗?我想要一种在不计算col-* 的情况下添加任意数量徽标的方法。目前我有 5 个徽标,所以它是一个奇怪的数字,不适用于 12 col 系统。
  • 这是硬编码,是的,如果您不想这样做,那么 flexbox 将是一个选项。
  • flexbox 是否与 bootstrap 配合得很好?某处有快速入门指南吗?我想要flex-growjustify-content = space-betweenalign-items = center。 Flexbox 是一个 JS/CSS 库还是只是一个规范?我希望我的东西在旧版/所有浏览器上都能正常工作,而不仅仅是最新版。
  • 嗨,flexbox 应该可以用 bootstrap,我已经更新了我的答案,那里也有一个小提琴。
  • 哇。它的效果惊人。只是最后一个障碍……图像都与 TOP 对齐。有没有办法将图像与行的 V-CENTER 对齐?我检查了检查的弹性项目的大小(h和w)正确,它只是没有垂直居中于弹性项目的图像。
【解决方案2】:

有什么要求?每行有多少个标志?这应该居中/合理吗?

如果不是,您可以使用类 col-xs-3 col-sm-2 col-md-1 编写/生成 div,例如包含每个图标,您将拥有您想要的。

通过这些课程,您将能够在移动设备上每行获得 4 个图标,在平板电脑上获得 6 个图标,否则为 12 个。

如果还不够,请告诉我

编辑:

所以每行 5 个图标,一个网格是每行 12 列,让我们将其居中并跳过第一列。所以我们得到:

<div class="row">
     <div class="col-sm-offset-1 col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
</div>
<div class="row clearfix">
    <div class="col-sm-offset-1 col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
     <div class="col-sm-2 col-xs-12"><img ... /></div>
</div>

一些技术(我不是很掌握)要点: col-sm-* 适用于平板电脑:因此此代码将从平板电脑到大型桌面每行显示 5 个图标。 col-xs-* :对于移动设备,每行 1 个图标

clearfix:我不确定这一点,但当你没有以 12 列结束最后一个容器时它很有用,因此最好从第二个 div 使用它。你甚至可以从 1 div 开始,它不会像我所知的那样造成麻烦。

如果行的划分导致一些额外的空间,您可以使用一些样式属性或 CSS 类来删除它。

【讨论】:

  • 每行 5 个徽标。 1 行/行。它们都应该在 PC 上显示在一行中,并在移动设备上堆叠。我该怎么做?
  • 回答已编辑 对您有好处吗?您可以在您的浏览器中进行测试,只需调整窗口大小,直到宽度小于 300 像素
  • 感谢您的帮助,但 martincarlin87 的回答对我有用。我不想硬编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2017-11-23
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
相关资源
最近更新 更多