CSS:中心块,但将内容对齐到左侧

时间:2009-08-13 01:34:03

标签: css alignment center

我希望整个块在其父级中居中,但我希望块的内容保持对齐。

示例效果最佳

在此页面上:

http://yaml-online-parser.appspot.com/?yaml=%23+ASCII+Art%0d%0a---+%7c%0d%0a++%5c%2f%2f%7c%7c%5c%2f%7c%7c%0d%0a++%2f%2f+%7c%7c++%7c%7c__%0d%0a&type=python

ascii艺术应该居中(如图所示),但它应该排成一行,看起来像“YAML”。

或者这个:

http://yaml-online-parser.appspot.com/?yaml=%3f+-+Detroit+Tigers%0d%0a++-+Chicago+cubs%0d%0a%3a%0d%0a++-+2001-07-23%0d%0a%0d%0a%3f+%5b+New+York+Yankees%2c%0d%0a++++Atlanta+Braves+%5d%0d%0a%3a+%5b+2001-07-02%2c+2001-08-12%2c%0d%0a++++2001-08-14+%5d%0d%0a

错误消息应该像在控制台中一样排列。

9 个答案:

答案 0 :(得分:119)

首先,创建一个父级div,将其子内容与text-align: center对齐。接下来,创建一个子div,使用display: inline-block来调整其子项的宽度,并text-align: left使其保留的内容根据需要与左侧对齐。



<div style="text-align: center;">
    <div style="display: inline-block; text-align: left;">
        Centered<br />
        Content<br />
        That<br />
        Is<br />
        Left<br />
        Aligned
    </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:17)

重新提出其他问题的工作答案:How to horizontally center a floating element of a variable width?

假设浮动且将居中的元素是一个id =“content”的div ...

<body>
<div id="wrap">
   <div id="content">
   This will be centered
   </div>
</div>
</body>

并应用以下CSS

#wrap {
    float: left;
    position: relative;
    left: 50%;
}

#content {
    float: left;
    position: relative;
    left: -50%;
}

这是关于http://dev.opera.com/articles/view/35-floats-and-clearing/#centeringfloats

的一个很好的参考

答案 2 :(得分:3)

如果我理解你,你需要用来集中容器(或块)

margin-left: auto;
margin-right: auto;

并左对齐它的内容:

text-align: left;

答案 3 :(得分:1)

<div>
    <div style="text-align: left; width: 400px; border: 1px solid black; margin: 0 auto;">
         <pre>
Hello
Testing
Beep
         </pre>
    </div>
</div>

答案 4 :(得分:1)

通常你应该在div上使用margin:0 auto,如其他答案所述,但你必须指定div的宽度。如果你不想指定宽度,你可以(这取决于你想要做的事情)使用边距,比如margin:0 200px; ,这应该让你的内容看起来好像它的中心,你也可以看到Leyu的回答my question

答案 5 :(得分:1)

这是你在找什么? Flexbox的...

.container{
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-content: center;
  align-items: center;
}
.inside{
  height:100px;
  width:100px;
  background:gray;
  border:1px solid;
}
<section class="container">
  <section class="inside">
    A
  </section>
  <section class="inside">
    B
  </section>
  <section class="inside">
    C
  </section>
</section>

答案 6 :(得分:1)

我发现在容器中居中和左对齐文本的最简单方法如下:

HTML:

<div>
  <p>Some interesting text.</p>
</div>

CSS:

P {
  width: 50%; //or whatever looks best
  margin: auto; //top and bottom margin can be added for aesthetic effect
}

希望这就是你所寻找的,因为我花了很多时间来寻找这个非常基本的解决方案。

答案 7 :(得分:1)

对于我们这些仍在使用旧浏览器的人,这里有一些扩展的向后兼容性:

<div style="text-align: center;">
    <div style="display:-moz-inline-stack; display:inline-block; zoom:1; *display:inline; text-align: left;">
        Line 1: Testing<br>
        Line 2: More testing<br>
        Line 3: Even more testing<br>
    </div>
</div>

部分灵感来自这篇文章:https://stackoverflow.com/a/12567422/14999964

答案 8 :(得分:-1)

这是有效的

<div style="display:inline-block;margin:10px auto;">
    <ul style="list-style-type:none;">
        <li style="text-align:left;"><span class="red">❶</span> YouTube AutoComplete Keyword Scraper software <em>root keyword text box</em>.</li>
        <li style="text-align:left;"><span class="red">❷</span> YouTube.com website <em>video search text box</em>.</li>
        <li style="text-align:left;"><span class="red">❸</span> YouTube AutoComplete Keyword Scraper software <em>scraped keywords listbox</em>.</li>
        <li style="text-align:left;"><span class="red">❹</span> YouTube AutoComplete Keyword Scraper software <em>right click context menu</em>.</li>
    </ul>
</div>