Css 在div中水平居中放置文本

Css 在div中水平居中放置文本,css,Css,我观察到,text align:center,在从其容器块元素的边界(div在本例中)围绕文本的左右两侧创建相等的空间时,也会将文本的对齐方式更改为center。在这方面,它违反了单一责任原则 与文本对齐:居中 div{ 框大小:边框框; 宽度:600px; 高度:500px; 边框:4倍纯红; 填充:0 150px 0 150px; 显示:表格单元格; 垂直对齐:中间对齐; 文本对齐:居中; } 这是一段很长的文本,它贯穿了许多阅读行。有些人喜欢睡觉,有些人喜欢喝水。这看起来像一首诗。它甚至

我观察到,
text align:center
,在从其容器块元素的边界(
div
在本例中)围绕文本的左右两侧创建相等的空间时,也会将文本的对齐方式更改为
center
。在这方面,它违反了单一责任原则

文本对齐:居中

div{
框大小:边框框;
宽度:600px;
高度:500px;
边框:4倍纯红;
填充:0 150px 0 150px;
显示:表格单元格;
垂直对齐:中间对齐;
文本对齐:居中;
}

这是一段很长的文本,它贯穿了许多阅读行。有些人喜欢睡觉,有些人喜欢喝水。这看起来像一首诗。它甚至像一个一样排列。真遗憾不,没有,理由很充分。因为如果CSS引擎本身中有一个这样的内置解决方案,而不设置填充,谁来决定文本内容的宽度

你最好的选择是做你已经在做的事情。也就是说,要在左侧和右侧设置填充,并保持
文本对齐:请对齐
(或
左侧
)。那正是你想要的


您正在考虑的方法的问题是,您需要以某种方式定义居中文本的宽度。在你的例子中,你设置了<代码>填充< /代码>和宽度>代码>,并隐式设置中间文本的宽度。


要确保容器中只包含预定义的with,唯一真正的解决方案是为其创建一个DOM元素。这意味着,如果您不想使用
填充
/
宽度
hack,您可能无法在此处避免额外的
div

额外的div有什么问题?css不是一种神奇的工具,它可以对一个元素做任何事情。无论如何,在使用第二个div的第二个示例中,您只需删除它并将justify放在parents上使用
text align:left在第一个示例中?它没有嵌套div就解决了问题。@RajenderJoshi抱歉。这是因为小心地使用了填充物。我的问题是:是否有一种内置的属性或方法可以在居中时保留文本对齐,而不必自己进行填充、边距等计算?对于内容的宽度,应该有什么规则?你想明确指定吗?@k-nut你说得对。我从没想过。这就解决了。您和RajenderJoshi的评论。@Water Cooler v2感谢您更雄辩的重新表述/添加!