Почему на css файлах сайтов так много строк:(

Всем привет я совсем новичок на разработке сайта есть опыт работы в нескольких простых сайта на django. Так вот вопрос в чем, когда заходишь на css файлы сайта там так много строк > 20 k. В моих проектах они максимум не доходит до 1к :( Frond разрабы все эти многотысячные строки сами пишут или они использует какие то удобные инструменты? И эти css файлы для одной страницы или в целом для сайта?


Ответы (1 шт):

Автор решения: MoloF

Для стилей используют препроцессоры, например:

У каждого из них свой синтаксис и свои преимущества, я использую SASS, мне удобен его синтаксис и я ничего не использовал кроме него, поэтому я буду субъективен.


Расскажу немного про SASS, или же его вторую версию SCSS. Различия между SASS и SCSS это синтаксис, например в SCSS используется закрытие метода.

SCSS:

body {
    margin: 0;
    padding: 0;
    line-height: 0;

    .block {
        width: 50px;
        height: 50px;
        background-color: #000;
    }
}

SASS:

body
    margin: 0
    padding: 0
    line-height: 0

    .block
        width: 50px
        height: 50px
        background-color: #000

После сборки мы получим готовый CSS код:

body {
  margin: 0;
  padding: 0;
  line-height: 0;
}
body .block {
  width: 50px;
  height: 50px;
  background-color: #000;
}

Конечно это только синтаксис, дальше - лучше. Переменные, примеси, модульность, циклы и многое другое.

Расскажу по порядку на примере SASS. (по-моему личному мнению он лучше чем стиль SCSS)

Переменные:

$backgroundColor: #ccc

body
    background-color: $backgroundColor

После сборки:

body
    background-color: #ccc

Примеси:

@mixin reset-list
    margin: 0
    padding: 0
    list-style: none

 nav ul
    @include reset-list

После сборки:

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

Модульность:

Файл header.sass

.header
  width: 100%
  height: 60px
  position: sticky
  top: 0

Файл footer.sass

.footer
    width: 100%
    height: 300px
    background-color: #c0c0c0

Файл main.sass

body
    margin: 0
    padding: 0

    @import './header.sass'
    @import './footer.sass'

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


Циклы:

@for $i from 1 through 12
  .col-#{$i}
    width: 100 / 12 * $i

После сборки:

.col-1 { width: 8.3333333333; }
.col-2 { width: 16.6666666667; }
.col-3 { width: 25; }
.col-4 { width: 33.3333333333; }
.col-5 { width: 41.6666666667; }
.col-6 { width: 50; }
.col-7 { width: 58.3333333333; }
.col-8 { width: 66.6666666667; }
.col-9 { width: 75; }
.col-10 { width: 83.3333333333; }
.col-11 { width: 91.6666666667; }
.col-12 { width: 100; }

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

В качестве сборки используются такие сборщики как: gulp, webpack. Готовый boilerplate (шаблон) можно скачать с любого github репозитория. Вам так же понадобится NodeJS.

В итоге проект на 20 тысяч строк, может быть разбит на маленькие части и каждый файл может не занимать и больше 100 строк, нужно лишь правильно организовать проект.

→ Ссылка