Как центрировать элемент <p>внутри контейнера <div>?

Я хочу, чтобы мой элемент <p> находился в центре контейнера <div>, как в идеально центрированном - верхнее, нижнее, левое и правое поля разбивали пространства одинаково.

Как я могу это достичь?

div {
  width: 300px;
  height: 100px;
}
p {
  position: absolute;
  top: auto;
}
<div>
  <p>I want this paragraph to be at the center, but it not.</p>
</div>

Ответы

Ответ 1

Вам не нужно абсолютное позиционирование Используйте

p {
 text-align: center;
line-height: 100px;

}

И настройте по желанию...

Если текст превышает ширину и проходит более одной строки

В этом случае вы можете настроить, чтобы включить свойство отображения в свои правила следующим образом:

(я добавил фон для лучшего представления примера)

div
{
  width:300px;
  height:100px;  
  display: table; 
  background:#ccddcc;  
}


p {
  text-align:center; 
  vertical-align: middle;
  display: table-cell;   
}

Играйте с этим в JBin

enter image description here

Ответ 2

Чтобы получить центрирование влево/вправо, примените text-align: center к div и margin: auto к p.

Для вертикального позиционирования вы должны убедиться, что понимаете разные способы сделать это, это часто задаваемая проблема: Вертикальное выравнивание элементов в div

Ответ 3

♣ вы должны сделать следующие шаги:

  • элемент должен позиционировать (для EXP вы можете указать его позицию: relative;)
  • дочерний элемент должен располагать " Абсолютный", а значения должны быть такими: top: 0; buttom: 0; right: 0; left: 0; (быть средним по вертикали)
  • для дочернего элемента вы должны установить " margin: auto" (чтобы быть средним по вертикали)
  • дочерний и материнский элемент должен иметь значение "высота" и "ширина"
  • для материнского элемента = > text-align: center (чтобы быть средним по горизонтали)

♣♣ просто вот итог этих 5 шагов:

.mother_Element {
    position : relative;
    height : 20%;
    width : 5%;
    text-align : center
    }
.child_Element {
    height : 1.2 em;
    width : 5%;
    margin : auto;
    position : absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    }

Ответ 4

Центрированный и средний контент?

Сделайте это так:

<table style="width:100%">
    <tr>
        <td valign="middle" align="center">Table once ruled centering</td>
    </tr>
</table>

I воспроизвел его здесь

Ха, позвольте мне угадать.. вы хотите DIVs..

просто сделайте, чтобы ваш первый наружный DIV вел себя как таблица-ячейка, а затем стирайте его вертикальным выравниванием: посередине;

<div>
    <p>I want this paragraph to be at the center, but I can't.</p>
</div>

div {
    width:500px;
    height:100px;
    background-color:aqua;
    text-align:center;
    /*  there it is */
    display:table-cell;
    vertical-align:middle;
}

jsfiddle.net/9Mk64/

Ответ 5

Вам нужно добавить text-align: center в <div>

В вашем случае также удалите оба стиля, добавленные в ваш <p>.

Посмотрите демо здесь: http://jsfiddle.net/76uGE/3/

Удача