Адаптивный макет управления процентами

0

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

Codepen

   .container{
    width: 90%;
    max-width: 1140px;
    margin: 0 auto;
    /*background: #333;*/
}


 .container .columns{
    float: left;
    background: #ccc;
    margin: 0 0 1em ;
    padding-right: 1em;
    padding-left: 1em;
    border-left-width:12px;
    }

    .row{
        float: left;
        clear: both;
        width: 100%;
    }

    .container .columns.col-1 { width: 8.33333333333%; }
    .container .columns.col-2 { width: 16.6666666667%; }
    .container .columns.col-3 { width: 25%;   }
    .container .columns.col-4 { width: 33.3333333333%; }
    .container .columns.col-5 { width: 41.6666666667%; }
    .container .columns.col-6 { width: 50%;   }
    .container .columns.col-7 { width: 58.3333333333%; }
    .container .columns.col-8 { width: 66.6666666667%; }
    .container .columns.col-9 { width: 75%;   }
    .container .columns.col-10{ width: 83.3333333333%; }
    .container .columns.col-11{ width: 91.6666666667%; }
    .container .columns.col-12{ width: 100%;  }
Теги:
grid
responsive-design

4 ответа

1

Я лично уклоняюсь от Calc, поскольку он все еще не полностью поддерживается, но до вас - http://caniuse.com/#feat=calc

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

<div class="columns col-6"><div>6</div></div>

DEMO

  • 0
    Ооо, я не знал об ограничении calc, я думал, что оно будет поддерживаться старыми браузерами.
  • 0
    Да, это действительно крутая концепция, но в реальном мире большинству людей нужна поддержка ie8, как бы это ни было печально. Вы можете заполнить его, вернувшись к вычислениям с JQuery, но это немного грязно и не нужно.
Показать ещё 1 комментарий
0

Вместо того, чтобы давать отступы, дайте разницу

.container .columns{
float: left;
background: #ccc;
margin: 0 0 1em ;
margin-right: 1em;
margin-left: 1em;
border-left-width:12px;
}
  • 0
    Я попробовал это, и это разбивает столбцы.
0

Используйте метод calc() для вычисления поля по ширине. Например, для .col-3 CSS будет

.container .columns.col-3 { 
width: calc(25% - 5px);
margin-right:5px;
}

убедитесь, что вы используете calc() в правильном порядке, как это

calc([first value][space][operator][space][second value])
  • 0
    Я только попробовал это и все еще ломаю колонки все же. Я попытался уменьшить ширину столбцов, но я не думаю, что это лучшая практика. пожалуйста, используйте код, указанный выше, чтобы попробовать любые предложенные методы
  • 0
    @nCore Это решение кажется хорошим, просто равномерно распределите поля справа и слева, чтобы выровнять его по центру. Взгляните на этот codepen.io/anon/pen/IGLnz
Показать ещё 4 комментария
0

Если вы видите ширину столбцов, вы равномерно разделили 100% ширины окна просмотра.

Например:

.container .columns.col-6 {
   width: 50%;
}

Таким образом, в этом случае у вас не будет места между двумя блоками.

Поэтому, указывая ширину столбцов, вам также нужно учитывать маржу.

поэтому вы можете использовать один из следующих двух подходов:

.container .columns.col-6 { 
   width: calc(50% - 10px); // 10px represents the margin / space
   margin-right:10px;
}

или

.container .columns.col-6 { 
   width:  46%;
   margin-right: 1%;
}

Первый подход лучше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню