• 子元素在父元素中水平垂直居中的几种方式


    子元素、父元素HTML结构如下:

    <div class="wrapper">
    	<div class="inner"></div>
    </div>
    

    1. 定位 + top/left/bottom/right 值相等

    .wrapper {
    	position: relative;
    	 300px;
    	height: 300px;
    	border: 1px solid #333;
    	margin: 50px auto;
    }
    
    .inner {
    	position: absolute;
    	top: 0;
    	left: 0;
    	bottom: 0;
    	right: 0;
    	 100px;
    	height: 100px;
    	border: 1px solid #333;
    	margin: auto;
    }
    

    注意:一定要加上margin:auto

    特点:此方式不存在兼容性问题;

    2. 定位 + margin

    .wrapper {
    	position: relative;
    	 300px;
    	height: 300px;
    	border: 1px solid #333;
    	margin: 50px auto;
    }
    
    .inner {
    	position: absolute;
    	top: 50%;
    	left: 50%;
    	 100px;
    	height: 100px;
    	border: 1px solid #333;
    	margin-top: -50px;
    	margin-left: -50px;
    }
    

    特点:不存在兼容性问题,但是需要事先知道子元素的宽高;

    3. 定位 + 平移(translate)

    .wrapper {
    	position: relative;
    	 300px;
    	height: 300px;
    	border: 1px solid #333;
    	margin: 50px auto;
    }
    
    .inner {
    	position: absolute;
    	top: 50%;
    	left: 50%;
    	 100px;
    	height: 100px;
    	border: 1px solid #333;
    	transform: translate(-50%, -50%);
    }
    

    特点:不需要事先知道子元素的宽高,相对来说比方法2更加方便,但是使用了CSS3的属性(transform),存在兼容性问题;

    4. flex布局

    .wrapper {
    	display: flex;
    	justify-content: center;
    	align-items: center;
    	 300px;
    	height: 300px;
    	border: 1px solid #333;
    	margin: 50px auto;
    }
    
    .inner {	
    	 100px;
    	height: 100px;
    	border: 1px solid #333;
    }
    

    特点:相对于前面几种方式,flex布局无疑方便很多,但同样存在兼容性问题;

  • 相关阅读:
    android笔记:ListView及ArrayAdapter
    android示例:一个简单的登陆程序
    Android笔记:RelativeLayout
    Android笔记:ContextMenu
    java swing示例
    java多线程与并发笔记
    java常用代码
    java学习笔记整理
    Android笔记:intent
    Android笔记:Button
  • 原文地址:https://www.cnblogs.com/haveadate/p/13994375.html
Copyright © 2020-2023  润新知