Расположение текста и изображения по центру по горизонтали с использованием позиции: относительная - PullRequest
0 голосов
/ 09 апреля 2019

Мне было интересно, как я могу расположить текст по центру по горизонтали. По центру горизонтально с изображением. Я не хочу использовать атрибут position: absolute. Это связано с тем, что длина правого и левого текста может изменяться и иметь абсолютный атрибут, вам нужна фиксированная ширина / размер.

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>

Ответы [ 4 ]

1 голос
/ 09 апреля 2019

Вы можете использовать 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>
0 голосов
/ 09 апреля 2019

Вам действительно нужно обернуть элемент right-text, icon и left-text в childContainer, а затем обернуть элемент childContainer в parentContainer 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>

Далее,Вы должны применить FlexBox со значением center justify-content и align-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>
0 голосов
/ 09 апреля 2019

Привет Если вы хотите выровнять по вертикали, вот обновленный фрагмент

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>
0 голосов
/ 09 апреля 2019

Вы можете просто добавить контейнер flexbox и установить его свойство align-items to center.

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

А это контейнер класса:

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