Я не могу позволить контейнеру реагировать, когда я нажимаю на устройство переключения в Chrome Dev Tool - PullRequest
2 голосов
/ 06 апреля 2019

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

нормальный вид

Переключение вида

ответ нормальный вид

просмотр с переключением ответа

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet"
              href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
              integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
              crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="store.css">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <meta name="viewpoint" content="width=device-width, initial-scale=1">
        <title>Store Home</title>
    </head>
    <body>
        <ul class="navbar" style="  background-color: yellow;">
            <li><a href="http://csc412sfsu.com/~yzhang25/store_home">Home</a></li>
            <li><a href="http://csc412sfsu.com/~yzhang25/store_hours">Hours</a></li>
            <li><a href="http://csc412sfsu.com/~yzhang25/store_about">About</a></li>
        </ul>
        <!--<div style="background-color: #FCDFBB; max-width: 800px; margin:auto; height: 90vh">-->
        <div class="container" style="background-color: #FCDFBB; height: 90vh; margin: 
        auto;">
            <h1>Yiyu's Store</h1>
            <p>
                This is my personal store, it will sell some of my personal stuffs. <br>
                Hope you guys love it!<br>
                Also, I sell some small pets here, cute pet only! <br>
            </p>
            <p>
                Another paragraph lol <br>
                It will show with different color <br>
            </p>
            <p>This is the unordered thist that I'm displaying on this page</p>
            <ul>
                <li>Great service</li>
                <li>Long hours</li>
                <li>Quality products</li>
            </ul>
        </div>
        <!--</div>-->

        <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
                integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
                crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
                integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
                crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
                integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
                crossorigin="anonymous"></script>
    </body>
</html>

1 Ответ

0 голосов
/ 06 апреля 2019

Может быть проще думать о вещах в обратном порядке: переходя от маленьких экранов к большим.Это проверенный рабочий процесс (конечно, есть исключения) для разработки и реализации конструкций экрана, которые должны работать на мобильных устройствах с разрешением до рабочего стола.

Этот обзор может быть полезен: https://zellwk.com/blog/how-to-write-mobile-first-css/

По умолчанию тег body будет заполнять доступную ширину окна, если она не ограничена (возможно, вы захотите добавить margin: 0 к элементу body, чтобы гарантировать отсутствие зазоров по краям).Внутри вашего тега body я бы порекомендовал заключить весь ваш контент в тег main (если это не запрещено вашим домашним заданием).main является элементом уровня блока и будет растягиваться, чтобы заполнить все доступное горизонтальное пространство его родителя (в этой базе, элемент body).

Итак, вы получаете мобильный ("переключен")) вид растяжения до краев в основном бесплатно.Он работает "из коробки".

Non-Bootstrap

На экранах большего размера (например, на рабочих столах) вы захотите ограничить ширину main элемент с объявлением max-width (с помощью медиазапроса ) и установите для его правого и левого полей значение auto.Это будет горизонтально центрировать элемент main.

В его самой основной форме это будет выглядеть примерно так:

@media screen and (min-width: 1200px) { 
    main {
        max-width: 1024px;
        margin-right: auto;
        margin-left: auto;
    }
}

Разбивка (не Bootstrap)

Здесь мы говорим, что при любой ширине окна, равной или превышающей 1200px, мы хотим применить правило CSS, которое ограничивает максимальную ширину main, равную 1024px.,(Я просто вытаскиваю эти ценности из шапки; смело меняйте их в соответствии с вашими потребностями).И мы хотим, чтобы он был центрирован в области просмотра, поэтому мы скажем левому и правому краям автоматически расширяться внутрь от правого и левого краев, пока они не достигнут элемента main.

Bootstrap

Похоже, вы используете Bootstrap 4.0.0, поэтому у вас есть доступ к сеточной системе Bootstrap на базе flexbox.С помощью служебных классов BS выполнение этого макета может быть сделано довольно легко.Как вы решите это сделать, будет зависеть от того, как вы настроили Bootstrap (и как вы решите использовать Bootstrap), но из коробки вы можете сделать что-то простое:

<body>
  <main class="container-fluid"> 
    <div class="row justify-content-lg-center">
      <div class="col-12 col-lg-8">
        <!-- content -->
      </div>
    </div>
  </main>
</body>

Разрушение (Bootstrap)

  1. container-fluid создает элемент контейнера, ширина которого всегда равна 100%.Это означает, что при меньшей ширине окна (например, на телефонах) ваш контент будет заполнять всю ширину области просмотра.
  2. row применяет некоторые базовые родительские стили flex-box, которые можно дополнительно настроить, установив для его свойства justify-content значение center при «больших» (lg) значениях ширины окна (с помощью служебного класса BS:justify-content-lg-center).
  3. Поскольку BS по умолчанию использует сетку из 12 столбцов, установка col-12 для дочернего элемента row означает, что он будет растягиваться до 100% ширины родительского элемента.При больших размерах экрана приведенный выше код говорит, что элемент должен растягиваться только на 8/12 (или 2/3) горизонтальных размеров родительского элемента (т. Е. col-lg-8).Поскольку мы указали элементу row центрировать его flex-child по ширине окна lg, этот макет будет отцентрирован по горизонтали.

На основе ваших снимков экрана не похоже, что вы хотитечтобы ограничить ширину вашего header (но я не увидел элемент header в вашей разметке).Так что это должно быть обработано немного по-другому.

Что касается вашего конкретного вопроса, существует множество способов выполнить этот макет с помощью Bootstrap (или без него), но, возможно, приведенное выше поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...