• css 水平垂直居中 & vertical-align


    前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

    已知宽度的元素居中

      

      position定位 + margin负值

      绝对定位 + 4个方向全部`0px` + `margin:auto` 可以做到基于父容器水平垂直居中。
      绝对定位 + 左50% + margin-left:宽度一半的负值,可以做到水平居中,右也可以。
      绝对定位 + 上50% + margin-top:高度一半的负值,可以做到垂直居中,底部也可以。
      <style type="text/css">
        * {
          padding: 0;
          margin: 0;
        }
    
        .wrapper {
          width: 500px;
          height: 500px;
          background: #f90;
          left: 0;
          right: 0;
          top: 0;
          bottom: 0;
          position: absolute;
          margin: auto;
          /*绝对定位 + 4个方向全部0px + margin:auto 可以做到基于父容器水平垂居中*/
          /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
        }
    
        .content {
          width: 100px;
          height: 200px;
          background: #0f8;
          position: absolute;
          /*position: absolute基于第一个不是position:static的父级元素定位*/
          left: 50%;
          top: 50%;
          margin-left: -50px;
          margin-top: -100px;
          /*绝对定位 + 左50% + margin左:宽度一半的负值 可以做到水平居中  右也可以*/
          /*绝对定位 + 上50% + margin上:高度一半的负值 可以做到垂直居中  底部也可以*/
        }
      </style>
    
      <div class="wrapper">
        <span class="content"></span>
      </div>

    未知宽度的元素居中

    position定位 + transform:translate(-50%,-50%)
      <style type="text/css">
        * {
          padding: 0;
          margin: 0;
        }
    
        .wrapper {
          width: 500px;
          height: 500px;
          background: #f90;
          left: 0;
          right: 0;
          top: 0;
          bottom: 0;
          position: absolute;
          margin: auto;
          /*绝对定位 + 4个方向全部0px + margin:auto 可以做到基于父容器水平垂居中*/
          /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
        }
    
        .content {
          width: 100px;
          height: 200px;
          background: #0f8;
          position: absolute;
          /*position: absolute基于第一个不是position:static的父级元素定位*/
          left: 50%;
          top: 50%;
          transform: translate(-50%, -50%);
          /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/
          /*translate平移,是transform的属性值的一部分*/
          /*transition过渡、转变;可多个样式的变换效果*/
        }
      </style>
      <div class="wrapper">
        <span class="content"></span>
      </div>

    `div`中`img`图片垂直居中

      可以用`vertical-align:middle`,但是这个属性只有在`inline-block`类型(`inline`也有影响)的元素身上起作用。

      
    方法一:图片`vertical-align:middle` + 父元素的`height`与`line-height`一致

      <style type="text/css">
        * {
          padding: 0;
          margin: 0;
        }
    
        .wrapper {
          height: 300px;
          line-height: 300px;
          width: 300px;
          margin: 100px auto;
          background: #f90;
          text-align: center;
        }
    
        .wrapper img {
          width: 150px;
          vertical-align: middle;
        }
      </style>
      <div class="wrapper">
        <img src="images/1.jpg" alt="美女" title="美女" />
      </div>
    方法二:父元素设置`display:table-cell和vertical-align`
      <style type="text/css">
        * {
          padding: 0;
          margin: 0;
        }
    
        .wrapper {
          width: 300px;
          height: 300px;
          background: #f90;
          text-align: center;
          vertical-align: middle;
          display: table-cell;
        }
    
        .wrapper img {
          width: 150px;
        }
      </style>
      <div class="wrapper">
        <img src="images/1.jpg" alt="美女" title="美女" />
      </div>
  • 相关阅读:
    kubernetesCKA/CKS认证 日出东方
    T4模板引擎 参数调用
    swagger url调整
    mysql8修改密码
    vs插件开发 驼峰示例
    .net5 swagger 枚举注释
    .net5 swagger添加复制链接
    dapper
    vs 配置快捷发布nuget包到指定远程库
    jenkins 脚本安装多个插件 git提交后自动部署
  • 原文地址:https://www.cnblogs.com/sspeng/p/6440850.html
Copyright © 2020-2023  润新知