美文网首页前端Cssh5面试HTML+CSS+JS基础
使用css实现垂直居中的方法总结

使用css实现垂直居中的方法总结

作者: 七分暖 | 来源:发表于2021-10-24 21:35 被阅读0次

写在前面的话:

在编写html页面的时候最常考虑的就是应该是类的命名吧,其次就是该使用怎样的布局方式使得页面的适应性比较高。居中在页面布局中是最常用的布局之一了,根据度娘和本人开发经验总结出以下三种可用性比较高的居中方案,如有补充请在评论区留言指正。话不多说开搞!

正文

1.第一种:

使用 position:absolut+transform 实现垂直居中

<style>
    .parent{
                width: 100%;
                height: 500px;
                border: #008000 1px solid;
                position: relative;
                margin-bottom: 10px;
            }
            .content{
                width: 100px;
                height: 100px;
                border: #ccc 1px solid;
            }
            .content1{
                background-color: #1effcc;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translateY(-50%) translateX(-50%);
            }
</style>
    <div class="parent">
            <div class="content content1">
            position:absolut+transform
            </div>
        </div>
效果图如下: 1285342-20200811150818882-2102128730.png

重点是将父类元素的position设置为relative,再将子元素的position设置为absolute,之后进行绝对定位(top:50%,left:50%),最后通过使用transform对元素进行修正位置,使得元素处于居中的位置。

2.第二种:

<style>
    body{
                height: 100%;
                width: 100%;
                overflow-x: hidden;
            }
            .parent{
                width: 100%;
                height: 500px;
                border: #008000 1px solid;
                position: relative;
                margin-bottom: 10px;
            }
            .content{
                width: 100px;
                height: 100px;
                border: #ccc 1px solid;
            }
            .content2{
                background-color: #11d5ff;
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                margin: auto;
            }
</style>
    <div class="parent">
            <div class="content content2">
                <span>
                position:
                absolut
                +
                margin
                </span>
            </div>
        </div>
该方法同样可以得到居中的效果,其重点也是父类元素(.parent)的元素position设置为relative,子类设置为absolute,与第一种方式不同的是使用margin:auto 属性使得元素居中,值得一提的是top属性和bottom属性的值要一样,right和left的值要一样,这样才能保证元素

居中,为了方便都设置为0。

3.第三种:

使用vertical-align: middle;display: inline-block;

<style>
    body{
                height: 100%;
                width: 100%;
                overflow-x: hidden;
            }
            .parent{
                width: 100%;
                height: 500px;
                border: #008000 1px solid;
                position: relative;
                margin-bottom: 10px;
            }
.content{
                width: 100px;
                height: 100px;
                border: #ccc 1px solid;
                background: #FFA500;
            }
.parent2{
                text-align: center;
                line-height: 500px;
            }
.content5{
                vertical-align: middle;
                display: inline-block;
                line-height: 18px;
            }
</style>
    <div class="parent parent2">
            <div class="content content5">
                vertical-align: middle;
                display: inline-block;
            </div>
        </div>

将子类元素(.content)display设置inline-block 父类元素使用line-height的方式(设置line-height的高度为.parent 父类元素的高度)使得在垂直上对齐。

3.第四种:

使用flex布局

 <style>
         body{
         height: 100%;
         width: 100%;
         overflow-x: hidden;
         }
         .parent{
         width: 100%;
         height: 500px;
         border: #008000 1px solid;
         position: relative;
         margin-bottom: 10px;
         }
         .content{
         width: 100px;
         height: 100px;
         border: #ccc 1px solid;
         background: #FFA500;
         }
         .parent2{
        
            display: flex;
            align-items: center;
            justify-content: center;
         line-height: 500px;
         }
         .content5{
         vertical-align: middle;
         display: inline-block;
         line-height: 18px;
         }
    </style>
      <div class="parent parent2">
          <div class="content content5">
              display: flex;
              align-items: center;
              justify-content: center;
          </div>
      </div>

相关文章

  • css实现水平垂直居中的方法总结

    css实现水平垂直居中的方法总结 实现水平垂直居中你有多少种方法?这是前端面试必考题啊!-=- 这段时间公司招前端...

  • 页面中垂直居中的几种实现方法

    页面中垂直居中的几种方法: 1. 通过使用absolute定位来实现垂直居中 HTML: CSS: 2. 使用t...

  • 垂直居中

    垂直居中是我们在使用css做页面时常见的需求,以下列举几种垂直居中的实现方法: 1. 使用父元素内边距设置实现居中...

  • CSS解决盒模型居中的问题

    CSS实现盒子模型水平居中、垂直居中、水平垂直居中的多种方法 CSS实现盒子模型水平居中的方法 全局样式 第一种:...

  • Flexbox实现元素的水平居中和垂直居中

    网上有N种方法实现元素的水平居中和垂直居中,如CSS制作水平垂直居中对齐,这些方法各有各的优缺点。在这里,我们使用...

  • 【css图片垂直居中】让html img图片垂直居中的三种方法

    一、使用flex实现垂直居中 利用css flex实现垂直居中。flex可能不是实现垂直居中最好的选择,因为IE8...

  • CSS水平垂直居中总结

    CSS水平居中、垂直居中、水平垂直居中方法总结 文字的水平居中: 单行文字的垂直居中: 让有宽度的div水平居中:...

  • 垂直居中的这点事

    标签(空格分隔): css 垂直居中浮动元素 垂直居中元素,在布局中经常使用,总结一下: 方法一:已知元素的高宽 ...

  • Css让div在屏幕上居中

    # 让div在屏幕上居中(水平居中+垂直居中)的方法总结 - html代码如下: - Css居中方法 (敲黑板)...

  • CSS垂直水平居中总结

    css实现垂直水平居中的方法多种,各种方法各有优劣,查阅网上资料,自己总结于此,方便日后应用。 1. 绝对定位居中...

网友评论

    本文标题:使用css实现垂直居中的方法总结

    本文链接:https://www.haomeiwen.com/subject/qeydaltx.html