最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 【不一样的CSS】实现垂直布局的 8 种方式

    正文概述 掘金(彼岸繁華)   2021-05-19   590

    【不一样的CSS】实现垂直布局的 8 种方式

    写在前面

    对 CSS 布局掌握程度决定你在 Web 开发中的开发页面速度。随着 Web 技术的不断革新,实现各种布局的方式已经多得数不胜数了。

    最近利用碎片时间,大概用了半个月的时间整理了一个系列,本系列文章总结了 CSS 中的各种布局,以及实现方式及其常用技巧。让你通过该系列文章对 CSS 布局有一个新的认识。

    该系列的导航帖点我进入,里面可以快速跳转到你想了解的文章(建议收藏)

    实现垂直布局的 8 种方式

    1. 单行文本垂直居中

    若文本为单行文本的话,直接使用 line-height 等于父元素的高度即可实现。示例代码如下:

    HTML 代码

    <div class="text">这是一个需要居中的测试文本</div>
    

    CSS 代码

    .text {
      height: 200px;
      font-size: 3rem;
      font-weight: bold;
      background-color: #ff8787;
      text-align: center;
      /* 通过 line-height 等于元素高度即可完成文字垂直居中 */
      line-height: 200px;
    }
    

    执行结果如下:

    【不一样的CSS】实现垂直布局的 8 种方式

    2. 行内块级元素垂直居中

    若元素是行内块级元素, 基本思想是子元素使用 display: inline-block, vertical-align: middle 并让父元素行高等同于高度。示例代码如下所示:

    HTML 代码

    <div class="parent">
      <div class="child"></div>
    </div>
    

    CSS 代码

    .parent {
      height: 500px;
      width: 300px;
      margin: 0 auto;
      background-color: #ff8787;
      /* 为父级容器设置行高 */
      line-height: 500px;
    }
    .child {
      width: 300px;
      height: 300px;
      /* 将子级元素设置为 inline-block 元素 */
      display: inline-block;
      /* 通过 vertical-align: middle; 实现居中 */
      vertical-align: middle;
      background-color: #91a7ff;
    }
    

    执行结果如下

    【不一样的CSS】实现垂直布局的 8 种方式

    3. 使用 position + top + height + -margin 实现垂直居中

    top: 50%; margin-top: 等于负的高度的一半 就可以实现垂直居中,示例代码如下:

    HTML 代码

    <div class="parent">
      <div class="child"></div>
    </div>
    

    CSS 代码

    .parent {
      height: 500px;
      width: 300px;
      margin: 0 auto;
      background-color: #ff8787;
      /* 为父级容器开启相对定位 */
      position: relative;
    }
    .child {
      width: 300px;
      height: 300px;
      background-color: #91a7ff;
      position: absolute;
      top: 50%;
      /* margin-top: 等于负高度的一半 */
      margin-top: -150px;
    }
    

    执行结果同上

    4. 使用 position + top + bottom + height + margin 实现垂直居中

    topbottom 将子元素拉伸至 100%,设置指定的高度,通过 margin:auto; 即可实现垂直居中,示例代码如下:

    HTML 代码

    <div class="parent">
      <div class="child"></div>
    </div>
    

    CSS 代码

    .parent {
      height: 500px;
      width: 300px;
      margin: 0 auto;
      background-color: #ff8787;
      /* 为父级容器开启相对定位 */
      position: relative;
    }
    .child {
      width: 300px;
      height: 300px;
      background-color: #91a7ff;
      position: absolute;
      /* 垂直拉满 */
      top: 0;
      bottom: 0;
      /* margin: auto 即可实现 */
      margin: auto;
    }
    

    执行结果同上

    5. 使用 position + top + transform 实现垂直居中

    通过 top:50%;translateY(-50%) 即可实现。

    HTML 代码

    <div class="parent">
      <div class="child"></div>
    </div>
    

    CSS 代码

    .parent {
      height: 500px;
      width: 300px;
      margin: 0 auto;
      background-color: #ff8787;
      /* 为父级容器开启相对定位 */
      position: relative;
    }
    .child {
      width: 300px;
      height: 300px;
      background-color: #91a7ff;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
    }
    

    执行结果同上

    6. 使用 border-box + padding 实现垂直居中

    使用这种方式存在局限性,padding-top/bottom 各占剩余高度的一半即可实现,这里不做代码展示了,开发实际中用的很少。

    7. 使用 Flex 实现垂直居中

    使用 Flex 实现一个垂直居中非常的容器,具体代码如下:

    CSS 代码

    .parent {
      height: 500px;
      width: 300px;
      margin: 0 auto;
      background-color: #ff8787;
      /* 开启 flex 布局 */
      display: flex;
      /* 方法一 */
      /* align-items: center; */
    }
    .child {
      /* 方法二 */
      margin: auto;
      width: 300px;
      height: 300px;
      background-color: #91a7ff;
    }
    

    HTML 代码和效果图同上

    8. 使用 Grid 实现垂直居中

    开启 Grid 布局也也可以实现居中效果,不过仅仅实现一个居中就有点大材小用了。示例代码如下:

    CSS 代码

    .parent {
      height: 500px;
      width: 300px;
      margin: 0 auto;
      background-color: #ff8787;
      display: grid;
      /* 方法一 */
      /* align-items: center; */
      /* 方法二 */
      /* align-content: center; */
    }
    .child {
      /* 方法三 */
      /* margin: auto; */
      /* 方法四 */
      align-self: center;
      width: 300px;
      height: 300px;
      background-color: #91a7ff;
    }
    

    HTML 代码和效果图同上

    总结

    【不一样的CSS】实现垂直布局的 8 种方式


    起源地下载网 » 【不一样的CSS】实现垂直布局的 8 种方式

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元