2014-10-31 2 views
0

У меня есть h2, который абсолютно размещен внутри родителя div, который также абсолютно расположен. Родительский div имеет максимальную ширину 350 пикселей и то, что я хотел бы сделать, - это центр h2 внутри него. Я не хочу устанавливать left:0 и right:0 на h2, так как это растягивается, чтобы заполнить максимальную ширину 350 пикселей, вместо этого я хочу, чтобы h2 увеличивался в ширину, если добавлено больше контента. Абсолютное позиционирование h2 является требованием.Центральное положение абсолютный элемент внутри положение абсолютный родитель с максимальной шириной

Codepen: http://codepen.io/styler/pen/mAyIt

CSS

.tt { 
    max-width: 350px; 
    min-height: 45px; 
    text-align: center; 
    position: absolute; 
    left: 0; 
    right: 0; 
    background: #8F9924; 

    .tt-content { 
    border: 2px solid black; 
    background: #ACC95F; 
    position: absolute; 
    bottom: 0; 
    padding: 5px 10px; 
    } 
} 

HTML

<div class="tt"> 
    <h2 class="tt-content">This is the content.</h2> 
</div> 
+0

Почему абсолютное позиционирование требование? Вы не можете делать то, что вам нужно, с абсолютной позицией, но у вас есть много других способов сосредоточиться. – Tudmotu

+0

Если ваш текст будет всегда одной строкой, вы можете попробовать это http://codepen.io/anon/pen/boHlC – DaniP

+0

Эй, почему он должен быть абсолютным положением, потому что текст будет динамически изменяться, но каждый раз вырастает из внизу каждый раз, когда берется новая линия, означающая, что она должна быть привязана к основанию. Надеюсь, что это достаточно ясно – styler

ответ

0

центр абсолютно позиционированный элемент, как это:

Предположим 500px ширина элемента:

#heading { 
    margin-left: 50%; 
    left: -250px;/* negative half-width */ 

} 

UPDATE: К сожалению, следует уплатили больше внимания на этот вопрос.

Если вам нужна динамическая ширина, тогда рассмотрите относительное позиционирование. Затем просто используйте text-align:center; для родителя.

UPDATE 2: Вам также понадобится это на вашем элементе H2: display:inline-block; Это позволит сохранить ширину div с содержимым ребенка.

+0

@ Danko Спасибо, что указали это. Моя вина. Ответ обновлен. –

0

попробовать это

h2{ 
width: 100%; 
position: absolute; 
left: 50%; 
margin-left: -50%; 
} 
Смежные вопросы