Задать вопрос
@vanyproduction

Как сделать div самовыравнивающимся по центру вне зависимости от контента?

Здравствуйте.
Имеется код:
<div>
Some text
</div>

div {
    margin:0 auto;
}

у родителя ширина 100%.
Как сделать ширину нашего дива с текстом зависимой от самого текста? Т.е. чтобы можно было добавлять стили background, padding и получилось а ля окошко.
*пока пользуюсь display:inline-block; но из-за этого те блоки, что рядом - лезут в ряд, предсказуемо, но тем не менее это костыль и мне это не нравится. Вот и подумал что должно быть более простое решение без фиксированного width

=== Выводы ===
Самый правильный вариант пока (по подсказке Романа)
<div>
    <div class="content">
        Some text
    </div>
</div>

.content {
    display:inline-block;
}

====upd Более понятный вариант (by Андрей)

<div class="content">
    Some text
</div>

.content {
    display:table;
    margin-left:50%;
    transform:translateX(-50%);
}
  • Вопрос задан
  • 251 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 2
standy
@standy
html и css сегодня — веселье и радость.
Вот так всё делается без обертывания:
codepen.io/standys/pen/yywPvy
.content {
  display: table;
  margin-left: 50%;
  transform: translateX(-50%);
}


С поддержкой браузерами более-менее ладно — работает в ИЕ начиная с 9.
caniuse.com/#search=transform

upd: подправил пример, вместо inline-block -> table
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
65536
@65536
Даю свой ответ и присоединяюсь к вопросу

.center {
    text-align: center;
    width: 100%;
}

.c {
    display: inline-block;
    text-align: left;
}

<div class="center">
    <div class="c">
        <div class="abc">123</div>
        <div class="klmn">any klmn content</div>
    </div>
</div>


вот такой вариант. пашет 100% во всех случаях. оба дива становятся шириной 100% от ширины контейнера, в котором лежит div.center, а то что находится внутри div.c, какой бы оно ни было ширины гарантированно центрируется относительно центра div.c. работает 100%, проверено электроникой. и меня интересует нет ли способа покомпактней и поизящней без обертывания дивами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы