【问题标题】:Can't Center Group of images (Class images) side-by-side in CSS不能在 CSS 中并排居中一组图像(类图像)
【发布时间】:2013-08-10 15:44:51
【问题描述】:

我已经尝试了一些东西,但没有任何运气。

我有一个类可以在我的 CSS 中向上滚动图像。我希望能够连续创建 3 个这些图像并将它们居中,但是由于它们是浮动的,所以它们不能居中。如果我将其更改为浮动中心,图像将彼此堆叠而不是并排堆叠。 Margin left/right auto 似乎也不起作用。我不知道该怎么办

我的 CSS 代码:

.pic {
  border: 3px solid#fafafa;  
  float: left;
  height: 250px;
  width: 300px;
  margin: 20;
  overflow: hidden;
   }
.aligncenter {text-align:center} 

/*VERTPAN*/
.vertpan img {
  display: block;
  margin-left: auto;
  margin-right:auto;
  margin-top: 0px;
  text-align: center;
  -webkit-transition: margin 1s ease;
     -moz-transition: margin 1s ease;
       -o-transition: margin 1s ease;
      -ms-transition: margin 1s ease;
          transition: margin 1s ease;
}

.vertpan img:hover {
  margin-top: -250px;
}

我的 HTML 代码:

<div class = "vertpan pic"><img class="aligncenter" alt="climb" src="http://i.imgur.com/XIaOaId.jpg" /></div>
<div class = "vertpan pic"><img class="aligncenter" alt="climb" src="http://i.imgur.com/69K8qMU.jpg" /></div>
<div class = "vertpan pic"><img class="aligncenter" alt="climb" src="http://i.imgur.com/XIaOaId.jpg" /></div>

我已经尝试过以我所知道的所有方式居中,但没有任何效果。我确定这很简单,我只是现在还没有完全理解 HTML 或 CSS,这就是问题所在。

【问题讨论】:

  • 如果你想看这3张图片,请滚动到thejasgroupinc.com的页面底部
  • 仅供参考,float:center 是一个不存在的 css 声明,因此在这种情况下,div 将被视为非浮动块元素

标签: html css image center


【解决方案1】:

.pic 上改用display:inline-block,并将它们放入带有text-align:center 的包装器中。

例如 HTML 应该是这样的:

<div class="picwrapper">
    <div class="pic">fancy picture 1</div>
    <div class="pic">fancy picture 2</div>
    <div class="pic">fancy picture 3</div>
</div>

还有额外的 CSS:

div.picwrapper {
    width:100%;
    text-align:center;
}
div.pic {
    /* remove float:left here */
    display:inline-block;
}

希望这会有所帮助, 干杯。

杰伦

【讨论】:

  • 为什么使用 text-align center 来居中对齐 DIV ?
  • 以这种方式,包装器 div 内的所有内容都居中,而无需在包装器上放置固定宽度。因此,不是将包装器 div 本身居中,而是将嵌套的内联块居中。
  • 但是应该使用 text-align 来对齐文本而不是像 DIV 这样的元素,对吧?
  • text-align 对齐内联元素(不仅仅是文本),例如默认内联的跨度和段落。将 div 设置为 inline-block 会将默认情况下的块元素转换为内联元素。
  • 这应该是公认的答案。效果很好,解决方案更简单,并且不需要容器上的固定宽度。
【解决方案2】:

将所有 DIV 放入一个容器中。给它一个宽度并使用自动边距。

HTML:

<div class="container">
<div class = "vertpan pic"><img class="aligncenter" alt="climb" src="http://i.imgur.com/XIaOaId.jpg" /></div>
<div class = "vertpan pic"><img class="aligncenter" alt="climb" src="http://i.imgur.com/69K8qMU.jpg" /></div>
<div class = "vertpan pic"><img class="aligncenter" alt="climb" src="http://i.imgur.com/XIaOaId.jpg" /></div>
</div>

CSS

.container {
width: 920px;
margin: 0px auto;
}

【讨论】:

  • 谢谢,这是一个简单易行的解决方案
  • 哎呀,我想你忘了把它标记为正确的答案:/
猜你喜欢
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
相关资源
最近更新 更多