Задать вопрос
Контакты

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (22)

Лучшие ответы пользователя

Все ответы (29)
  • Вопрос чисто к опытным верстальщикам?

    @AntowaKartowa
    Дк вроде уже ни в одной статье писалось, что цепочки селекторов это зло. Не столько с эстетической сколько с практической точки зрения.

    1. Если тебе где-то нужно переопределить стили в каком-то отдельном контексте придеться такую же длинную цепочку фигачить.
    2. Ну и размер файла стилей это не уменьшает.
    3. Плюс дополнительные элементы цепочки это лишние циклы поиска браузером соответствии элементов в ДОМ структуре, что ест ресурс. Одна цепочка может не заметна, но полчища таких цепочек уверен могут показать существенную разницу.
    4. Потом браузер ведь читает справа налево. В .navbar .navbar-right-menu li.notify-dropdown .notify-list li a .notify-body он сначало найдет все .notify-body, потом начнет проверять какие из них вложены в тег a и искать будет до самого верхнего эелемента пока не найдет или не упреться в бади. Потом начент проверять а какие из них лежат внутри списка li и тд. Куча ненужных обработок.
    5. В этом же ключе стоит упомянуть, что селекторы в идеале все должны быть классами. А селекторы теги типа a, li, p, span и тд нужно избегать потому что они неспецифичны, не несут большой ценности, создают лишние цыклы обхода дерева элементов. По той же причине нельзя использовать селектор *.

    В идеале вообще не должно быть вложенных селекторов. Почитай про БЕМ методологию. https://ru.bem.info/methodology/ Максимум 2 в крайних случаях три уровня вложенности.
    Ответ написан
    Комментировать
  • В каких форматах должен отдаваться верстальщику дизайн макета сайта?

    @AntowaKartowa
    Приходилось работать тупо с jpg. Надо ли говорить, что много неудобств. Ни размер шрифта нормально посмотреть, ни какие-то графические элементы в отдельную картинку получить без наложения других элементов страницы.

    Скорее всего говорят о таких сервисах типа https://zeplin.io/ На последнем проекте дизайнер в него выкладывал как дизайны страниц так и сборки например всех возможных стилей кнопок, инпутов. Все это шариться. Идея ок. Во многом удобно. Показывает размеры, цвета. Позволяет определенные элементы скачать в виде отдельного файла. Но было нужно измерить какое-то растояние которое сервис сам не показывает. И непонятно что делать. Бывало нужно было иконку сукачать и нужно было просить дизайнера чтоб он что-то там в настройках сделал чтоб иконка стала скачиваемым элементом. Короче есть минусы, но идея ок. И это не один такой сервис. Думаю через пару лет большинство через них работать и будет.
    Ответ написан
    4 комментария
  • Почему при задавании атрибуты переходит сразу же по ссылке?

    @AntowaKartowa
    Потому что клик по ссылке по умолчанию обрабатывается браузером как инструкция для перехода по ссылке. Что вроде бы очевидно) Для отмены действий по умолчанию традиционно ипсользуется конструкция event.preventDefault(); где event объект события. Обработчик события ( в данном случае change ) получает его первым аргументом: function change(event) {...} И возможно стоит сделать фоллбек для старых версий эксплорера event = event || window.event который объект события не передает и значение его можно получить из глобального объекта.

    Очевидно событие по умолчанию отрабатывает в конце - после того как все пользовательские обработчики события закончили свое выполнение. Иначе как бы event.preventDefault() мог остановить событие после его выполнения. А значит на момент выполнения действия по умолчанию функция change уже установила аттрибут href. Вроде так
    Ответ написан
    2 комментария
  • Как вызвать функцию при неактивной кнопке?

    @AntowaKartowa
    Ну не делайте тогда кнопку неактивной, а лишь имитируйте ее неактивность каким-то дополнительным классом стилей. А в callAlert вызывайте e.preventDefault()
    Ответ написан
    Комментировать
  • Как прописать символ в конструкторе?

    @AntowaKartowa
    В последнем комментарии дали реализацию соответствующую заданию. Символ присваивается в качестве значения статического свойства класса. BarcodeGenerator.prefix = Symbol();

    А в вашей перавоначальной реализации во-первых this[prefix] не создает ничего. Если свойство не должно содержать изначально никаких значений, то принято создавать (инициализировать) свойство со значением null.

    Потом вы создаете константу prefix внутри функции конструктора класса, а доступ получить к ней хотите в другой функции. Область видимости константы ограничена функцией. Нужно было так объявлять
    this.prefixKey = Symbol();
    this[this.prefixKey] = null;

    Но тогда generator[BarcodeGenerator.prefix] = 'AA'; ничего не дает. В первоначальном варианте понадобился бы еще один метод для смены префикса в экземпляре класса. А это противоречит заданию
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (3)