#html #css
Вопрос:
Я хочу, чтобы мое сообщение было посередине. Поскольку я добавил элемент в ту же строку, текст смещается вправо.
Мой код выглядит так:
.property {
background-color: #497ba7;
color: #ffff;
text-align: center;
margin-left: 50px;
margin-right: 50px;
padding: 5px;
}
.navbtntop {
cursor: pointer;
float: left;
font-size: 20px;
background-color: #497ba7;
color: #fff;
border-color: rgba(0, 0, 255, 0.082);
border-radius: 3px;
text-decoration: none;
padding: 7px;
width: 20%;
text-align: center;
margin-left: 5.5%;
}
<a href="#" class="navbtntop" onclick="return show('Page1','Page2');">Previous</a>
<h2 class="property">MDU Layout</h2>
В чем же тогда проблема?
Комментарии:
1. Не используйте поплавки, flexbox-ваш друг в наши дни.
Ответ №1:
макет cols
Ваша идея (держите правую колонку «в центре» для всей области обертки).
Один из способов-использовать один «пустой» div (20% — 60% — 20%).
Другой способ-добавить margin-right: 20%;
для правильного col.
.display_grid{
display: grid;
border: 2px solid orange;
grid-template-columns: 20% auto 20%;
}
.left {
border: 1px solid black;
display: block;
background-color: red;
padding: 20px;
color: #fff;
text-align: center;
}
.right {
background-color: blue;
color: #ffff;
text-align: center;
border: 1px solid red;
margin: 0px;
}
<div class="display_grid">
<a href="#" class="left">Left</a>
<h2 class="right">Right</h2>
<div>
</div>
абсолютное положение
Еще один способ добиться этого — position absolute
(старый подход — но в вашем случае, если ширина/содержимое «левого колла» изменятся, возможно, выбора нет).
Минусы: менее отзывчивый текст может перекрываться.
.relative_wrapper{
display: grid;
position: relative;
border: 2px solid orange;
grid-template-columns: 20% auto;
}
.left {
border: 1px solid black;
display: block;
background-color: red;
padding: 20px;
color: #fff;
text-align: center;
}
.right {
background-color: blue;
color: #ffff;
text-align: center;
border: 1px solid red;
margin: 0px;
/* position absolute */
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
<div class="relative_wrapper">
<a href="#" class="left">Left</a>
<h2 class="right">Right</h2>
<div>
</div>
https://medium.com/front-end-weekly/absolute-centering-in-css-ea3a9d0ad72e
Комментарии:
1. В принципе, оба кода в порядке, хотя я имею в виду, что я делаю «Правильный» в центре против всего flex_wrapper не только правильным элементом. Возможно ли это? Это то же самое, что у меня было раньше
2. Лучшая идея-создать сетку из трех элементов и оставить последний пустым. (20-60-20). Я редактирую ответ и добавляю пример