Выравнивание CSS объектов над тегами <hr> - PullRequest
0 голосов
/ 17 июня 2020

Вот мой код для моего небольшого проекта (я новичок в этом):

body {
  background-color: #242424;
}

.page-wrap {
  width: 90%;
  margin: 0 auto;
  height: 98vh;
}

.buildings-wrap {
  width: 95%;
  margin: 0 auto;
  height: 100%;
  text-align: middle;
}

.rectangle {
  height: 650px;
  background-color: lightblue;
  width: 215px;
}

.add_btn {
  border-radius: 50%;
  background-color: lightcyan;
  text-align: center;
  line-height: 150px;
  height: 150px;
  width: 150px;
  margin: 0 auto;
  font-size: 100px;
  font-weight: 900;
  position: fixed;
  top: 85%;
}
<div class="page-wrap">
  <div class="buildings-wrap">
    <br/>
    <div class="rectangle"></div>
    <hr style="position: fixed;top: 80%;color: white;width: 84%;" />
    <button class="add_btn">+</button>
  </div>
</div>

Вот как это выглядит. Стрелка показывает, где я бы хотел, чтобы они были.

Я не могу понять, как это сделать:

enter image description here

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Чтобы выровнять прямоугольник над тегом hr, вы можете просто присвоить ему display из block и margin из auto. Это позволит центрировать прямоугольник относительно контейнера.

Что касается выравнивания кнопки добавления по центру, сохраняя ее фиксированной, вы можете обернуть кнопку в div, присвоив этой div позицию fixed и width из 100%. Затем дайте ему отображение flex и justify-content из center. Это приведет к выравниванию по центру всех дочерних элементов, которые находятся в div.

В зависимости от того, насколько низко вы хотите кнопку добавления, вы можете установить свойство bottom для только что созданного div. На данный момент у меня -125 пикселей. Также лучше использовать bottom и пиксели в качестве единиц, потому что другие элементы имеют фиксированные размеры.

body{
    background-color: #242424;
}
.page-wrap {
    width: 90%;
    margin: 0 auto;
    height: 98vh;
}
.buildings-wrap{
    width: 95%;
    margin: 0 auto;
    height: 100%;
    text-align: middle;
}
.rectangle{
    height: 650px;
    background-color: lightblue;
    width: 215px;
    display: block;
    margin:auto;
}
.add_btn{
    border-radius: 50%;
    background-color: lightcyan;
    text-align: center;
    line-height: 150px;
    height: 150px;
    width: 150px;
    margin: 0 auto;
    font-size: 100px;
    font-weight: 900;
}

hr{
  margin: 0 auto 0 auto;
}
<div class="page-wrap">
        <div class="buildings-wrap">
            <br/>
            <div style="display: flex; margin: auto;"><div class="rectangle"></div></div>
            <hr/>
            <div style="width: 100%; display:flex; justify-content: center;position: fixed; bottom: -125px; left: 0;"><button class="add_btn">+</button></div>
        </div>
 </div>
0 голосов
/ 17 июня 2020

Просмотрите в полноэкранном режиме

Надеюсь, это поможет

body {
  background-color: #242424;
}

.page-wrap {
  width: 90%;
  margin: 0 auto;
  height: 98vh;
}

.buildings-wrap {
  width: 95%;
  margin: 0 auto;
  height: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
}

.rectangle {
  height: 81vh;
  background-color: lightblue;
  width: 200px;
}

.add_btn {
  border-radius: 50%;
  background-color: lightcyan;
  text-align: center;
  line-height: 50px;
  height: 16vh;
  width: 120px;
  margin: 0 auto;
  font-size: 100px;
  font-weight: 600;
  position: fixed;
  top: 84%;
}
<div class="page-wrap">
  <div class="buildings-wrap">
    <br/>
    <div class="rectangle"></div>
    <hr style="position: fixed;top: 80%;color: white;width: 84%;" />
    <button class="add_btn">+</button>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...