如何使用引导程序对齐图像死点


207

我正在使用bootstrap框架,并试图使图像水平居中,但是没有成功。

我尝试了各种技术,例如将12个网格系统分成3个相等的块,例如

<div class="container">
    <div class="row">
      <div class="span4"></div>
      <div class="span4"><img src="logo.png" /></div>
      <div class="span4"></div>
    </div>
</div>

使图像相对于页面居中的最简单方法是什么?


顺便说一句。您可能需要查看“偏移列”部分。twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85 2012年

有人将其标记为没有答案,我同意。请将此添加为评论,您的答案将很快被删除。
tckmn 2013年

1
如果标签img-responsive上有类img,则图像可能不会居中。 请参阅此SO答案以获取有关为什么使用bootstrapcenter-block类将解决该问题的解释。
cssyphus

如果您使用的是引导程序,则可以执行以下操作:stackoverflow.com/a/59469712/4654957
DiegoVenâncio,

Answers:


271

Twitter Bootstrap v3.0.3具有一个类:center-block

中心内容块

设置要显示的元素:通过边距阻止和居中。可作为mixin和class。

只需.center-blockimg标签中添加一个类,看起来像这样

<div class="container">
  <div class="row">
    <div class="span4"></div>
    <div class="span4"><img class="center-block" src="logo.png" /></div>
    <div class="span4"></div>
  </div>
</div>

在Bootstrap中已经有CSS样式调用.center-block

.center-block {
    display: block;
    margin-left: auto;
    margin-right: auto;
 }

您可以从这里看到一个示例


1
div </div>上的结束标记container看起来丢失了。在v3.3.7上这对我不起作用
tarabyte

141

正确的做法是

<div class="row text-center">
  <img ...>
</div>

25
使用这对我来说没有工作,当它在这一点- startbootstrap.com/round-about ..但添加类center-block<img>元素..工作
Sumeet Pareek

3
text-center不适用于具有img响应类的图像,但是上面的注释(关于center-block)解决了此问题
trojan'1

观察:在Bootstrap v3.1.0中,可以通过在列中添加text-center来使img响应在列中居中。在v3.3.4中,此行为已损坏。很烦人。CSS糟透了。
f470071 2015年

您应该改为使用中心块,如docs中所述:getbootstrap.com/css/#images-sensitive
Nacho

95

更新2018

center-block级不再存在引导4。要将映像放在Bootstrap 4中居中,请使用mx-auto d-block...

<img src="..." class="mx-auto d-block"/>

6
只是要对“ Update 2018”添加一点说明:mx-auto将左右边距设置为auto;D块集合显示:块
Michael Moriarty

85

将“中心块”添加到图像作为类-无需其他CSS

<img src="images/default.jpg" class="center-block img-responsive"/>

8
不知道为什么-1-这是最佳答案!它使用内置在Bootstrap中的帮助器类。
user2562923

4
在引导4,使用mx-auto替代center-block
Quantum7

52

Twitter引导程序有一个以以下内容为中心的类:.pagination-centered

它对我有用:

<div class="row-fluid">
   <div class="span12 pagination-centered"><img src="header.png" alt="header" /></div>
</div>

该类的css是:

.pagination-centered {
  text-align: center;
}

18
还是.text-center上课?
trejder


28

假设图像旁边没有其他内容,最好的方法是text-align: centerimg父级中使用:

.row .span4 {
    text-align: center;
}

编辑

如其他答案所述,您可以将bootstrap CSS类添加.text-center到父元素。这确实做同样的事情,并且在v2.3.3v3中都可用


完美-做到了。但是说我在图像下方有一个<ul>元素...这没有按预期对齐中心,有什么我可以添加的吗?谢谢
Fixer

1
由于.row是twitter引导程序的核心类之一。我建议在此页面上使用类标头定义一个新类twitter.github.com/bootstrap/index.html
baptme

1
@Fixer <ul>应该仍然居中对齐:jsfiddle.net/N74N7/1必须有其他影响它的CSS代码
My Head Hurts

花了超过2到3个小时,只有这条线...谢谢!
alamin

18

为我工作。尝试使用center-block

<div class="container row text-center">
    <div class="row">
      <div class="span4"></div>
      <div class="span4"><img class="center-block" src="logo.png" /></div>
      <div class="span4"></div>
    </div>
</div>

6

我需要同样的东西,在这里我找到了解决方案:

https://stackoverflow.com/a/15084576/1140407

<div class="container">
  <div class="row">
    <div class="span9 centred">
      This div will be centred.
    </div>
  </div>
</div>

和CSS:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}

我想引导人们需要将其添加到他们的CSS
穆罕默德·阿赫桑

嗨,谢谢!我现在正在使用Bootstrap v3。我将此添加到了img容器div中,因此必须为div指定至少(确切)确切的宽度才能使工作正常。如果没有容器或图像大小不同,请将此类添加到图像中。
Inan 2013年


1

如果浏览器版本没有问题,我们似乎可以使用HTML5的新功能:

在HTML文件中:

<div class="centerBloc">
  I will be in the center
</div>

在CSS文件中,我们编写:

body .centerBloc {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

因此,div可能是浏览器的完美中心。


3
您的div的类称为.centerBloc,而CSS文件则显示了body.loadingDiv ...
Martin

立即修复@Martin
dtechplus

0

你应该用

<div class="row fluid-img">
  <img class="col-lg-12 col-xs-12" src="src.png">
</div>

.fluid-img {
    margin: 60px auto;
}

@media( min-width: 768px ){
        .fluid-img {
            max-width: 768px;
        }
}
@media screen and (min-width: 768px) {
        .fluid-img {
            padding-left: 0;
            padding-right: 0;
        }
}

0

我正在使用justify-content-center类到容器中的一行。与Bootstrap 4兼容。

<div class="container-fluid">
  <div class="row justify-content-center">
   <img src="logo.png" />
  </div>
</div>


-3

您可以按以下方式更改先前解决方案的CSS:

.container, .row { text-align: center; }

这也应将所有元素置于父元素的中心div

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.