Как расположить изображение так, чтобы оно находилось слева от рекламного пространства и при этом располагалось по центру с помощью flexbox - PullRequest
0 голосов
/ 04 мая 2019

У меня есть следующий HTML:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <style>
      * {
        box-sizing: border-box;
      }

      section, header {
        width: 100vw;
        height: 100vh;
      }

      header {
        display: flex;
        flex-direction: row;
      }

      header div {
        flex: 1;
      }

      header aside {
        background: black;
      }
    </style>
  </head>
  <body>
    <header>
      <div style='background-image: url(https://i.cloudup.com/C9UpLWmovB.jpg);'>

      </div>
      <aside>
        
      </aside>
    </header>

    <section>
      <p>Hello World.</p>
    </section>
  </body>
</html>

Я пытаюсь сделать так, чтобы у меня было 2 "секции" (header и section), обе из которых занимают всю ширину / высоту области просмотра. Затем в section (второй полный просмотр страницы) он центрирует текст по вертикали и горизонтали. В header (первом полном просмотре страницы) это выглядит так:

 _____________________
|               |     |
|               |     |
|    centered   |     |
|     image     | ad  |
|               |     |
|               |     |
|_______________|_____|

Изображение будет таким, что оно заполняет любое измерение, сохраняя его в центре. Например, вот так:

 ___________________
|  _______________  |
| |               | |
| |               | |<-- image
| |               |<---- viewport
| |               | |
| |               | |
| |               | |
| |_______________| |
|___________________|

Или на более широком экране:

     ___ viewport
    |
    |
 ___|_______________<-- image
|___v_______________|
|                   |
|                   |
|                   |
|                   |
|                   |
|                   |
|___________________|
|___________________|

Изображение не растягивается, но увеличивается и уменьшается, чтобы полностью заполнить область просмотра, которая в данном случае является только частью окна, поскольку у нас там есть рекламное пространство.

Знание того, как это сделать, позволит разместить любое изображение в контейнере, чтобы оно правильно заполняло контейнер.

Хотите знать, как это сделать.

Прямо сейчас это выглядит так и не прокручивается вправо:

enter image description here

1 Ответ

0 голосов
/ 04 мая 2019

Вы пробовали установить размер фона?

 header > div {
    background-position: center;
    background-size:cover;
    }

или использование медиазапроса для установки размера фона на основе области просмотра?

@media screen and (max-width: 992px) {
 header > div {
            background-position: center;
            background-size:70%;
            }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...