css3水平垂直居中(不知道宽高同样适用)

css水平垂直居中

第一种方法:

    在父div里加:

      display: table-cell;
      vertical-align: middle;
      text-align: center;

    内部div设置 

    display: inline-block;

    例:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>css水平垂直居中</title>
    <style>
        body {
            margin: 0;
        }

        .center {
            width: 250px;
            height: 250px;
            border: 2px solid red;
            font-size: 18px;

            /* 方法1 */
            display: table-cell;
            vertical-align: middle;
            text-align: center;
        }

        .center_inner {
            width: 100px;
            height: 100px;
            background-color: pink;

            /* 方法1 */
            display: inline-block;
        }
    </style>
</head>

<body>
    <div class="center">
        <div class="center_inner">面朝大海,春暖花开!</div>
        <!-- <div class="center_inner center_last">海阔天空</div> -->
    </div>
</body>

</html>
使父元素内的所有行内元素水平垂直居中(内部div设置display:inline-block即可)。

中间的粉色是居中的div

第二种方法:

  在居中的div元素里加

   /* 第二种方法 */
            position: absolute;
            top: 50%;
            left: 50%;
            transform:translate(-50%,-50%);

例:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>css水平垂直居中</title>
    <style>
        .center {
            width: 100px;
            height: 100px;
            background-color: pink;
            /* 第二种方法 */
            position: absolute;
            top: 50%;
            left: 50%;
            transform:translate(-50%,-50%);
        }
    </style>
</head>
<body>
    <div class="center">海阔天空</div>
</body>

</html>

    translate()函数可以在不知道宽高的情况下,利用它实现水平垂直居中。

    translate(-50%, -50%)作用是,往上(X轴),左(Y轴)移动自身长度的50%,以使其居于中心位置。

    如果使用top:50%, left:50%,是以左上角为原点,故不处于中心位置;但如果知道宽高,可以

            position: absolute;
            top: 50%;
            left: 50%;
            margin-left: -50px;
            margin-top: -50px;            

第三种方法:用弹性布局实现垂直左右居中

display:flex; 设置.wrap为弹性布局

justify-content:center;定义项目在主轴(水平方向)上居中对齐

align-items:center;定义项目在交叉轴(垂直方向)上居中对齐

例:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>css水平垂直居中</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .center {
            width: 200px;
            height: 200px;
            border: 2px solid red;
            margin:40px;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .inner {
            width: 50px;
            height: 50px;
            background-color: pink;
        }
    </style>
</head>

<body>
    <div class="center">
        <div class="inner">朝气蓬勃</div>
    </div>
</body>

</html>

效果图:

  如有疑问请加群,讨论854184700

  

  

  

原文地址:https://www.cnblogs.com/yaosusu/p/11703270.html

时间: 2024-11-02 02:32:00

css3水平垂直居中(不知道宽高同样适用)的相关文章

不知道宽高,水平-垂直居中显示

1.Css3使用translate属性,使不知道宽度.高度的元素实现水平.垂直居中 Css3代码: .wrapper{ padding:20px; background: orange; color: #fff; position: absolute; top:50%; left: 50%; -webkit-transform:translate(-50%,-50%); -moz-transform:translate(-50%,-50%); -transform:translate(-50%,

用CSS3让不知道宽高的元素居中

1 -webkit-transform:translate(-50%,-50%); 2 -moz-transform:translate(-50%,-50%); 3 transform:translate(-50%,-50%);

css3水平垂直居中

.parent {     width: 200px;     height: 200px;     background-color: black; } .child {     position: relative;     height: 100px;     width: 100px;     top: 50%;     left: 50%;     background-color:red;     -webkit-transform: translateX(-50%) transla

网页元素居中攻略记_(4)用CSS3属性让元素水平垂直居中

flex实现子块的完美居中 方案 父块使用display:flex属性,子块margin自适应即可实现 代码 index.html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>块状元素垂直居中(已知高度)</title> <style> *{margin: 0;padding: 0;} .

transform:translate(-50%,-50%)实现水平垂直居中

translate()函数是css3的新特性.在不知道自身宽高的情况下,可以利用它来进行水平垂直居中.. 当使用:top: 50%;left: 50%;, 是以左上角为原点,故不处于中心位置 translate(-50%,-50%) 作用是,往上(x轴),左(y轴)移动自身长宽的 50%,以使其居于中心位置. 与负margin-left和margin-top实现居中不同的是,margin-left必须知道自身的宽高,而translate可以在不知道宽高的情况下进行居中,tranlate()函数中

各种情况的水平垂直居中

1.单行文本的水平垂直 用height = line-height + text-align:center 2.内外宽高都知道的盒子可以用padding让上下相同,左右相同.css3中有calc()函数来算. 3.用margin来实现.水平方向上的可以直接margin-left:auto:margin-right:auto:来实现居中.垂直方向的用margin来实现有时候会出现margin重叠的情况.(在外层的元素上加一个overflow:hidden 这样就形成了一个新的bfc,这样的话两个元

两种方式实现盒子水平垂直居中

一:在知道宽高的情况下: <div style=" width:200px; height:200px; background: red; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; "></div> 二:在不知道宽高的情况下:padding会把盒子撑开,相当于宽高了. <div style=" padding: 30px; background:

CSS3之flexbox如何实现水平垂直居中和三列等高布局

最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西. 第一个css属性就没有看懂.于是乎,开始各种找资料,各种看书.这些天把对于css3伸缩布局盒(flexbox)模型的理解写成博文,目的是对flexbox做一个简单的介绍. 以下的内容会分为如下小节: 1.关于css3中flexbox需要掌握的概念 2.flexbox实现水平垂直居中对齐 3.三列等高自适应,页脚区域黏附底部的布局 1.关于css3中flexbox需要掌握的知识 因为对于三列等高

CSS3 不定宽高水平垂直居中

display: flex; justify-content: center; // 子元素水平居中 align-items: center; // 子元素垂直居中 [在父元素上添加上面3句,即可实现子元素水平垂直居中] 原文地址:https://www.cnblogs.com/queende7/p/8666544.html