如何使用 CSS 居中 div 元素?


使用 CSS 居中 div 元素是前端开发中最重要的方面之一,可以通过多种 CSS 属性实现。

在本文中,我们使用了 5 种方法来使用 CSS 居中 div。我们有一些父 div 元素和一些子 p 元素,我们的任务是使用 CSS 居中 div 元素。

使用 CSS 居中 div 元素的方法

以下列出了本文将讨论的使用 CSS 居中 div 元素的方法,并附带分步说明和完整的示例代码。

使用 margin 属性居中 div

在这种方法中,我们使用了 margin 属性来使用 CSS 居中 div。CSS margin 属性在元素的外围创建空间。此方法水平居中 div。

  • 我们使用了 “margin-left: auto;” 和 “margin-right: auto;” 属性,它们将左右边距设置为自动,从而使 div 居中。
  • 我们使用了 “margin-inline: auto;” 属性,它是 margin-left 和 margin-right 属性的替代方法。

示例

这是一个完整的示例代码,实现了上述使用 margin 属性使用 CSS 居中 div 的步骤。

<html>
<head>
    <title>
        Center a div using margin Properties
    </title>
    <style>
        div {
            border: 2px solid green;
            padding: 10px;
        }
        .ele {
            width: 100px;
            height: 100px;
            background-color: rgb(109, 224, 244);
        }
        .ele1 {
            margin-left: auto;
            margin-right: auto;
        }
        .ele2 {
            margin-inline: auto;
        }
    </style>
</head>
<body>
    <h3>
        Center a div using margin properties.
    </h3>
    <h4>Using margin-left and margin-right Property</h4>
    <div class="ele ele1">
    </div>
    <br>
    <h4>Using margin-inline Property</h4>
    <div class="ele ele2">
    </div>
</body>
</html>

使用 flex 属性居中 div

在这种方法中,我们使用了 CSS flex 属性来居中 div。我们将在示例 1 中居中单个 flex 项目,并在示例 2 中居中多个 flex 项目。

  • 我们使用了 “display: flex;” 来创建弹性容器。
  • 我们使用了 “justify-content: center;” 来水平居中 div。
  • 我们使用了 CSS height 属性来设置 div 的高度,并使用 “align-items: center;” 垂直居中 div。
  • 对于对齐多个项目,我们使用了 “flex-direction: column;” 属性,它垂直显示 flex 项目。

示例 1

在此示例中,我们使用 justify-content 和 align-items 属性居中了一个 div。

<html>
    <head>
        <title>
            Center a div using flex property
        </title>
        <style>
            .container {
                display: flex;
                justify-content: center;
                align-items: center;
                height: 100vh;
            }
            .item {
            border: 2px solid green;
            width: 100px;
            height: 100px;
            background-color: rgb(109, 224, 244);
            }
        </style>
    </head>
    <body>
        <h3>
            Center single div item using 
            flex properties.
        </h3>
        <p>
            We have used justify-content to center the 
            item horizontally and align-items to center the 
            item vertically.
        </p>
        <div class="container">
            <p class="item"></p>
        </div>
    </body>
</html>

示例 2

在此示例中,我们居中了多个 flex 项目,并使用 flex-direction:column 垂直显示它们。还可以使用 flex-direction 的其他属性值,如 **row**、**row-reverse** 和 **column-reverse**。

