CSS:div内容水平居中/垂直居中设置(非line-height和padding方法)

问题:

业务需求实现某段内容在指定大小的div内居中(水平居中+垂直居中)显示。
最初的实现方法通过设置line-height与外层相同div height相同实现,但内容过长时导致如下图异常状况。
CSS:div内容水平居中/垂直居中设置(非line-height和padding方法)

解决:

采用模拟table显示的方式处理,通过设置line-height或者padding的方式在内容过长时都会有文字长度溢出的状况发生。
注意:

  • 外层设置宽度、display: table;
  • 内层设置 display: table-cell; vertical-align: middle;
<div style="width: 300px; height:300px; text-align: center; display: table; background-color: #888; color: #FFF;">
	<div style="display: table-cell; vertical-align: middle;">
		<h4>这是一段很长很长的话!为了体现折行还要讲好多好多哦!</h4>
	</div>
</div>

CSS:div内容水平居中/垂直居中设置(非line-height和padding方法)