• Стоит ли использовать препроцессор отличный от SCSS?

    Faustlogger
    @Faustlogger
    Front-end developer
    В разное время пользовался SASS - > SCSS - > Less - > PostCSS - >SCSS. Мой личный опыт подсказывает что лучше PostCSS на данный момент ничего нет.

    В чем его преимущество - ты пишешь CSS с JS примесями, которые приносят нужный тебе функционал. Ты можешь сконфигурировать процессор (я не оговорился, постпроцессором он уже не является) под себя. Работает в разы быстрее, поддерживает css-модули. Если чего-то не хватает, берёшь и сам дописываешь. Оч сильный механизм плагинов и функций.

    Недостатков вижу два - игнор инструмента разработчиками CLI (привет команде ангуляр-кли ума которых хватило только на использование автопрефиксера) и игнор со стороны JetBrains, которые не смогли разводиться на адекватную поддержку данной тулзы. Теперь я благополучно пересел с IDEA на vsc.

    Вывод : SCSS - хорош и достаточен, SASS - ruby on rails only, Less - пожалуй уже не актуален, PostCSS - все же немного лучше SCSS и предлагает иной и более удобный механизм работы с CSS (рекомендую его попробовать после изучения scss).

    P. S. Сугубо моё мнение исходя из опыта, не навязываю. Холиварить глупо
    Ответ написан
    Комментировать
  • Срабатывание автозаполнения полей на других формах в Chrome и Safari

    Faustlogger
    @Faustlogger
    Front-end developer
    Нашел решение которое работает. Добавьте в форму скрытое поле password.
    <input type="password" 
           autocomplete="off" 
           name="passwordFake" 
           style="position:absolute; opacity: 0; filter: alpha(opacity = 0);"/>


    В чем суть проблемы - Safari для автокомплита детектит поля input[type=password] и от них играет. Чтобы его запутать, можно добавить скрытое поле и тогда будет заполняться оно. К сожалению, добавлять такой фикс прийдется во все формы, где хочешь избежать автокомплита.
    Ответ написан
    Комментировать
  • Как изменить статус блока?

    Faustlogger
    @Faustlogger
    Front-end developer
    Лично я использовал бы jQuery и заготовленные селекторы для скрытия (открытия) этого блока

    index.html
    ...
    <div id="block" class="first"></div>
    ...

    script.js
    ...
    var $block = $('#block');
    
    $block.click(function(){
        $block.removeClass('first');
        $block.addClass('second')
    });
    ...


    Для замены текста
    ...
    var $label = $('#label');
    
    $block.click(function(){
      $label.text("Открыть")
    });
    Ответ написан
  • Как организовать большое количество зависимостей в RequireJS?

    Faustlogger
    @Faustlogger
    Front-end developer
    Лично я описываю зависимости для модулей в конфиге на точке входа requirejs:
    index.js
    require.config({
    // Описываем пути
        baseUrl: '../js'
        paths: {
            jquery: 'libs/jquery',
            someModule: 'module'
        },
    // Описываем зависимости для модулей
        shim: {
            someModule: ['jquery']
        }
    });

    В итоге, в подключаемом модуле мне не нужно указывать зависимости
    define(function(){
        ...
        obj.someFunc = function(){
            $("#someButton").click(...)
        }
        return obj;
    });


    Проверено лично. Работает. Вот ссылка на документацию
    Ответ написан
    1 комментарий