使用 position: relative 将文本和图像定位为水平居中

Positioning text and image as centered horizontally using position: relative

我想知道如何将文本水平居中放置。与图像水平居中。我不想使用 position: absolute 属性。这是因为左右文字的长度是可以改变的,要有一个绝对属性,就需要一个固定的width/size.

body {
    padding: 0;
    margin: 0;
}

.right-text {
    position: relative;
    display: inline-block;
    font-family: arial;
    font-size: 13px;
}

.icon {
    position: relative;
    display: inline-block;
    width: 32px;
    height: 32px;
    background: url("https://i.imgur.com/VXlnn8a.png");
}

.left-text {
    position: relative;
    display: inline-block;
    font-family: arial;
    font-size: 13px;
    font-weight: 700;
}
<div class="right-text">Right</div><div class="icon"></div><div class="left-text">Left</div>

您只需添加一个 flexbox 容器并将其 属性 对齐项目设置为居中即可。

<div class="container">
  <div class="right-text">Right</div>
  <div class="icon"></div>
  <div class="left-text">Left</div>
</div>

这是 class 容器:

.container{
  display: flex;
  align-items: center;
  justify-content: center;
}

您好,如果您想要垂直对齐,这里是更新后的代码段

body {
    padding: 0;
    margin: 0;
}

.right-text {
    position: relative;
    display: inline-block;
    font-family: arial;
    font-size: 13px;
}

.icon {
    position: relative;
    display: inline-block;
    width: 32px;
    height: 32px;
    background: url("https://i.imgur.com/VXlnn8a.png");
    top: 10px;
    margin: 0 5px;
}

.left-text {
    position: relative;
    display: inline-block;
    font-family: arial;
    font-size: 13px;
    font-weight: 700;
}
<div class="right-text">Right</div><div class="icon"></div><div class="left-text">Left</div>

您可以使用 flexbox 将项目水平居中对齐,方法是将以下代码添加到父级 div

.parent{
   display:flex;
   align-items: center;
}

这是具有此更改的代码的 运行 片段

   

    

    body{
           padding: 0;
           margin: 0;
           font-family: arial;
        }  
.content{
       display: flex;
       align-items: center;
    }

.right-text {
        font-size: 13px;
    }

    .icon {
        width: 32px;
        height: 32px;
        background: url("https://i.imgur.com/VXlnn8a.png");
    }

.left-text {
        font-size: 13px;
        font-weight: 700;
    }
        <div class="content">
           <div class="right-text">Right</div>
           <div class="icon"></div>
           <div class="left-text">Left</div>
        </div>

您实际上需要将 right-texticonleft-text 元素包装在 childContainer 中,然后将 childContainer 元素包装在 [=18= 中] wrap.

<div class="parentContainer">
  <div class="childContainer">
    <div class="right-text">Right</div><div class="icon"></div><div class="left-text">Left</div>
  </div>
</div>

接下来,您必须应用 FlexBoxcenter justify-contentalign-items 值,您还需要添加 height: 100vh.提到的更改应用于下面的代码片段。试试这个我希望它能帮助你。谢谢

body {
    padding: 0;
    margin: 0;
}

.right-text {
    position: relative;
    display: inline-block;
    font-family: arial;
    font-size: 13px;
}

.icon {
    position: relative;
    display: inline-block;
    width: 32px;
    height: 32px;
    background: url("https://i.imgur.com/VXlnn8a.png");
}

.left-text {
    position: relative;
    display: inline-block;
    font-family: arial;
    font-size: 13px;
    font-weight: 700;
}

.parentContainer {
  display: flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
}
<div class="parentContainer">
  <div class="childContainer">
    <div class="right-text">Right</div><div class="icon"></div><div class="left-text">Left</div>
  </div>
</div>