Detailed explanation of the conflict between flex layout and position:absolute/fixed

Detailed explanation of the conflict between flex layout and position:absolute/fixed

I encountered this problem before when developing a project, the conflict between flex layout and position:absolute/fixed. Later I thought of a solution, and today I will share it with you:

Project Practice:

We now want to make a navigation bar at the top, and want to use fixed to fix it at the top, and want to use flexible box layout to set its internal style, but we find that the flexible box layout has failed.

The HTML code is as follows:

<ul>
    <li>About the Association</li>
    <li>Association Charter</li>
    <li>Association Structure</li>
    <li>Downloads</li>
</ul>

The CSS code is as follows:

ul {
	position: fixed;
  	display: flex;
    justify-content: space-between;
    margin: 0 15px;
    background: pink;
}
li {
    flex: 1;
    list-style: none;
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    border: 1px solid #fff;
}

The effect is as follows:


We can find that the flexible box layout has failed, so how do we solve this problem?
It’s actually very simple. You just need to put another box outside the ul. The outer box is then positioned and the inner box is laid out normally using flexbox.

The HTML code after the change is:

<div class="nav-box">    
    <ul>
        <li>About the Association</li>
        <li>Association Charter</li>
        <li>Association Structure</li>
        <li>Downloads</li>
    </ul>
</div>

The CSS code after the change is:

.nav-box {
    width: 100%;
    position: fixed; 
}
ul {
    display: flex;
    justify-content: space-between;
    margin: 0 15px;
    background: pink;
}
li {
    flex: 1;
    list-style: none;
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    border: 1px solid #fff;
}

At this time we found that the problem has been solved!

This is the end of this article on the conflict between flex layout and position:absolute/fixed. For more information about the conflict between flex and position:absolute/fixed, please search previous articles on 123WORDPRESS.COM or continue to browse the related articles below. I hope you will support 123WORDPRESS.COM in the future!

<<:  Introduction to basic concepts and technologies used in Web development

>>:  Learn MySQL index pushdown in five minutes

Recommend

About dynamically adding routes based on user permissions in Vue

Display different menu pages according to the use...

Detailed graphic explanation of how to use svg in vue3+vite project

Today, in the practice of vue3+vite project, when...

Vue implements Dialog encapsulation

Table of contents Vue2 Writing Vue3 plugin versio...

HTML page jump and parameter transfer issues

HTML page jump: window.open(url, "", &q...

Make a nice flip login and registration interface based on html+css

Make a nice flip login and registration interface...

Linux loading vmlinux debugging

Loading kernel symbols using gdb arm-eabi-gdb out...

Nginx local directory mapping implementation code example

Sometimes you need to access some static resource...

How to retrieve password for mysql 8.0.22 on Mac

Mac latest version of MySQL 8.0.22 password recov...

How to use fdisk to partition disk in Linux

Commonly used commands for Linux partitions: fdis...

A brief summary of all encapsulation methods in Vue

Table of contents 1. Encapsulation API 2. Registe...

CSS to achieve horizontal lines on both sides of the middle text

1. The vertical-align property achieves the follo...