Home  >  Article  >  Web Front-end  >  How to implement responsive layout in css

How to implement responsive layout in css

青灯夜游
青灯夜游Original
2021-05-13 13:56:0813424browse

How to implement responsive layout in css: 1. Use flex layout, which has the advantages of simple code and convenient layout; 2. Use absolute layout, combined with media to achieve responsive layout; 3. Use grid layout, which has the advantages It is easy to write; 4. Use float layout, which has the advantage of better compatibility.

How to implement responsive layout in css

The operating environment of this tutorial: Windows 7 system, CSS3&&HTML5 version, Dell G3 computer.

A brief introduction to the four ways of responsive layout

Total html code

<body>
    <div class="box">
        <div class="left">left</div>
        <div class="center">中间</div>
        <div class="right">right</div>
    </div>
</body>

flex Layout

.box{
    width: 100%
    height: 100px;
    display: flex;
}
.left{
    width: 300px;
    background-color: purple;
}
.center{
    flex: 1;
    background-color: pink;
}
.right{
    width: 300px;
    background-color: burlywood;
}

Advantages

  • Simple code and convenient layout

Disadvantages

  • If there is content in the middle, it will not be smaller when reduced to the minimum
  • And the width of the left and right sides will become smaller

How to implement responsive layout in css

Absolute layout

.box{
    position: relative;
    width: 100%;
    height: 100px;
}
.left{
    position: absolute;
    left: 0px;
    width: 300px;
    background-color: pink;
}
.right{
    position: absolute;
    right: 0px;
    width: 300px;
    background-color: pink;
}
.center{
    position: absolute;
    left: 300px;
    right: 300px;
    background-color: burlywood;
}
@media (max-width: 600px){
    .left,.right{
       /* 平分屏幕 */
        width: 50%;
    }
}

Advantages

  • Responsive layout can be achieved by using media in combination

Disadvantages

  • The code writing is complicated and the layout is cumbersome
  • If you do not use media to divide the screen equally, and the width is less than 600, the right side will cover the left side

grid layout

.box{
    display: grid;
    grid-template-columns: 300px 1fr 300px;
    grid-template-rows: 100px;
}
.left,.right{
    background-color: pink;
}
.center{
    background-color: burlywood;
}

Advantages

  • Easy to write

Disadvantages

  • When there is content in the middle, it cannot continue to shrink
  • The width will be fixed. When the width of the web page is smaller than the fixed width, the bottom can be slid
    How to implement responsive layout in css

float layout

The floating flow needs to change the right and center positions

<div class="box">
    <div class="left">left</div>
    <div class="right">right</div>
    <div class="center">center</div>
</div>
rrree

Advantages

  • Relatively simple, good compatibility

Disadvantages

  • Two blocks floating in the same row need to be in order Write them together (i.e. the p's of left and right are written in order
  • After the compression becomes smaller, a line break is generated
  • The middle content will not disappear
    How to implement responsive layout in css

Solution

.box{
    height: 200px;
}
.left{
    float: left;
    width: 300px;
    background-color: pink;
}
.right{
    float: right;
    width: 300px;
    background-color: pink;
}
.center{
    margin:0 300px;
    background-color: burlywood;
}

The third problem

  • Flex layout can expand the height of the parent element based on any internal height
  • grid layout can also expand the height of the parent element according to any internal height

Learning video sharing:css video tutorial

The above is the detailed content of How to implement responsive layout in css. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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