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

Implementation steps for installing java environment in docker

This article is based on Linux centos8 to install...

innerHTML Application

Blank's blog: http://www.planabc.net/ The use...

A comparison between the href attribute and onclick event of the a tag

First of all, let's talk about the execution ...

javascript:void(0) meaning and usage examples

Introduction to void keyword First of all, the vo...

Explanation and example usage of 4 custom instructions in Vue

Four practical vue custom instructions 1. v-drag ...

Vue+Vant implements the top search bar

This article example shares the specific code of ...

Two ways to correctly clean up mysql binlog logs

mysql correctly cleans up binlog logs Preface: Th...

Example of downloading files with vue+django

Table of contents 1. Overview 2. Django Project 3...

Linux operation and maintenance basic swap partition and lvm management tutorial

Table of contents 1. Swap partition SWAP 1.1 Crea...

Detailed explanation of this pointing in JS arrow function

Arrow function is a new feature in ES6. It does n...

Steps to transfer files and folders between two Linux servers

Today I was dealing with the issue of migrating a...

Several ways to add timestamps in MySQL tables

Scenario: The data in a table needs to be synchro...

How to delete node_modules and reinstall

Table of contents Step 1: Install node_modules in...