CSS实现水平垂直居中方式

1、定位

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中实现方式--定位实现</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .p{
                /*父元素为除了static以外的定位方式*/
                position: relative;
                /*position: absolute;*/
                /*position: fixed;*/
                width: 500px;
                height: 500px;
                border: 1px solid red;
            }
            .c{
                /*子元素为绝对定位*/
                position: absolute;
                width: 200px;
                height: 200px;
                /*top、bottom、left和right 均设置为0*/
                top: 0;
                bottom: 0;
                left: 0;
                right: 0;
                /*margin设置为auto*/
                margin:auto;
                border: 1px solid green;
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>

    </body>

</html>

效果:

2、table-cell布局

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中实现方式--定位实现</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .p{
                width: 500px;
                height: 500px;
                border: 1px solid red;
                display: table-cell;
                /*vertical-align: middle; 实现垂直居中*/
                vertical-align: middle;
            }
            .c{
                width: 200px;
                height: 200px;
                border: 1px solid green;
                /*margin: 0 auto; 实现水平居中*/
                margin: 0 auto;
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>

    </body>

</html>

效果同上。

3、flex布局

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中实现方式--定位实现</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }

            .p {
                width: 500px;
                height: 500px;
                border: 1px solid red;
                /*flex 布局*/
                display: flex;
                /*实现垂直居中*/
                align-items: center;
                /*实现水平居中*/
                justify-content: center;
            }

            .c {
                width: 200px;
                height: 200px;
                border: 1px solid green;
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>

    </body>

</html>

效果同上,注意浏览器兼容性问题

4、translate+relative定位

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>CSS水平垂直居中实现方式--定位实现</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }

            .p {
                width: 500px;
                height: 500px;
                border: 1px solid red;
            }

            .c {
                width: 200px;
                height: 200px;
                border: 1px solid green;
                /*relative 定位*/
                position: relative;
                /*top和left偏移各为50%*/
                top: 50%;
                left: 50%;
                /*translate(-50%,-50%) 偏移自身的宽和高的-50%*/
                transform: translate(-50%, -50%);
            }
        </style>
    </head>

    <body>
        <div class="p">
            <div class="c">
                子元素
            </div>
        </div>

    </body>

</html>

效果同上,注意浏览器兼容性问题

时间: 2024-11-05 18:28:56

CSS实现水平垂直居中方式的相关文章

CSS制作水平垂直居中对齐 多种方式各有千秋

作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀,要正确的选择也是一件不容易的事情.我会将这几种方法一一介绍给大家,以供大家参考.或许对 于我这样的初学者有一定的帮助. 用CSS来实现元素的垂直居中效果是件苦差事,虽然说实现方法有多种,但有很多方式在某些浏览器下可能无法正常的工作.接下来我们就一起来看看这些不同方法实现垂直居中的各自优点和其不足

css实现水平 垂直居中

css实现水平居中 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>水平居中</title> <style> .box1{ border: 1px solid #000; text-align: center; } .box2{ display: inline-block; backgroun

《转》CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)

转自大地Dudy的CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳) 本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说的IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法: <!doctype html> <html lang="en&

CSS制作水平垂直居中对齐

作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀,要正确的选择也是一件不容易的事情.我会将这几种方法一一介绍给大家,以供大家参考.或许对于我这样的初学者有一定的帮助. 用CSS来实现元素的垂直居中效果是件苦差事,虽然说实现方法有多种,但有很多方式在某些浏览器下可能无法正常的工作.接下来我们就一起来看看这些不同方法实现垂直居中的各自优点和其不足之处

转 CSS制作水平垂直居中对齐各种方法总结

作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀,要正确的选择也是一件不容易的事情.我会将这几种方法一一介绍给大家,以供大家参考.或许对于我这样的初学者有一定的帮助. 用CSS来实现元素的垂直居中效果是件苦差事,虽然说实现方法有多种,但有很多方式在某些浏览器下可能无法正常的工作.接下来我们就一起来看看这些不同方法实现垂直居中的各自优点和其不足之处

css各种水平垂直居中

css各种水平垂直居中,网上查了一下,总结以下几种 line-height垂直居中 缺点,仅限于单行文字 .item{ text-align: center; height: 100px; line-height: 100px; } 效果:http://runjs.cn/code/rmjiq3a8 padding垂直居中缺点,内容不确定时,高度不好固定 .item{ padding: 40px 0; } 效果:http://runjs.cn/code/hg5yrpm8 margin垂直居中 需要

CSS实现水平垂直居中小结

版权声明:本文为博主原创文章,未经博主允许不得转载. 水平居中 水平居中实现只要设置margin:0 auto;就可以实现 <code class="hljs xml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined

CSS元素水平垂直居中方法总结(方法主要来自大漠以及张鑫旭博客)

以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"&g

css布局--水平垂直居中

1. 使用text-align 和 vertical-align 和 inline-block实现水平垂直居中 html <div class="parent"> <div class="child">使用vertical-align,text-align,inline-block实现水平垂直居中</div> </div> css .parent{ vertical-align: middle; text-align: