CSS adaptive layout realizes the overall centering of sub-element items and left alignment of internal items

CSS adaptive layout realizes the overall centering of sub-element items and left alignment of internal items

In daily work, we may encounter a layout like this: a parent element frame (adaptive width as the browser size) contains many buttons, and then these buttons (fixed width) need to be centered in the parent element, and the overall content of the buttons is arranged from left to right. Here is a solution, the example is as follows:

There is the following code:

<div class="wrap">
    <button class="btn">1</button>
    <button class="btn">2</button>
    <button class="btn">3</button>
    <button class="btn">4</button>
    <button class="btn">5</button>
    <button class="btn">6</button>
    <button class="btn">7</button>
</div>

The corresponding CSS is:

.wrap {
    border: 2px solid black;
    margin: 0 auto;
    padding: 10px;
    width: 40%;
}
.btn {
    outline: none;
    border: none;
    width: 180px;
    height: 30px;
    background-color: cornflowerblue;
    margin: 5px;
}

Display effect:

Display effect 1

Dynamically changing width:

Width Variation 1

As you can see, when we reduce the size of the browser window, the width of the parent element (black box) will be dynamically adjusted, and its child elements will also be dynamically arranged according to the width of the parent element. However, the button group is left-aligned in the parent container. If we want to keep the whole thing centered, we can do the following:

CSS code:

.wrap {
    border: 2px solid black;
    margin: 0 auto;
    padding: 10px;
    width: 40%;
    display: grid;
    grid-template-columns: repeat(auto-fill, 200px);
    justify-content: center;
}
.btn {
    outline: none;
    border: none;
    width: 180px;
    height: 30px;
    background-color: cornflowerblue;
    margin: 5px;
}

Set the parent element's display property to grid , set the grid column template to auto-fill, and set the width to 200px (the width here can be slightly larger than a single button element), and then set justify-content property value to center to center the content horizontally. The effect is as follows:

Display effect 2

Dynamically changing effects:

Width Variation 2

It can be seen that during the width change process, the sub-element as a whole has always remained centered.

To achieve this effect with CSS alone, I only thought of using grid. If you have other methods, please leave a message and learn together~

Tip: The compatibility of grid is not very good at present. If you need to support older browser versions, use it with caution!

compatibility

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

<<:  Detailed explanation of MySQL master-slave replication and read-write separation

>>:  How to reduce memory usage and CPU usage of web pages

Recommend

Understanding and using React useEffect

Table of contents Avoid repetitive rendering loop...

About if contains comma expression in JavaScript

Sometimes you will see English commas ",&quo...

How to implement Mysql scheduled task backup data under Linux

Preface Backup is the basis of disaster recovery....

Vue3.0 implements encapsulation of checkbox components

This article example shares the specific code of ...

Vue+thinkphp5.1+axios to realize file upload

This article shares with you how to use thinkphp5...

React implements the addition, deletion, modification and query of todolist

Table of contents Take todolist as an example The...

How to use Docker to build a pypi private repository

1. Construction 1. Prepare htpasswd.txt file The ...

Installation tutorial of mysql 8.0.11 compressed version under win10

This article shares the installation tutorial of ...

A brief discussion on several ways to implement front-end JS sandbox

Table of contents Preface iframe implements sandb...

A brief discussion on mobile terminal adaptation

Preface The writing of front-end code can never e...

How to deploy Oracle using Docker on Mac

How to deploy Oracle using Docker on Mac First in...

SQL insert into statement writing method explanation

Method 1: INSERT INTO t1(field1,field2) VALUE(v00...

A brief discussion on the semantics of HTML and some simple optimizations

1. What is semanticization? Explanation of Bing D...

MySQL index optimization: paging exploration detailed introduction

Table of contents MySQL Index Optimization Paging...