Как использовать сетку без начальной загрузки - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь справиться со своей домашней работой, где меня попросили создать адаптивную сетку (с использованием медиа-запросов), которая содержит до 4 столбцов (минимальная ширина столбца составляет 300 пикселей), и мне не разрешается использовать какую-либо библиотеку,

Я пытался взглянуть на систему сетки начальной загрузки и применить ее к моему коду, но она не очень хорошо для меня.У меня проблемы с частью минимальной ширины каждого столбца и тем фактом, что он должен содержать до 4 столбцов ...

возможно, я не очень хорошо понял требования вопроса ...

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Это основной макет сетки, который я создал для вас Он начинается с ширины 4 столбца на экранах шириной 992 пикселя, а затем уменьшается до 3, 2 и 1 столбца по мере уменьшения экрана. Ширина столбцов может быть легко изменена в соответствии с вашими спецификациями, а затем вы, очевидно, можете просто изменить точки прерывания медиазапроса.

.container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}

@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}

@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}

.container .col {
  background: lightblue;
}

.container .col p {
  padding: .25rem .75rem;
}


/* 2 columns (600px) */

@media only screen and (min-width:600px) {
  .container .col {
    float: left;
    width: 50%;
  }
}


/* 3 columns (768px) */

@media only screen and (min-width:768px) {
  .container .col {
    width: 33.333%;
  }
}


/* 4 columns (992px) */

@media only screen and (min-width:992px) {
  .container .col {
    width: 25%;
  }
}
<div class="container">
  <div class="col">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores sequi sint ipsa alias amet. Numquam voluptatum maiores. Ab repellat dolores quo quas quam quasi voluptatem delectus aperiam. Deleniti accusamus dolore!
    </p>
  </div>
  <div class="col">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores sequi sint ipsa alias amet. Numquam voluptatum maiores. Ab repellat dolores quo quas quam quasi voluptatem delectus aperiam. Deleniti accusamus dolore!
    </p>
  </div>
  <div class="col">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores sequi sint ipsa alias amet. Numquam voluptatum maiores. Ab repellat dolores quo quas quam quasi voluptatem delectus aperiam. Deleniti accusamus dolore!
    </p>
  </div>
  <div class="col">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores sequi sint ipsa alias amet. Numquam voluptatum maiores. Ab repellat dolores quo quas quam quasi voluptatem delectus aperiam. Deleniti accusamus dolore!
    </p>
  </div>
</div>

https://jsfiddle.net/w5hjod0q/1/

0 голосов
/ 27 марта 2019

Лично я никогда не использовал Bootstrap, но я использовал display: grid; в CSS.Если это работает, то заставляя родительский элемент отображать дочерние элементы в сетке, то есть вы можете указать, сколько их нужно, используя display: grid; в сочетании с grid-template-columns.Это свойство CSS объявляет, сколько элементов отображать в строке и в какой пропорции они должны быть относительно друг друга.например:

  .wrapper {
    display: grid;
    grid-template-columns: 1fr, 2fr, 1fr;
  }

Это отобразит три элемента в строке, центральный из которых будет в два раза больше, чем внешние.полный и рабочий пример приведен ниже.

@media (min-width: 1281px) {
  #wrapper {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media (max-width:1279px) {
  #wrapper {
    grid-template-columns: 1fr 1fr;
  }
}
#wrapper {
  display: grid;
}
p:nth-of-type(even) {
  background: lightgrey;
}
/*
You can of course add @media queries to make sure they work on every screen
*/
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <div id="wrapper">
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
      <p>Test</p>
    </div>
  </body>
</html>

Если вам нужно много элементов в одной строке с одинаковой шириной, вы также можете использовать значение repeat(n, size), это аналогично написанию Nfrнесколько раз, но это намного чище.

...