Home >Web Front-end >CSS Tutorial >Share six methods of vertical and horizontal centering in CSS

Share six methods of vertical and horizontal centering in CSS

高洛峰
高洛峰Original
2017-03-16 10:44:261176browse

Summarizes several ways to achieve CSS centering. Note: * is the common way, "wrap" is the container, and "div" is the element to be centered.

*1.Absolute positioning, the following code can be implemented when the width and height are known, or you can use negative margins;

.div { 
    width: 200px;
    height: 200px;
    margin: auto; 
    position: absolute; 
    top: 0; left: 0; bottom: 0; right: 0; 
}

2. Without knowing the width and height of the element, just realize that a certain div is 1/2 of its parent, centered horizontally and vertically, and enlarged or reduced in proportion to the size of the parent element.

.div{
    position: absolute;
    left: 30%;
    right:30%;
    top: 25%;
    bottom:25%;
}

*3.translate, when the width is known and the height is unknown

.wrap{
    width:200px;//也可以不写,默认占总宽度的50%
    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
}

4.table-cell, when the height of the div itself is unknown and only vertical centering is achieved, ps, this In this case, the div width is 100%

.wrap{//外层容器
    display: table;
}
.div{//内层容器
    display: table-cell; 
    vertical-align: middle; 
}

*5.flex layout. If the width is not fixed, just set display:flex in the parent container.

.wrap{
    display: flex;
    display: -webkit-flex;
    justify-content: center;
    align-items: center;   
}

6. Hack method, good at using :after.

.wrap {  
    text-align: center; 
    overflow: auto; 
}   
.wrap:after, 
.div { 
    display: inline-block; 
    vertical-align: middle; 
}   
.div:after { 
    content: ''; 
    height: 100%; 
    margin-left: -0.25em; /* 需要根据不同的字号做调整 */ 
}   
.wrap { 
    max-width: 99%; /* 防止文档过长时会到容器的顶部 */ 
    max-width: calc(100% - 0.25em) /* Only for IE9+ */  
}


The above is the detailed content of Share six methods of vertical and horizontal centering in CSS. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn