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 对其有效。

  • 相关阅读:
    索引聚焦如何使 SQL Server高效 设计(ITPUT 讨论汇总)
    android包Android "java.lang.NoClassDefFoundError:*"报错的处理方法
    删除实现图的构造、DFS、BFS 以及图的删除实现
    RTL8019以太网控制器
    JavaScript正则表达式
    sql语句
    无线模块电阻表
    FindWindow(api)确认程序是否在运行
    正则表达式语法
    msi安装程序安装参数
  • 原文地址:https://www.cnblogs.com/TravellingKite/p/8596290.html
Copyright © 2011-2022 走看看