在网页制做过程当中,咱们常常要用到图片、文字的垂直居中。今天总结一下垂直居中的方法。html
line-height
实现垂直居中#example1 { height: 100px; line-height: 100px; background: #161616; color: #fff; width: 200px; } <div id="example1"> 单行文字垂直居中 </div>
这种方法适用于单行文本垂直居中,若是文本内容太长,出现了换行,换行后的内容会溢出。布局
display: table
实现垂直居中#example2 { height: 100px; background: #161616; color: #fff; width: 400px; overflow: hidden; display: table; } #example2 .inner{ display: table-cell; vertical-align: middle; height: 50px; background:#999; } <div id="example2"> <div class="inner">块区域垂直居中</div> </div>
margin
填充#example3 { height: 100px; background: #161616; color: #fff; width: 400px; overflow: hidden; } #example3 .inner{ margin-left: auto; margin-right: auto; margin-top: calc((100px - 50px)/2); height: 50px; background:#999; } <div id="example3"> <div class="inner">块区域垂直居中</div> </div>
这种方法须要知道内外容器的大小flex
#example4 { width: 400px; height: 100px; background: #161616; color: #fff; position: relative; } #example4 .inner{ height: 50px; width: 200px; position: absolute; left: 50%; top: 50%; margin-top: -25px; margin-left: -100px; background:#999; } <div id="example4"> <div class="inner">块区域垂直居中</div> </div>
这种方法内部容器的宽高,外部容器的宽高能够不定code
#example5 { width: 400px; height: 100px; background: #161616; color: #fff; position: relative; } #example5 .inner{ position: absolute; left: 50%; top: 50%; background: #999; transform: translateX(-50%) translateY(-50%); } <div id="example5"> <div class="inner">块区域垂直居中</div> </div>
这种方法内外容器均可以是不定的orm
#expample6 { width: 400px; height: 100px; background: #eee; position: relative; } #expample6 .inner { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; height: 50px; width: 70%; background: #aaa; color:#222; } <div id="expample6"> <div class="inner">Content here</div> </div>
#expample7 { width: 400px; height: 100px; background: #eee; display: flex; justify-content: center; align-items: center; } #expample7 .inner { height: 50px; width: 70%; background: #aaa; color:#222; } <div id="expample7"> <div class="inner">Content here</div> </div>