Home > Article > Web Front-end > Share six methods of vertical and horizontal centering in CSS
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!