1. BanDiTuK30.04.2025 at 1:38 PMот
  2. D1zo30.04.2025 at 11:58 AMот
Loading...

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

Discussion in 'Web-программирование' started by Meme Machine, 22.04.2018.

  1. Meme Machine

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

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

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

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

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

    Синтаксис

    Переменные

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

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

    Code:
    html {
         --fancy-color: tomato;
    }
    
    body {
         color: var( --fancy-color);
    }

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

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

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

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

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

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

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

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

    Вложенности

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

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

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

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

    Примеси

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

    Code:
    @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 ссылки:
    Code:
    '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:

    Пример проекта:
    View attachment 23700

    Gulp
    Node.js
    npm gulp-less


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

    Скопировано с 3 ссылки:
    Code:
    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:

    View attachment 23701

    :sorry:


    Полезные ссылки:
     
    Last edited: 22.04.2018
      Freezzee likes this.
  2. Dallowin

    no music - no life
    Dallowin

    Статус:
    Оффлайн
    Joined:
    24.12.15
    Messages:
    1,256
    Репутация:
    1,481 +/-
    юзаю SASS мне заебись:beach::smoke:
     
      Meme Machine likes this.
  3. Meme Machine

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

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

    FUCKING AMAZING TEAM
    FUCKING AMAZING

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

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

    Статус:
    Оффлайн
    Joined:
    25.11.16
    Messages:
    358
    Репутация:
    699 +/-
    Депозит:
    2000
    ЯП для показухи, хтмл для поцанов
     
      FUCKING AMAZING likes this.
  6. FUCKING AMAZING

    FUCKING AMAZING TEAM
    FUCKING AMAZING

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

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

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

    BonnyBoi

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

    FUCKING AMAZING TEAM
    FUCKING AMAZING

    Статус:
    Оффлайн
    Joined:
    14.09.13
    Messages:
    426
    Репутация:
    702 +/-
    :beach::bb:
    Уже умею
    .class {
    Color: red;
    }
     
      LiveD, KeepOne and Meme Machine like this.
  10. LiveD

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

    Статус:
    Оффлайн
    Joined:
    21.06.16
    Messages:
    486
    Репутация:
    987 +/-
    В наносекунду офк. :smoke:
     
      FUCKING AMAZING and Dallowin like this.
  11. FUCKING AMAZING

    FUCKING AMAZING TEAM
    FUCKING AMAZING

    Статус:
    Оффлайн
    Joined:
    14.09.13
    Messages:
    426
    Репутация:
    702 +/-
    ну да.