• Как получить сестринские элементы меню на странице для сайдбара wordpress?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Встроенных инструментов для этого нет.
    Либо писать свой Walker (сложный путь), либо на JS отследить активный пункт и соседним установить нужный класс (куда проще).
    Ответ написан
  • Как называется плагин для поиска ключевых слов в документах и их замены?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    gulp-replace.
    Не смущайтесь тем, что написано "for gulp 3" - с 4 версией без проблем работает.
    Ответ написан
    Комментировать
  • Как быстро осуществлять нейминг css классов для разносортных секций?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Ну тут скорее не вопрос, а крик души, который можно поддержать.

    По делу: да, проблема есть, именовать на больших проектах сложно. Решений нет.
    Вернее, только те, которые вам кажутся "грязными", но других не завезли (и не завезут).
    И те, которые не относятся к разработке (вроде "дать люлей дизайнеру, который не понимает, как это всё работает, и лепит каждый элемент как попало")

    Тут просто надо несколько абстрагироваться и принять то, что абсолютно в любой объёмной системе, даже если её вдруг пишет один человек (что вряд ли), всегда есть место неочевидным вещам. Перфекционист внутри рыдает, но что делать.

    Откройте любое масштабное решение - чёрт ногу сломит, не так ли? И требуется немало времени, чтобы вникнуть. Потом вникаешь - и становится проще, но всё равно много нагромождено. А если выпасть из контекста на месяц - потом опять заново вникать. Это норма (картинка с Малышевой).

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

    Совмещение ваших пунктов 1 и 3 в одно - вполне здоровый стиль.
    Если секция, где всё очевидно: about, gallery, text-section, etc.
    Если контент неоднородный - именовать по смыслу (как в 3).

    Единственное что мог бы посоветовать - не смущаться добавлять новые компоненты, задавая им какой-то дополнительный неймспейс (contacts-header, contacts-about), а не пытаться всё упихать в один общий с помощью модификаторов - в поддержке будет проще.

    Просто размышления от прочитанного:
    1. Подходы 2 ("section-1", "section-2") и 4 (атомарщина) - в аду для таких "специалистов" стоит отдельный котёл. Ну вы и сами понимаете. Использовать нужно никогда.
    2. Инкапсуляция имён ничего не даёт в этом отношении, так как это придумано для элементов внутри блока (а с этим и концепция БЭМ хорошо справляется), глобально вам как разработчику всё равно нужно иметь понятное "корневое" название блока.

    Ещё можно поработать со своей головой, возможно, что такой крик души идёт от страха быть осуждённым. Браузеру-то всё равно, вы ему хоть .qwerty123 { ... } скормите - нормально отобразится.
    Понятные имена - для разработчиков, и надо понимать, что ни один толковый разработчик в вас камнем не бросит за то, что вы дали блоку имя .contacts-footer-call-to-action, если у вас этот самый .call-to-action в каждой секции настолько разный, что в один компонент не умещается.
    Иногда помогает, если есть прямой выход на клиента или ЛПР донести, что такой дизайн... Ну не самый лучший для поддержки, и обосновать почему.
    А чисто технически - решений нет, ну, вот такая работа, чё делать.
    Ответ написан
    2 комментария
  • Можно ли вставлять сниппеты с условиями в VSCode, как в Sublime Text?

    SeaInside
    @SeaInside Автор вопроса
    15 лет пилю все эти штуки
    В ходе дальнейших изысканий определено, что реализовать это можно только с помощью написания своего расширения и вызовом не editor.action.insertSnippet, а метода своего расширения, который проверит предшествующий символ и вставит сниппет, если всё окей.

    В моём представлении написание настолько мелких расширений - моветон, решил свою проблему добавлением нового сниппета, который по нажатию на "ctrl+#" вставит #{$var}, а "shift+3" (#) остаётся за обычным октоторпом.

    Кейбиндинги, если кому понадобится:
    {
      "key": "shift+[",
      "when": "editorTextFocus && resourceExtname == .scss || resourceExtname == .css",
      "command": "editor.action.insertSnippet",
      "args": {
        "snippet": " {\n\t${0}\n}"
      }
    },
    {
      "key": "ctrl+3",
      "when": "editorTextFocus && resourceExtname == .scss || resourceExtname == .css",
      "command": "editor.action.insertSnippet",
      "args": {
         "snippet": "#{\\$${1:var}}"
      }
    }
    Ответ написан
    Комментировать
  • Как сделать подобный canvas?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Да довольно просто.
    Весь канвас - это слегка переделанный "эффект из матрицы" (найдёте с десяток реализаций по запросу "js canvas matrix animation|effect", переделать готовый алгоритм не под символы, а под блоки чуть разного размера не должно стать проблемой).

    UPD:
    Да и что там перелопачено вебпаком? Вебпак - не обфускатор.
    Открываем файл "main.min.js", прогоняем через любой "js beautifier online", в редакторе ищем "drops", находим два метода, которые хоть и форматированы в строку, но тем не менее достаточно понятны.

    5e62192377585972779602.png
    Ответ написан
    Комментировать
  • Как сделать плавное появление блока расширением?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    То, что вам нужно, называется "Аккордеон", сам эффект найдёте по ключевому слову "slideDown" (по реализации из jQuery).
    Ответ написан
    Комментировать
  • Как в wordpress вывести категорию в определенный блок?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Класс PostService, который у вас получает посты - это нечто не относящееся к WordPress, что-то самопальное.
    Найдите, где этот класс объявляется - и там в методе getPostsForTag уже можно смотреть, что сломалось.
    Ответ написан
    5 комментариев
  • Какой слайдер можно кастомизировать вот так?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Любой слайдер может быть кастомизирован подобным образом, но руками и головой.
    За Swiper могу ручаться, но не вижу причин, по которым с этим бы не справился owl-carousel, slick и что там ещё есть.
    Если вы ищете прям готовое-готовое решение, чтобы только картинки вставить - не найдёте, слишком нестандартно оформлено.
    Ответ написан
    3 комментария
  • Как сделать такой многосоставной фон?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вот так, например.


    А вообще, если уменьшение радиуса скругления при уменьшении вьюпорта не требуется - смотрите на свойство border-image - просто идеальный кейс использования, изящнее будет.
    Ответ написан
    1 комментарий
  • Есть какое-нибудь соглашение/рекомендации по переносу атрибутов HTML-тэгов?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Рекомендация тут одна - пишите так, как вам (или вашей команде) привычнее и доступнее.
    Слишком уж это вкусовщина, чтобы попасть в какие-то популярные стайлгайды.

    P.S. Сам пишу в том варианте, который у вас первый (из документации Vue), и в коде большинства решений используется именно он. Вероятно, он и является более приемлемым для сообщества.
    Ответ написан
    Комментировать
  • Исключения в Gulp src?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Метод src() первым параметром принимает строку либо массив. То есть должно быть:
    gulp.src(["scss/*.scss", "!scss/variables.scss"])
    А вообще лучше завязывайте с подключением стилей таким образом - гибкости больше будет.
    Берёте один файл style.scss, его в задаче отправляете на компиляцию, и уже в этом файле с помощью директивы @import контролируете, что вам нужно и не нужно подключать, и не нужно лазить в сборку для внесения изменений.
    Ответ написан
    3 комментария
  • Отложить загрузку скриптов, пока не загрузится весь сайт, как?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Отложите их загрузку через window.onload => setTimeout с задержкой 2-3 секунды. Это работает для того, чтобы не влияло на показатели PageSpeed.
    Достоверно известно, что при этом подходе Яндекс Метрика не показывает, что скрипт Метрики установлен на сайт. Данные нормально поступают, но в панели Метрики значок красный. :)
    Ответ написан
  • Как убрать смещение ссылок при увеличение жирности текста?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    А никак.
    Если нужно делать при наведении текст жирным, чтобы он не менял свои размеры, то можно использовать хак при помощи text-shadow.
    Пример сделать сейчас нет возможности, загуглите "text-shadow like bold" - там всё расскажут.
    Ответ написан
    Комментировать
  • Какой курс по веб разработке выбрать?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    В курсах есть толк, если вы чётко понимаете свой уровень после их окончания.
    Этот уровень - немногим больше того, чем было до них, и всё ещё недостаточный для того, чтобы за эти знания просить деньги. Ни разу не "почему меня ни бирут за 200к я прошол курсы?!?".
    Означает ли это, что курсы - развод и лохотрон? Нет. Люди пытаются вас научить, как умеют. Проблема ровно в том, что за месяц-два нельзя пройти, осознать и закрепить материал, который люди годами оттачивают.

    Короче - если категорически не понимаете, с чего начать обучение, и у вас есть условно "лишние" деньги - берите любой. Для старта - подойдёт. Не самое выгодное вложение средств, но всё лучше, чем не делать ничего. Аминь.)
    Ответ написан
    Комментировать
  • Как правильно сохранять keywords в базу данных mysql?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Зависит от того, что вы от этого списка хотите.
    Если ключи плюс-минус уникальны для каждой позиции (то есть вбиваете руками, а не выбираете из предустановленного набора) - храните строкой, чего заморачиваться.
    Если есть какой-то предустановленный набор, который ещё и измениться может и хорошо бы сразу везде - заводите отдельную табличку с ключами (key_id, key_value) и отдельную для того, чтобы проставлять связи key_id -> product_id.
    Можно и как у вас (id, value, product_id), если не гигантский объём данных (и ключи повторяются нечасто) - разницы не заметите.
    Ответ написан
    9 комментариев
  • Как подставить значение data-id контейнера в код?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вроде того:
    const containers = document.querySelectorAll('div[data-id]');
    containers.forEach(container => {
      const containerID = container.getAttribute('data-id');
      const innerDiv = container.firstElementChild;
      innerDiv.id = 'adfox_157047490239139771-' + containerID; 
    });

    Не проверял, но вроде негде ошибиться.

    Замечу, что очень ненадёжно делать выборку 'div[data-id]', в идеале - вам нужно контейнерам задать какой-то уникальный класс/атрибут и по нему выбирать, точно также выбирать и дочерний (в моём варианте просто берётся первый узел).
    Ну и ещё отмечу, что чтобы работало в ИЕ11 и всяких старых Сафарях, нужно const заменить на var и озаботиться подключением полифилла forEach для nodeList

    UPD:
    Это что касается изменения ID элемента. Что касательно свойства в коде... Изменить его не получится никак в таком виде. Можно всю структуру целиком собрать на JS и вызвать код. Вроде того:
    function createStructure(id) {
      const div = document.createElement('div');
      div.setAttribute('data-id', id);
      
      const innerDiv = document.createElement('div');
      innerDiv.id = 'adfox_157047490239139771-' + id;
      div.appendChild(innerDiv);
      
      document.body.appendChild(div);
      
      window.Ya.adfoxCode.createAdaptive({
        ownerId: 325119,
        containerId: 'adfox_157047490239139771-' + id,
        params: {
          pp: 'g',
          ps: 'dpmn',
          p2: 'gopy'
        }
      }, ['desktop', 'tablet'], {
        tabletWidth: 830,
        phoneWidth: 480,
        isAutoReloads: false
      });
    }
    
    createStructure('100');
    createStructure('200');
    Ответ написан
    Комментировать
  • Как управлять шириной flex-контейнера при переносе элементов?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Задачка интересная, вообще, как говорится, "со звёздочкой".
    Пользователи IE и Edge в пролёте, ибо без fit-content задача не решается (имеется в виду решение на чистом CSS).
    Как решить "для всех" без применения JS - не вижу, что чаще всего означает "никак" :)

    Ответ написан
    1 комментарий
  • Как выделять только один блок?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Проблема в том, что в обработчике hover вы выбираете не элемент внутри того, на который навели, а все элементы с указанным классом на странице.

    Вот так будет работать:
    $(this).hover(function(){
      $(this).find('.declar_item_bg').toggleClass('declar_item_bg_usual');
      $(this).find('.declar_item_bg').toggleClass('declar_item_bg_active'); 
    });
    Ответ написан
    Комментировать
  • Одно и тоже значение Math.random в переменной?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вы result высчитываете на странице один раз, а потом каждый раз выводите одно и то же.
    В функцию запечатайте и вызывайте функцию, каждый раз генерируя новое значение:
    function myFunc() {
      var mass = ["I", "We",];
      var mass2 = ["love", "hate", "not", "return"];
      var math = mass[Math.floor(Math.random() * 2)];
      var math2 = mass2[Math.floor(Math.random() * 4)];
      return math + " " + math2;
    }
    myFunc();
    Ответ написан
    Комментировать
  • Как добавить класс div'у через JS ,если ширина окна меньше 600px?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    function classNameCheck() {
      const div = document.querySelector('.js-your-div');
      if (!div) return;
    
      if (window.innerWidth < 600) {
        div.classList.add('small');
      }else{
        div.classList.remove('small');
      }
    }
    
    ['load', 'resize', 'orientationchange'].forEach(event => {
      window.addEventListener(event, classNameCheck);
    })
    Ответ написан
    Комментировать