<html>
<head>
    <title>
        Center a div using CSS properties
    </title>
    <style>
        .container {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .item {
            padding:10px;
            background-color: #04af2f;
            color: white;
            margin: 2px;
            text-align: center;
            letter-spacing: 1px;
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <h3>
        Center Multiple Items Using flex Property.
    </h3>
    <p>
        We have used flex-direction property to 
        display items vertically.
    </p>
    <div class="container">
        <div class="item">Item 1</div>
        <div class="item">Item 2</div>
        <div class="item">Item 3</div>
    </div>
</body>
</html>

使用 grid 属性居中 div

在这种方法中,我们使用了三种不同的 CSS grid 布局来居中 div 元素,如下所示。CSS grid 布局非常适合创建网页的整体布局。

使用 place-items 属性

我们使用了 “place-items: center;” 来居中 div。它可以被视为 **align-items** 和 **justify-content** 属性的简写属性。

示例

这是一个完整的示例代码,实现了上述使用 CSS place-items 属性居中 div 的步骤。

<html>
<head>
    <title>
        Center a div using CSS properties
    </title>
    <style>
        .container {                      
            display: grid;
            place-items: center;
            height: 100vh;
        }
        .item {
            border: 2px solid green;
            padding: 10px;width: 100px;
            height: 100px;
            background-color: rgb(109, 224, 244);
        }
    </style>
</head>
<body>
    <h3>
        Center item using grid properties.
    </h3>
    <p>
        We have used CSS <strong>place-items
        </strong> property to center the div.
    </p>
    <div class="container">
        <p class="item"></p>
    </div>
</body>
</html>

使用 grid-row 和 grid-column 属性

我们使用了 grid-rowgrid-column 属性来居中 div。我们使用了以下步骤来居中 div

  • 我们使用了 “grid-template-rows” 和 “grid-template-columns” 定义了三行三列,其中第一行和第三行以及第一列和第三列占据可用空间的一部分,第二行和第二列设置为自动。
  • 我们使用了 “grid-row: 2;” 将 div 放置在网格的第二行。
  • 我们使用了 “grid-column: 2;” 将 div 放置在网格的第二列。

示例

这是一个完整的示例代码,实现了上述使用 CSS grid-row 和 grid-column 属性居中 div 的步骤。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Center Div with CSS Grid</title>
    <style>
        .container {
            display: grid;
            grid-template-rows: 1fr auto 1fr;
            grid-template-columns: 1fr auto 1fr;
            height: 100vh;
        }
        .item {
            grid-row: 2;
            grid-column: 2;
            width: 100px;
            height: 100px;
            background-color: rgb(109, 224, 244);
            border: 2px solid green;
        }
    </style>
</head>
<body>
    <h3>
        Center Item Using grid Property.
    </h3>
    <p>
        We have used CSS <strong> grid-row
        </strong> and <strong>grid-column
        </strong> property to center the div.
    </p>
    <div class="container">
        <p class="item"></p>
    </div>
</body>
</html>

使用 place-self 属性

我们使用了 place-self 属性,它可以水平和垂直居中 div。它可以用作 align-self 和 justify-self 属性的简写属性。

示例

这是一个完整的示例代码,实现了上述使用 CSS place-self 属性居中 div 的步骤。

<!DOCTYPE html>
<html lang="en">
<head>
    <title>
        Center div using place-self
    </title>
    <style>
        .container {
            display: grid;
            height: 100vh;
        }
        .item {
            place-self: center;
            width: 100px;
            height: 100px;
            background-color: rgb(109, 224, 244);
            border: 2px solid green;
        }
    </style>
</head>
<body>
    <h3>
        Center Item Using grid Property.
    </h3>
    <p>
        We have used CSS <strong>place-self
        </strong> property to center the div.
    </p>
    <div class="container">
        <div class="item"></div>
    </div>
</body>
</html>

在视口中居中 div

在这种方法中,我们居中了不在 div 容器内的 div 元素。

  • 我们使用了 “position:fixed” 属性来固定视口中的 div。
  • 然后,我们使用了 “inset: 0px;” 属性,它是设置 CSS topleftrightbottom 属性的简写属性。
  • 最后,我们使用了 “margin: auto;” 属性,它与上述两个属性一起居中 div 元素。

示例

这是一个完整的示例代码,实现了上述在视口中居中 div 的步骤。

<html>
<head>
    <title>
        Center a div using CSS properties
    </title>
    <style>
        .container {
            position: fixed;
            width: 10rem;
            height: 5rem;
            background-color: rgb(109, 224, 244);
            border: 2px solid green;
            inset: 0px;
            margin: auto;
            padding:5px;
        }
    </style>
</head>
<body>
    <h3>
        Centering item inside viewport.
    </h3>
    <div class="container">
    </div>
</body>
</html>

使用 CSS 属性居中文本

在这种方法中,我们使用了上述方法来居中 flex 项目,并使用 text-align 属性将文本内容放置在中央。

  • 我们使用了 “text-align: center;” 来居中 div 内的文本,并使用上述方法使用 flex 属性居中 div。

示例

这是一个完整的示例代码,实现了上述使用 CSS text-align 属性居中文本的步骤。

<html>
    <head>
        <title>
            Centering text
        </title>
        <style>
            .container {
                display: flex;
                justify-content: center;
                align-items: center;
                height: 100vh;
                text-align: center;
            }
            p {
            border: 2px solid green;
            padding: 10px;
            width: 150px;
            }
        </style>
    </head>
    <body>
        <h3>
            Center Text with flex box
            Using text-align Property.
        </h3>
        <div class="container">
            <p>
                In this example, we have placed  
                text at the center along with the div.
            </p>
        </div>
    </body>
</html>

结论

使用 CSS 居中 div 是一项重要的任务,也是一个非常简单的过程,可以通过多种 CSS 属性实现。在本文中,我们使用了五种方法,分别是使用 **margin** 属性、使用 **flex** 属性、使用 **grid** 布局、在视口中居中以及最后使用 **text-align** 属性居中文本。可以根据用户的需求使用任何一种方法。

更新时间: 2024年8月8日

12K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告