html部分
<div class="parent">
<div class="child">
- -居中- -
</div>
</div>
  css部分

一、text-align:center;vertical-align:middde 实现

    .parent{
width: 400px;
height:400px;
background:#666666;
text-align: center;
font-size: 0px;
}
.child{
font-size: 16px;
background: #ccc;
display: inline-block;
vertical-align: middle;
}
.parent:after{
content: '';
width:;
height: 100%;
display: inline-block;
vertical-align: middle;
}
/* .add{
width: 0;
height: 100%;
display: inline-block;
vertical-align: middle;
}*/

  也可不用伪元素after,在child的div后面写一个span  class为add的标签。

  font-size:0px;解决当child元素内的字超过一行 垂直居中失效问题。

二 、 display:table-cell 实现

    .parent{
width: 400px;
height:400px;
background:#666666;
display: table-cell;
text-align: center;
vertical-align: middle;
}
.child{
background: #cccccc;
display: inline-block;
}

   转化为table元素。

三 、定位 top left right bottom margin:auto 实现

    .parent{
width: 400px;
height:400px;
background:#666666;
position: relative;
}
.child{
width: 100px;
height: 100px;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom:0px;
margin: auto;
background: #ccc;
}

  子元素需设宽高,如果不设会和父元素同宽高。

四、定位 top left margin实现

    .parent{
width: 400px;
height:400px;
background:#666666;
position: relative;
}
.child{
width: 100px;
height: 100px;
background: #cccccc;
position: absolute;
top: 50%;
left: 50%;
margin-left:-50px;
margin-top: -50px;
}

  定位后 child的左上角在父元素的正中央,需要改变child的位置,让child和parent中心点在同一位置。

五、定位和css3 transfrom 实现

    .parent{
width: 400px;
height:400px;
background:#666666;
position: relative; }
.child{
background: #cccccc;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}

  translate(x,y) 的50%相对于自身来计算。

六、display:flex 弹性盒 实现

    .parent{
width: 400px;
height:400px;
background:#666666;
display: flex;
justify-content: center;
align-items: center;
}
.child{
background: #cccccc;
}

  默认flex-direction:row;是水平排列,

    justify-content是主轴方向,此时相当于是X轴。

    align-items:center;是交叉轴方向,此时相当于是Y轴。

  若设置flex-direction:column;为竖直排列,

    justify-content为Y轴,align-items为X轴。

display:-webkit-box!important;
overflow:hidden;
text-overflow:ellipsis;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;

最新文章

  1. Mybatis原理分析之二:框架整体设计
  2. HDU4888 Redraw Beautiful Drawings(最大流唯一性判定:残量网络删边判环)
  3. xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误
  4. STM32中断控制及优先级设置
  5. CRF++中文分词使用指南
  6. mysql登陆报错(ERROR 2002 (HY000): Can&#39;t connect to local MySQL server through socket &#39;/var/lib/mysql/mysql.sock&#39; (2))
  7. MVC 常用方法
  8. 基于Web的IIS管理工具
  9. vue中的checkbox全选和反选
  10. spring集成rabbitmq
  11. banner
  12. node访问oracledb的环境搭建
  13. luogu P3293 [SCOI2016]美味
  14. php实现多域名共享session会话
  15. 5.5 C++重载赋值操作符
  16. Python: PySide(PyQt)QMessageBox按钮显示中文
  17. linux_开发软件安装=命令步骤
  18. OAuth2学习笔记
  19. C实现线程池
  20. 免费申请 Github 私有仓库--学生和教育人士的福利

热门文章

  1. 01.centos7环境准备
  2. pycharm使用杂记
  3. 购物车业务逻辑(vuex)
  4. TP框架图片压缩/上传
  5. mkdir 的详细使用说明
  6. DP_括号匹配序列问题
  7. BAPI_MATERIAL_SAVEDATA
  8. Asp.Net实现在线人数统计 (转)
  9. Linux入门——shell脚本常用信息小结
  10. #20155319 2016-2017-2 《Java程序设计》第3周学习总结