CSS文字和图片在容器内垂直居中的简单方法

方法一、使用line-heigh使多行文字居中或图片居中

把文字包裹在一个inline-block元素中vertical-align middle,外部元素line-heigh等于高度

复制代码
1     <div class="box1">
2         <span>多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中测试多行居中</span>
3     </div>
复制代码
 1 .box1{
 2     background-color: #ccc;
 3     width: 300px;
 4     height: 300px;
 5     margin: 100px auto;
 6     line-height: 300px;
 7 }
 8 .box1 span{
 9     display: inline-block;
10     line-height: 20px;
11     vertical-align: middle;
12 }

图片居中:

复制代码
1 <div class="box1">
2         <img src="common-header-logo.png">
3 </div>
复制代码
 1 .box1{
 2     background-color: #ccc;
 3     width: 300px;
 4     height: 300px;
 5     margin: 100px auto;
 6     line-height: 300px;
 7     text-align: center;
       font-size: 0;
 8 }
 9 .box1 img{
10     vertical-align: middle;
11 }

效果:

方法二:使用flex布局实现居中(更简单,不支持IE9)

HTML如下:

复制代码
<div class="box">
  <span>span多行居中测试<br>span多行居中测试<br>span多行居中测试</span>
  <p>p另一个段落元素</p>
</div>

CSS如下:

复制代码
.box{
    display: flex;
    width: 500px;
    height: 300px;
    margin: 50px auto;
    border: 2px solid #000;
    align-items: center;/*垂直轴居中*/
}
.box span{/*span是另一个flex布局容器,它本身将自适应填满除p元素外的宽度*/
    flex: 1;
    display: flex;
    justify-content: center;/*水平轴居中*/
}

方法三:使用绝对定位使图片居中

见http://www.cnblogs.com/zczhangcui/p/6274660.html

相关推荐
IT_陈寒1 分钟前
SpringBoot自动配置的坑我帮你踩过了
前端·人工智能·后端
其实防守也摸鱼23 分钟前
网安自测题:掌握核心知识点的实用练习
linux·运维·服务器·前端·数据库·sql·xss
geovindu3 小时前
css: Timeline scribble
前端·css·iphone
沙漠之主11 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
hasty11 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
Csvn11 小时前
diff 算法(虚拟 DOM Reconciliation)
前端
前端snow12 小时前
ai agent --- 文件存储
前端
Frag0ut13 小时前
Chrome四大版本获取及共存指南:Stable/Beta/Dev/Canary
前端·chrome·浏览器·dev·beta·canary·共存版
IT_陈寒14 小时前
SpringBoot自动配置坑了我一把,原来是这样绕过去的
前端·人工智能·后端
广州华水科技14 小时前
单北斗GNSS变形监测在大坝安全监测中的应用与优势
前端