1. BanDiTuK12.05.2024 в 09:59от
Загрузка...
Загрузка...

Препроцессоры

Тема в разделе "Web-программирование", создана пользователем Meme Machine, 22.04.2018.

  1. Meme Machine

    Любитель трепать не по делу
    Meme Machine

    Статус:
    Оффлайн
    Регистрация:
    25.11.16
    Сообщения:
    359
    Репутация:
    699 +/-
    Депозит:
    2000
    Препроцессоры:
    • Профессиональные инструменты.
    • Расширяют стандартные языка.
    • Бывают для CSS, HTML, JavaScript.
    Возможности:
    • Подключение файлов (в любом месте файла)
    • Переменные
    • Математические операции
    • Управление цветами
    • Вложенные селекторы
    Варианты препроцессоров:
    • Less
    • Sass (SCSS/Sass)
    Синтаксис не особо отличим.

    {Less}
    RU doc (не законченная)
    • Писали на Ruby
    • Работаем из Node.js или браузера офк
    Песочница

    Sass
    RU doc (даже очень неплохая)

    Песочница
    • На Ruby, перенесен на С++
    • Работает на Ruby и конечно на Node.js

    Синтаксис

    Переменные

    Код:
    @fancy-color: tomato;
    
    body {
          color: @fancy-color;
    }
    Результат:
    color: tomato;

    Код:
    $fancy-color: tomato;
    
    body {
          color: @fancy-color;
    }
    Результат:
    color: tomato;

    Код:
    html {
         --fancy-color: tomato;
    }
    
    body {
         color: var( --fancy-color);
    }

    Мат. операции

    Код:
    @body-size: 16px;
    
    body {
          margin-top: 10px * 2
          font-size: @body-size * 1.25
    }

    Код:
    $body-size: 16px;
    
    body {
          margin-top: 10px * 2
          font-size: @body-size * 1.25
    }

    Код:
    html {
          --body-font-size: 16px;
    }
    
    body {
          margin - top: calc(10px * 2);
          font-size: calc(var(--body-font-size) * 1.25);
    }

    Операции с цветами

    Код:
    body {
         color: fade(#302682, 50%);
         color: desaturate(#302682, 30%);
         color: lighen(#302682, 20%);
    }

    Код:
    body {
         color: rgba(#302682, 0.5);
         color: desaturate(#302682, 30%);
         color: lighen(#302682, 20%);
    }

    Код:
    body {
         color: #302682;
         color: rgba(47, 38, 130, 0.5);
         color: hsla(246, 55%, 33%, 0.5);
    }

    Вложенности

    Код:
    // Less/Sass(SCSS)
    
    .link {
           color: tomato;
    
           &:hover {
               color: red;
            }
         
            // Второй класс link--active
            &--active {
               border - bottom: 1px solid black;
            }
    }

    Код:
    // CSS
    
    .link {
           color: tomato;
    }
    
    .link:hover {
           color: red;
    }
         
    .link--active {
           border - bottom: 1px solid black;
    }
    

    Рекомендую не делать вложенности больше двух уровней.
    Если Ваши стили будут насчитывать тысячи (сотни тысяч) строк, то скорость работы сайта может немного (или даже нет) упасть.
    Так же большие вложенности могут вызывать трудности при переопределении свойств классов (например).

    В большинстве случаев, того, что выше вам хватит на долго.

    Примеси

    Код:
    .heading() {
             margin-bottom: 20px;
             margin - top: 20px;
             font-size: 18px;
    }
    
    .title {
         .heading();
    }

    Код:
    @mixin heading {
           margin-bottom: 20px;
           margin-top: 20px;
           font-size: 14px;
    }
    
    .title {
        @includе heading
    }
    
    Надеюсь никого через @ не вызвал :search:

    :trollface:

    Список можно и дальше продолжать полезными свойствами, но для этого есть документация.
    Лично мой выбор был - Sass, а именно SCSS.
    Основная причина на тот момент - переведенная документация :dntknw:

    Сборка

    Node.js
    Gulp
    npm gulp-sass


    Создаете в своем проекте файл gulpfile.js (например)

    Скопировано с 3 ссылки:
    Код:
    'use strict';
     
    var gulp = require('gulp');
    var sass = require('gulp-sass');
     
    gulp.task('sass', function () {
      return gulp.src('./sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./css'));
    });
     
    gulp.task('sass:watch', function () {
      gulp.watch('./sass/**/*.scss', ['sass']);
    });
    В консоле gulp sass
    Чекаем style.css
    :bb:

    Пример проекта:
    Посмотреть вложение 23700

    Gulp
    Node.js
    npm gulp-less


    Создаете в своем проекте файл gulpfile.js (например)

    Скопировано с 3 ссылки:
    Код:
    var less = require('gulp-less');
    var path = require('path');
     
    gulp.task('less', function () {
      return gulp.src('./less/**/*.less')
        .pipe(less({
          paths: [ path.join(__dirname, 'less', 'includes') ]
        }))
        .pipe(gulp.dest('./public/css'));
    });
    в консоле gulp less
    :bb:

    Посмотреть вложение 23701

    :sorry:


    Полезные ссылки:
     
    Последнее редактирование: 22.04.2018
      Freezzee нравится это.
  2. Dallowin

    no music - no life
    Dallowin

    Статус:
    Оффлайн
    Регистрация:
    24.12.15
    Сообщения:
    1.258
    Репутация:
    1.483 +/-
    юзаю SASS мне заебись:beach::smoke:
     
      Meme Machine нравится это.
  3. Meme Machine

    Любитель трепать не по делу
    Meme Machine

    Статус:
    Оффлайн
    Регистрация:
    25.11.16
    Сообщения:
    359
    Репутация:
    699 +/-
    Депозит:
    2000
    Лучший :bb:
     
  4. FUCKING AMAZING

    FUCKING AMAZING TEAM
    FUCKING AMAZING

    Статус:
    Оффлайн
    Регистрация:
    14.09.13
    Сообщения:
    426
    Репутация:
    702 +/-
    Тупа программирую на хтмл, мне заебись:bb:
     
  5. Meme Machine

    Любитель трепать не по делу
    Meme Machine

    Статус:
    Оффлайн
    Регистрация:
    25.11.16
    Сообщения:
    359
    Репутация:
    699 +/-
    Депозит:
    2000
    ЯП для показухи, хтмл для поцанов
     
      FUCKING AMAZING нравится это.
  6. FUCKING AMAZING

    FUCKING AMAZING TEAM
    FUCKING AMAZING

    Статус:
    Оффлайн
    Регистрация:
    14.09.13
    Сообщения:
    426
    Репутация:
    702 +/-
    Тупа фриланшу , рублю мильоны
     
      Meme Machine нравится это.
  7. Meme Machine

    Любитель трепать не по делу
    Meme Machine

    Статус:
    Оффлайн
    Регистрация:
    25.11.16
    Сообщения:
    359
    Репутация:
    699 +/-
    Депозит:
    2000
    Изучишь цсс будешь еще богаче :bb:
     
  8. BonnyBoi

    BonnyBoi

    Статус:
    Оффлайн
    Регистрация:
    29.04.17
    Сообщения:
    205
    Репутация:
    190 +/-
    а я на i7 пацаны
     
  9. FUCKING AMAZING

    FUCKING AMAZING TEAM
    FUCKING AMAZING

    Статус:
    Оффлайн
    Регистрация:
    14.09.13
    Сообщения:
    426
    Репутация:
    702 +/-
    :beach::bb:
    Уже умею
    .class {
    Color: red;
    }
     
      LiveD, KeepOne и Meme Machine нравится это.
  10. LiveD

    Фейки — Проверка через ЛС
    LiveD

    Статус:
    Оффлайн
    Регистрация:
    21.06.16
    Сообщения:
    487
    Репутация:
    986 +/-
    В наносекунду офк. :smoke:
     
      FUCKING AMAZING и Dallowin нравится это.
  11. FUCKING AMAZING

    FUCKING AMAZING TEAM
    FUCKING AMAZING

    Статус:
    Оффлайн
    Регистрация:
    14.09.13
    Сообщения:
    426
    Репутация:
    702 +/-
    ну да.