html元素水平居中的几种方法

下面我将一一的介绍关于html元素水平居中的几种方式

一:对于行内元素采用text-align:center;的方式

二:采用margin:0 auto;来实现水平居中显示

三:用table实现


四;块级的元素但是通过转换成行内元素来实现块级元素的水平居中显示


五:父子元素都采用相对定位,父元素left:50%;子元素left:-50%;相对自己的长度减回50%,这样实现向右偏移后拉回多的部分


六:采用css3的flexbox,display:flex;


七:用父元素的 display:relative;直接采用position:absolute;left:0;right:0;margin:auto来实现水平以居中



下面是讲解的具体的代码:

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>css的水平居中</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <style type="text/css">
            #page{
                width: 100%;
                color: white;
            }
            .he{
                width: 100%;
                height: 100px;
                background: #625050;
                text-align: center;
                line-height: 100px;
            }
            .bo{
                width: 100%;
                background: #6aa087;
            }
            .fo{
                height: 100px;
                background: #2f5d34;
            }
            .content{
                height: 100px;
                border: 2px solid #fff;
            }
            .content1{
                background: #66a05c;
                text-align: center;
            }
            .content2{
                background: #8a5841;
                text-align: center;
            }
            .content2Bo{
                height:50px;
                width: 60%;
                border: 2px solid red;
                line-height: 50px;
                margin: 0 auto;
            }
            .content3{
                background: #2f5d34;
            }
            table{
                margin: 0 auto;
            }
            .content4{
                background: #8a5841;
                text-align: center;
            }
            .contentBo4{
                display: inline;
            }
            ul li{
                list-style-type: none;
            }
            .content5{
                float: left;
                position: relative;
                left: 50%;
            }
            .contentBo5{
                position: relative;
                left: -50%;
                background: #231b40;
            }
            .content6{
                width: 100%;
                text-align: center;
                background: #9ca05c;
                display: flex;
                align-items: center;
                justify-content: center;
            }
            .content7{
                position: relative;
            }
            .contentBo7{
                position: absolute;
                left: 0;
                right: 0;
                width: 80%;
                border: 2px solid red;
                margin: 0 auto;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="page">
            <div class="he">
                <h1>下面是对元素水平居中对齐的几个例子以及说明</h1>
            </div>
            <div class="bo">
                <div class="content content1">
                    这是内容区一:实现对行内元素的水平居中显示 采用text-align:center;的方式。
                </div>
                <div class="content content2">
                    <div class="content2Bo">
                        这是内容区二:红色区域部分采用margin:0 auto;来实现水平居中显示,当然要写好元素的宽度。
                    </div>
                </div>
                <div class="content content3">
                    <table><tbody><tr><td>
                                    这是内容区三:用table实现。
                                </td></tr></tbody></table>
                </div>
                <div class="content content4">
                    <ul class="contentBo4">
                        <li>这是第一行</li>
                        <li>这是第二行</li>
                        <li>这是内容区四:本来是contentBo4的块级的元素但是通过转换成行内元素来实现块级元素的水平居中显示。</li>
                    </ul>
                </div>
                <div class="content5">
                    <div class="content contentBo5">
                        这是内容区五:父子元素都采用相对定位,父元素left:50%;子元素left:-50%;相对自己的长度减回50%,这样实现向右偏移后拉回多的部分。
                    </div>
                </div>
                <div class="content content6">
                    这是内容区六:采用css3的flexbox,display:flex;
                </div>
                <div class="content content7">
                    <div class="contentBo7">
                        这是内容区七:用父元素的 display:relative;直接采用position:absolute;left:0;right:0;margin:auto来实现水平以居中。
                    </div>
                </div>
            </div>
            <div class="fo">
                <pre> 总结下:其实实现水平居中只有一下几种思路:
                    1:对于最简单的行内元素的居中采用text-align:center;设置即可。
                    2:对于最普通的水平居中采用绝对定位后设置left:50%;后再采用各种方式去实现自身水平差的补回。
                    3:对于普通的元素对齐还可以采用绝对定位后left:0;right:0;加上元素的宽度,在此基础之上就可以采用margin:auto;实现水平对齐了。
                    4:用css3的Flexbox属性
                    5:在元素外嵌套table实现,但是这样会有很多层嵌套 
                    6:marin:0 auto;方便的实现已知宽度的水平居中
                </pre>
            </div>
        </div>
    </body>
</html>

  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值