Расположите div горизонтально по центру

Я хочу расположить div в центре экрана. Проблема в том, что когда div маленький, слева 45% выглядит нормально, но когда div длиннее (то есть больше ширины), мне нужно сделать его слева 30%

Есть ли разумный способ разместить div в центре в зависимости от размера div.

body {
background:blue;
}

.box  {
position: absolute;
top:10px;
left:30%;
background:white;
padding:10px;
border-radius:10px;
}
<div class = "box">
This is long div so need left = 30 percent
</div>
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
52
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете центрировать его по горизонтали таким образом:

.box  {
   position: absolute;
   top:10px;
   left:50%;
   background:white;
   padding:10px;
   border-radius:10px;
   transform: translateX(-50%);
}
Ответ принят как подходящий

Вы можете выровнять компонент по центру, используя атрибут display: flex;.

css флекс

body {
flex: 1;
background:blue;
display: flex;
justify-content: center;
}

.box  {
position: absolute;
top:10px;
background:white;
padding:10px;
border-radius:10px;
}
<div class = "box">
This is long div so need left = 30 percent
</div>

+1 Очень творческий способ сделать это. Обычно я просто позиционирую себя как left: 50% и margin-left: -[[width / 2]], но я буду иметь это в виду.

Parking Master 22.10.2022 19:34

Я использую div как виджет... Так что проблема в том, что я не могу дать body {flex}, так как это повлияет на хостинг. Есть ли другое исправление?

Tomaz_ 22.10.2022 21:29

Вы можете обернуть элемент виджета гибким элементом.

ChanHyeok-Im 23.10.2022 10:26

чтобы центрировать div по горизонтали, простое решение - установить для его поля значение «авто»:

body {
background:blue;
}

.box  {
width: fit-content;
margin: auto;
background:white;
padding:10px;
border-radius:10px;
}

Другие вопросы по теме