• css常见居中方式



    前言

    页面布局基本都会有居中样式,包括水平居中、垂直居中


    一、水平居中

    1、使用text-align + inline-block水平居中

    DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>用 text-align + inline-block 水平居中title>
    <style>
        .wrap{
            height: 200px;
            text-align: center;
            border: 1px solid red;
        }
        .wrap .text{
            height: 100px;
            width: 300px;
            display: inline-block;
            border: 1px solid blue; 
        }
    style>
    head>
    <body>
        <div class="wrap">
            <div class="text">我是元素1div>
        div>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    2、使用定位postion + 变形transform水平居中

    DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>用定位(postion) + 变形(transform)水平居中title>
        <style>
            .wrap {
                height: 200px;
                border: 1px solid red;
                position: relative;
            }
    
            .wrap .text {
                height: 100px;
                width: 300px;
                border: 1px solid blue;
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
            }
        style>
    head>
    
    <body>
        <div class="wrap">
            <div class="text">我是元素1div>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    3、使用 margin: 0 auto + display: block 水平居中

    DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>用 margin: 0 auto + display: block 水平居中title>
        <style>
            .wrap {
                height: 200px;
                border: 1px solid red;
            }
    
            .wrap .text {
                height: 100px;
                width: 300px;
                display: block;
                border: 1px solid blue;
                margin: 0 auto;
            }
        style>
    head>
    
    <body>
        <div class="wrap">
            <span class="text">我是元素1span>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    4、使用css3新特性flex弹性盒子布局水平居中

    DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>flex弹性盒子布局水平居中title>
        <style>
           .wrap {
                height: 200px;
                border: 1px solid red;
                display: flex;
                justify-content: center;
            }
            .wrap .text {  
                border: 1px solid blue;
            }
        style>
    head>
    
    <body>
        <div class="wrap">
            <span class="text">我是元素1span>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    二、垂直居中

    1、固定高度(height) = 行高(line-height)

    DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>固定高度(height) = 行高(line-height)title>
        <style>
            .wrap {
                height: 300px;
                line-height: 300px;
            }
    
            .wrap .text {
                border: 1px solid blue;
            }
        style>
    head>
    
    <body>
        <div class="wrap">
            <div class="text">我是元素1div>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    2、使用定位(postion) + 变形(transform)垂直居中

    DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>用定位(postion) + 变形(transform)垂直居中title>
        <style>
            .wrap {
                height: 600px;
                width: 300px;
                border: 1px solid red;
                position: relative;
            }
    
            .wrap .text {
                width: 300px;
                height: 100px;
                border: 1px solid blue;
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
            }
    
            #div1 {
                width: 300px;
                height: 200px;
                background-color: #ccc;
                position: relative;
            }
    
            #div2 {
                width: 100px;
                height: 100px;
                background-color: #FB7299;
                margin: auto;
                position: absolute;
                left: 50%;
                top: 50%;
                margin-top: -50px;
                margin-left: -50px;
            }
        style>
    head>
    
    <body>
        <div class="wrap">
            <div class="text">我是元素1div>
        div>
        <div id="div1">
            <div id="div2">
                子容器的垂直居中
            div>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    3、使用display: table-cell + vertical-align 垂直居中

    DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>display: table-cell + vertical-align 垂直居中title>
        <style>
            .wrap {
                height: 600px;
                width: 300px;
                border: 1px solid red;
    
                display: table-cell;
                vertical-align: middle;
            }
    
            .wrap .text {
                width: 300px;
                height: 100px;
                border: 1px solid blue;
            }
    
            #div1 {
                width: 300px;
                height: 200px;
                margin: 100px auto;
                /* 使容器水平边距自动相等 */
                border: 1px solid red;
                /* 给文本加上边框可以更清楚地看到效果 */
                display: table;
            }
    
            #div2 {
                display: table-cell;
                vertical-align: middle;
                text-align: center;
                width: 100%;
            }
        style>
    head>
    
    <body>
        <div class="wrap">
            <div class="text">我是元素1div>
        div>
        <div id="div1">
            <div id="div2">
                多行文本的垂直居中
                多行文本的垂直居中
                多行文本的垂直居中
                多行文本的垂直居中
                多行文本的垂直居中
            div>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    4、使用css3新特性flex弹性盒子布局垂直居中

    DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>flex弹性盒子布局垂直居中title>
        <style>
            .wrap {
          height: 600px;
          width: 300px;
          border: 1px solid red;
          display: flex;
          flex-direction: column;
          justify-content: center;
      }
      .wrap .text {  
          width: 300px;
          height: 100px;
          border: 1px solid blue;
      }
        style>
    head>
    
    <body>
        <div class="wrap">
            <div class="text">我是元素1div>
        div>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    tcp拥塞控制原理
    Infuse Mac视频播放器 中文
    基于python flask的旅游景点评论数据可视化大屏实现,包括数据采集
    EZAccess配合ET-B33H-M@B下发人员
    python
    Dreamweaver网页设计与制作100例——HTML5期末考核大作业——票务网站整套网页
    如何训练专属的OCR文字识别模型
    蓝桥杯-子 2023 / 双子数
    免费 DIY 之旅问题
    【类和对象三部曲①】深入浅出类和对象
  • 原文地址:https://blog.csdn.net/weiCong_Ling/article/details/134283824