Задать вопрос
  • Почему не работают как надо шаблонные строки?

    lazalu68
    @lazalu68
    Salmon
    Template strings это не шаблон который вы можете в любой момент взять и забить нужными данными, это просто инструмент с помощью которого данные распихиваются по строке. То есть у вас на 36ой строке cOA.begin создаётся именно с теми данными которые доступны на тот момент, а т.к. classPet и name не существуют в текущей области видимости, то вместо них используется undefined.

    Кстате, как по мне, так эти template strings не самый удобный механизм для обработки шаблонов, как бы ни было обманчиво их название; если пользоваться ими, то на каждый шаблон придётся иметь свою функцию. Имхо проще обрабатывать шаблоны кастомно:

    (() => {
      const re_template = /{(.*?)}/g;
    
      String.prototype.process = function(data) {
        return this.replace(re_template, (entry, word) => data[ word ]);
      }
    })();
    
    let templates = {
      greeting: 'Hello, my name is {name} and my age is {age}'
    };
    
    // Напрямую:
    templates.greeting.process({ name: 'Yeshua', age: 2019 });
    // Hello, my name is Yeshua and my age is 2019
    templates.threat.process({ reason: 'i dont like you' });
    // TypeError: Cannot read property 'process' of undefined
    
    
    // Или автоматически вызывая process с помощью Proxy:
    // (то же можно было реализовать просто с помощью дополнительной функции)
    templates = new Proxy(templates, {
        get(target, prop) {
        	if (prop in target) {
            	return String.prototype.process.bind(target[prop]);
            } else {
            	throw new Error(`String "${ prop }" was not found in storage!`);
            }
        }
    });
    
    templates.greeting({ name: 'Yeshua', age: 2019 });
    // Hello, my name is Yeshua and my age is 2019
    templates.threat({ reason: 'i dont like you' });
    // Error: String "threat" was not found in storage!
    Ответ написан
    6 комментариев
  • Зачем нужны psd макеты для создания сайтов?

    Я так понимаю инженеру дают чертеж на бумаге, а он по нему строит дом, но для чего это нужно? Зачем вообще чертежи, почему не строить сразу же? Почему архитектор не может построить дом? Инженеру даются поэтажные планы, а он должен их из кирпича строить? Если инженеру не дадут чертеж, а скажут просто построить дом, может ли ему пригодится для поэтажных планов archCAD или его замена?
    Ответ написан
    1 комментарий
  • Где взять svg код иконок?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    подскажите пожалуйста , есть ли где-то svg код иконок для html?
    В сети их как грязи, например тут.

    Сейчас использую awesome
    Там тоже несколько тысяч.

    но хотелось бы убрать лишние скрипты
    Не вижу ни одной помехи для этого.

    и что лучше awesome или svg код
    FontAwesome - можно скачать отдельно, в SVG формате (каждую иконку отдельно).

    на странице по 20-30 таких кодов может быть?
    С точки зрения сокращения обращений к серверу - встраивать SVG в страницу - лучше. С точки зрения читаемости такого кода - думаю, хуже.

    P.S. Есть масса различных инструментов для анализа скорости загрузки страницы и оценки ряда прочих факторов. Например, Google Page Speed. Лучше - когда показатели высокие и/или вписываются в норму, остальное второстепенно.
    Ответ написан
    Комментировать
  • Команда экс-чемпионов Dota 2 побеждена AI-ботом. Что это значит для будущего игр?

    Griboks
    @Griboks
    Ничего. Искусственный бот - это не человек и никогда им не станет. Победить команду конечно хорошо, но победить в команде ещё не удалось. Вот как только боты начнут заменять твоих тиммейтов, ты и начинаешь задумываться о них ( в идеале 4 бота, копирующих твой стиль игры) .

    Супер боты? Ну запустят их в мм. Ну поднимут они себе 100 тысяч птс. А обычные люди так и останутся игра в своём скилл-брекете. Ничего страшного или необычного.

    Разработчики могут использовать ботов вместо тестеров.
    Ответ написан
    4 комментария
  • Как сделать так, чтобы бэкраунд cекции закрывал хедер?

    @FKV
    Хедеру
    position: absolute;
    z-index: 100;
    и убрать background если он есть
    Ответ написан
    Комментировать
  • Как сделать массив в массиве javascript?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const XXX = length => Array
      .from({ length }, (n, i) => Array
        .from({ length: i + 1 }, (n, i) => i + 1)
        .join(','))
      .join('\n');
    
    console.log(XXX(5));

    или

    const XXX = length => Array
      .from({ length }, function() {
        this.push(-~this.length);
        return this.join`,`;
      }, [])
      .join`\n`;

    или

    const XXX = length => Array
      .from({ length }, (n, i) => Array
        .from(Array(++i).keys())
        .reduce((acc, n) => acc + (acc && ',') + ++n, ''))
      .reduce((acc, n) => acc + (acc && '\n') + n, '');
    Ответ написан
    2 комментария
  • Как сделать плавное появление белого фона при наведении на ссылку?

    Вы дважды использовали сокращенное свойство "transition", перекрыв тем самым предыдущий эффект.
    5d52980ee6987593768028.png
    Если Вы хотите указать два правила, их нужно записывать в одном свойстве "transition" через запятую
    5d52982a119d0108081836.png

    Результат:
    https://codepen.io/hisbvdis/pen/mdbVRYa
    Ответ написан
    Комментировать
  • Bootstrap и 5 элементов в ряд?

    dicem
    @dicem
    Извини, а зачем тут вобще bootstrap?
    На родительский блок:
    display: flex;
    justify-content: space-between;
    align-items: center;
    Ответ написан
    9 комментариев
  • Какой фреймворк для каких задач?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Современные фреймворки вроде Angular/React/Vue созданы для решения одних и тех же задач. Использовать лучше тот, который больше нравится и который лучше знаете. При неумелом использовании все преимущества конкретного фреймворка меркнут, и на Vue, в таком случае, вы можете получить медленную скорость разработки, а на React неподдеживаемый код.
    Ответ написан
    Комментировать
  • Какой фреймворк для каких задач?

    На просторах интернета куча статей. Где то даже встречал статью, где рассуждал для чего лучше подходит React, для чего Vue и для чего Angular. Попробуйте просто погуглить.
    Ответ написан
    Комментировать
  • Зачем здесь это?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Чтобы никто больше не ссылался на этот объект, и сборщик мусора мог удалить его.
    Ответ написан
    1 комментарий
  • Чем отличаются эти два условия?

    @Wol_fi
    php, js, mysql, highload
    В первом случае переменная element будет приведена к булеву, и если изначально в ней содержится значение, которое будет приведено к false, то код element.nextSibling не будет вызван. В этом конкретном случае это используется как проверка на null и undefined до начала первой итерации цикла.
    Ответ написан
    Комментировать
  • Как расположить блок по центру без костылей (ссылка на codepen внутри)?

    wqertAnna
    @wqertAnna Автор вопроса
    Решение найдено
    https://codepen.io/anon/pen/xopBZw
    5d17123760577310368315.png

    блок сверху светло-фиолетовый (фон добавила для наглядности, так разумеется он прозрачный) это :before
    со стилями:
    {  
      min-height: 20px;
        max-height: 80px;
        flex-grow: 8;
        width: 100%;
    }


    т.е. от текста до верхней и нижней границы блока .box (тот, что с розовым border) одинаковое расстояние (стрелки) вне зависимости от количества текста, если нет переполнения.
    При переполнении верхний блок сжимается
    Ответ написан
    1 комментарий
  • Как перевести в читабельный вид такое содержимое?

    Stalker_RED
    @Stalker_RED
    Этот код обфусцирован.

    Автоматические деобфускаторы существуют, но работают довольно плохо, придется добавить много ручной работы. И нужен скилл.

    Зачастую проще заново написать.
    Ответ написан
    Комментировать
  • Стратегия разбиения верстки на блоки?

    Hyubert
    @Hyubert
    JS
    Подскажите как вы разбиваете вашу верстку на блоки
    Вот возьмем, например, header.

    Хедере это конкретный блок со своим классом и модификаторами (если нужно). Далее все намного проще - позиционирование мы не включаем в стили модификатора, это скорее изменение его внешнего вида, об этом следует помнить.

    Предположим внутри блока есть кнопка, которая есть и в других блоках.

    Ну так и делайте ее отдельным блоком, например с классом .btn или .button и у нее будут свои модификаторы. Чаще всего у блока кнопки их много. Пример как делаю я:
    .btn {}
    /* style */
    .btn--primary {}
    .btn--secondary {}
    /* size */
    .btn--sm {}
    .btn--md {}
    .btn--xl {}
    /* special */
    .btn--link {}


    Маргины мы прописываем в стилях к этой кнопке и добавляем соответствующий модификатор?

    Нет, отступы и кастомные стили (очень специфичные) мы задаем в зависимости от родительского блока в котором находиться кнопка, в данном случае это хедер. Мы может сделать так:

    .header .btn {}
    или например такой класс сделать
    .header__btn {}

    Я предпочитаю вложенность (но не больше 1 уровня)

    А как эти кусочки потом собрать? С помощью pug includes или gulp


    Ну тут уже по разному, как вам удобней и зависит от конкретного инструмента, если говорить о pug, то я делал так
    1. объявление миксина в отдельном файле
    mixin button(caption)
      button.button&attributes(attributes)!= caption

    2. Подключал в глобальный скоуп через шаблоны (include)
    3. Пользовался миксином в любом места.

    Предположим еще в этом блоке есть меню, которое больше нигде не используется, его мы уже верстаем не отдельно, а вместе?


    Сделайте отдельным компонентом - не пожалеете. Во первых держать весь код в порядке (в одном понятном виде) удобно. Во вторых - если будет нужно расширение проекта или почти такое же меню но в другом месте, это вам пригодиться.
    Ответ написан
    7 комментариев
  • JS-фреймворки безопасно использовать?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Использование фреймворков (особенно frontend) не имеет ничего общего с безопасностью. Безопасность обеспечивает тот кто продумывает архитектуру проекта, тот кто реализует логику валидации и тот кто настраивает правила и протоколы взаимодействия частей приложения
    Ответ написан
  • Как правильно пользоваться Dev Tools (или где hover)?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    5cff28160079e892357678.png

    Когда вы применили :hover к нужному элементу, это не значит, что именно у него будут показаны стили дочерних элементов. На примере div:hover a — после выбора состояния :hover для родителя нужно выбрать именно a, потому что стили применяются именно к нему, несмотря на то, что они идут от :hover родителя (что, чёрт, логично).
    Ответ написан
    6 комментариев