Я хочу разместить блок точно по центру экрана (по горизонтали). Для этого я написал нужные стили для .main
Блок сдвигается, но уходит вправо больше, чем нужно. Видимо, начало блока позиционируется по центру, но потом содержимое блока смещается правее. Получается не то, что нужно.
Как сделать, чтобы центр экрана был посередине таблицы?
.main {
margin-left: auto;
margin-right: auto;
width: 10%;
}
<div class="main">
<table class="data" id="celebs">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Occupation</th>
<th>Approx. Location</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some</td>
<td>other</td>
<td>thing</td>
<td>lol</td>
<td>used</td>
</tr>
</tbody>
</table>
</div>
Если есть возможность обернуть, то можно использовать какой-то такой "хак":
.main {
margin-left: auto;
margin-right: auto;
width: 10%;
}
.main__inner {
display: inline-block;
position: relative;
left: 50%;
}
.data {
position: relative;
left: -50%;
}
<div class="main">
<div class="main__inner">
<table class="data" id="celebs">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Occupation</th>
<th>Approx. Location</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some</td>
<td>other</td>
<td>thing</td>
<td>lol</td>
<td>used</td>
</tr>
</tbody>
</table>
</div>
</div>
Ну или что-то такое:
.main {
margin-left: auto;
margin-right: auto;
width: 10%;
}
.data {
margin-left: 50%;
transform: translateX(-50%);
}
<div class="main">
<table class="data" id="celebs">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Occupation</th>
<th>Approx. Location</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some</td>
<td>other</td>
<td>thing</td>
<td>lol</td>
<td>used</td>
</tr>
</tbody>
</table>
</div>
Задайте margin:auto
для таблицы и уберите ширину для блока-родителя
.data {
margin:auto;
}
<div class="main">
<table class="data" id="celebs">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Occupation</th>
<th>Approx. Location</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some</td>
<td>other</td>
<td>thing</td>
<td>lol</td>
<td>used</td>
</tr>
</tbody>
</table>
</div>
Доброго дня.
Могу предложить использовать display: flex;,
Так как блочные элементы изначально занимают 100% родительского блока, а выше
только body, то данный код выровняет все внутри .main по центру.
.main {
display: flex;
flex-direction: column;
align-items: center;
}
<div class="main">
<table class="data" id="celebs">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Occupation</th>
<th>Approx. Location</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some</td>
<td>other</td>
<td>thing</td>
<td>lol</td>
<td>used</td>
</tr>
</tbody>
</table>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно увеличить textarea по мере заполняемости с помощью javascript?
Теорема: Бинарное дерево можно однозначно восстановить имея InOrder и PostOrder/PreOrder последовательности, если последовательности не содержат дубликатов