Kea*_*von 129

首先,创建一个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>
Run Code Online (Sandbox Code Playgroud)

  • 不起作用,因为只要_single_文本行不适合一行就会包装文本并导致块为全宽但文本小于全宽,所以即使块居中也不会因为文本不是包含块的全宽,所以很重要.有关示例,请参阅http://stackoverflow.com/questions/8702802/how-can-i-centre-left-aligned-text-even-when-it-wraps的图表2a (9认同)
  • 清晰有效.谢谢! (3认同)
  • @ user3338098确实可以,您需要为文本设置最大宽度以阻止块扩展到不希望的大小。实际上,我将这种完全相同的逻辑应用于我的工作,并且能够实现图1b + 2b。 (2认同)

Pau*_*jan 17

重新提出另一个问题的工作答案:如何水平居中可变宽度的浮动元素?

假设浮动且将居中的元素是具有id ="content"的div ...

<body>
<div id="wrap">
   <div id="content">
   This will be centered
   </div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)

并应用以下CSS

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

#content {
    float: left;
    position: relative;
    left: -50%;
}
Run Code Online (Sandbox Code Playgroud)

这是一个很好的参考http://dev.opera.com/articles/view/35-floats-and-clearing/#centeringfloats


eKe*_*ek0 5

如果我理解你,你需要使用来居中一个容器(或块)

margin-left: auto;
margin-right: auto;
Run Code Online (Sandbox Code Playgroud)

并左对齐它的内容:

text-align: left;
Run Code Online (Sandbox Code Playgroud)

  • 我正在尝试使用容器 div,使其工作的唯一方法是使用固定宽度(我不想要)。 (2认同)

L.G*_*unt 5

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

HTML:

<div>
  <p>Some interesting text.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

P {
  width: 50%; //or whatever looks best
  margin: auto; //top and bottom margin can be added for aesthetic effect
}
Run Code Online (Sandbox Code Playgroud)

希望这就是您正在寻找的东西,因为我花了相当多的搜索时间才找到这个非常基本的解决方案。