zoukankan      html  css  js  c++  java
  • 垂直居中

    1、vertical-align

    设置的行内元素所在行的对齐基线,对行内元素行内块状元素均有效

    vertical-align: middle;
    

    2、line-height

    设置子元素的行高和父元素的高度相同,与 vertical-align 配合使用

    3、position + margin

    设置子元素相对于父元素为绝对定位,再设置元素的margin为负

    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -20px;//元素宽度的一半
    margin-top: -20px;//元素高度的一半
    

    4、position + transform

    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    

    5、position + margin +固定宽高

     100px;
    height: 100px;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    

    6、position + margin

    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    

    应用

    1、图片垂直居中

    <div class="parent">
    	<div class="child1">
    		<img src="images/dh.png" alt="">测试文字
    	</div>
    	<div class="child2">
    		<img src="images/dh.png" alt="">测试文字
    	</div>
    </div>
    
    .parent {
    	height: 100px;
    	 100%;
    	background-color: #000;
    	color: #fff;
    }
    .child1 {
    	float: left;
    	line-height: 100px;
    }
    .child1 img{
    	vertical-align: middle;
    }
    .child2 {
    	float: right;
    	line-height: 100px;
    }
    
    

    效果:

    这里写图片描述

    1、当为 .child1.child2 设置了和父元素高度大小一样的行高后,"测试文字" 就会居中,而这时候两个导航图片则不会。这里 "测试文字居中" 也只是差不多居中,因为它的 vertical-align 其实为 baseline ,有细微的差别。因此想要文字完全居中,可以使用 span 包裹后设置 vertical-align = middle

    2、再为 .child1 设置 vertical-align = middle ,导航图片就会居中了。

    3、.child2 的导航图片并未垂直居中,可以看到它与文字的基线对齐了,其实还是因为它的垂直对齐方式为 baseline

    总结:

    原理:img 属于行内元素,所以 vertical-align 对其有效。

  • 相关阅读:
    Html5新特性之文档声明和头部信息
    HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)
    转:如何进行软件架构设计?
    sql2008,sa不能使用:不能为主体 sa 中设置凭据
    用VS2012不能打开VS2010的项目
    解决sourcesafe admin用户自动登录并且不用密码的问题
    WIN7隐藏GUEST登录账户
    人人刷人气
    python文件操作
    sigmoid belief network boltszmann machine
  • 原文地址:https://www.cnblogs.com/TravellingKite/p/8596290.html
Copyright © 2011-2022 走看看