Html 我能';t似乎没有居中<;第节>;

Html 我能';t似乎没有居中<;第节>;,html,css,Html,Css,奇怪的是,我没有改变任何东西,但是当我刷新页面时,元素被移到了左边。 我的代码是: <section class='gallery-set'> <div> <img class='tilesetsmall' src ='images/sample.jpg'> </div> </section> 老实说,尽管我将边距设置为“自动”,但我不知道为什么它会向左移动,尤其是因为这以前已经起作用了。有些方法: 放置一个div并使

奇怪的是,我没有改变任何东西,但是当我刷新页面时,元素被移到了左边。 我的代码是:

<section class='gallery-set'>
  <div>
    <img class='tilesetsmall' src ='images/sample.jpg'>
  </div>
</section>
老实说,尽管我将边距设置为“自动”,但我不知道为什么它会向左移动,尤其是因为这以前已经起作用了。

有些方法:

放置一个div并使用文本对齐

CSS:

HTML:


使用边距:自动和显示:块

CSS:

HTML:


删除
显示:内联块并且它会工作


您可能打算改用
display:block
,这很有意义。如果要将
居中,则使用
内联块
没有意义。有关各种
显示
值如何工作的良好演示,请参阅。

边距:自动
不一定表示居中。这意味着浏览器将为您提供一个值。很多时候,这是
0
或其他一些较低的数字,但它并不一定意味着居中。继续我之前的评论:
边距:auto
将使您在许多上下文中水平居中,但前提是您不干扰它,例如,使用
显示:内联块
(请参阅我的答案)。谢谢,这对我有用。但是,您知道为什么在这种情况下,简单地将边距设置为“自动”不起作用吗?@nachime remove
display:inline block查看此小提琴如果您使用的是display:inline块,div与margin:auto不对齐。您需要使用我说过的第一步,使用内联块对齐(放置一个div并使用text align)。
.gallery-set {
    background-color:#447684;
    border-radius:5px;
    border: 2px solid black;
    width:500px;
    height:700px;
    margin:auto;
    display:inline-block;
}
.align {text-align: center;}
.gallery-set{
background-color:#447684;
border-radius:5px;
border: 2px solid black;
width:500px;
height:700px;
margin:auto;
display:inline-block;
}
.gallery-set{
background-color:#447684;
border-radius:5px;
border: 2px solid black;
width:500px;
height:700px;
margin:auto;
display:block;
}