Home > Web Front-end > CSS Tutorial > Share nine pure CSS methods to achieve vertical centering

Share nine pure CSS methods to achieve vertical centering

yulia
Release: 2018-09-21 15:16:31
Original
1832 people have browsed it

This article focuses on vertical centering and mainly introduces various methods of vertical centering. I believe there is always one you need. Interested friends can refer to it. I hope it will be helpful to you.

Vertical centering is one of the very common effects in layout. In order to achieve good compatibility, the method to achieve vertical centering on the PC side is generally through absolute positioning, table-cell, negative margins, etc. . With CSS3, vertical centering for mobile terminals is more diverse.

Method 1: table-cell

html structure:

<div class="box box1">
        <span>垂直居中</span>
</div>
Copy after login

css:

.box1{
    display: table-cell;
    vertical-align: middle;
    text-align: center;        
}
Copy after login

Method 2: display :flex

.box2{
    display: flex;
    justify-content:center;
    align-items:Center;
}
Copy after login

Method 3: Absolute positioning and negative margins

.box3{position:relative;}
.box3 span{
            position: absolute;
            width:100px;
            height: 50px;
            top:50%;
            left:50%;
            margin-left:-50px;
            margin-top:-25px;
            text-align: center;
        }
Copy after login

Method 4: Absolute positioning and 0

.box4 span{
  width: 50%; 
  height: 50%; 
  background: #000;
  overflow: auto; 
  margin: auto; 
  position: absolute; 
  top: 0; left: 0; bottom: 0; right: 0; 
}
Copy after login

This method is somewhat similar to the above, but here it is centered by setting margin:auto and top, left, right, and bottom to 0. It is very magical. However, you need to determine the height of the internal elements here. You can use percentages, which is more suitable for mobile terminals.

Method 5: translate

.box6 span{
            position: absolute;
            top:50%;
            left:50%;
            width:100%;
            transform:translate(-50%,-50%);
            text-align: center;
        }
Copy after login

This is actually a transformation of method 3, and the shift is achieved through translate.

Method 6: display:inline-block

.box7{
  text-align:center;
  font-size:0;
}
.box7 span{
  vertical-align:middle;
  display:inline-block;
  font-size:16px;
}
.box7:after{
  content:&#39;&#39;;
  width:0;
  height:100%;
  display:inline-block;
  vertical-align:middle;
}
Copy after login

This method is really clever...use: after to occupy the space.

Method 7: display:flex and margin:auto

.box8{
    display: flex;
    text-align: center;
}
.box8 span{margin: auto;}
Copy after login

Method 8: display:-webkit-box

.box9{
    display: -webkit-box;
    -webkit-box-pack:center;
    -webkit-box-align:center;
    -webkit-box-orient: vertical;
    text-align: center
}
Copy after login

css3 is broad and profound and can achieve many creative effects, so it needs to be studied carefully.

Method 9: display:-webkit-box

This method inserts a div outside the content element. Set this div height:50%; margin-bottom:-contentheight;.

content clears the float and displays it in the middle.

<div class="floater"></div>  
<div class="content"> Content here </div>  
.floater {
    float:left; 
    height:50%; 
    margin-bottom:-120px;
}
.content {
    clear:both; 
    height:240px; 
    position:relative;
}
Copy after login

Advantages:

Applicable to all browsers

When there is not enough space (for example: the window is reduced) the content will not be truncated and the scroll bar will appear

Disadvantages:

The only thing I can think of is the need for additional empty elements (not that bad, another topic)

The above is the detailed content of Share nine pure CSS methods to achieve vertical centering. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template