Задать вопрос
  • Что здесь вообще происходит?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Тут используется паттерн передачи параметров через один объект options
    В самом низу самовызываемой функции - это конструкция типа (function(){}()) скорее всего есть такая строка:
    }(options))
    Здесь передается обьект со свойствами tabNavigationList и прочие. Потом он принимается в функции tabs, эти свойства из него считываются и по содержащимся в них строках ищутся элементы на странице.
    Сначала находится el - это видимо контейнер. Потом поиск элементов продолжается внутри уже этого контейнера. Тоесть если мы сначала нашли el внутри документа (document.querySelector), то потом ищем вложенные в него элементы через el.querySelectorAll (поставив el вместо document, мы ограничиваем поиск содержимым этого элемента, а не всем документом как это было в первом случае)
    Ответ написан
    Комментировать
  • Какая ошибка в коде?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Попробуй вместо matrix[i-1][j] написать matrix[i === 0 ? 0 : i - 1][j]
    Либо через max(i - 1, 0) - так даже более изящно.
    Ответ написан
    1 комментарий
  • Можно ли так назвать класс?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Называть классы лучше так, чтобы по названию можно было понять что он делает. Длинные имена в общем не проблема. можно попробовать использовать BEM-подход или взять оттуда некоторые принципы и написать собственную методологию. Например у меня все классы делятся на несколько категорий:

    row (горизонтальный блок на сайте)
    col (делит row на несколько секций)
    wrap (оборачивает компонент, который находится внутри col)
    item (сам компонент)
    text (текст, который находится внутри компонента)

    У каждой категории классов есть свой набор свойст которые к нему применяются. Например сетка работает с col-классами и следовательно, когда я вижу класс типа .col-width-50-s, то я знаю что тут структурный стиль для сетки, в котором присваивается ширина 50 процентов на мобилах. А класс item-table_caption это заголовок компонента-таблицы.
    Когда в голове создашь свою иерархию классов, то проблем с названием селекторов не будет и их очень легко читать/писать станет.

    У такого подхода есть как плюсы, так и минусы.
    Плюс - вы берете самые интересные решения из разных методологий и создаете инструмент под себя (мне нравится атомарный подход, mcss и bem, но у всех них есть свои недостатки)
    Минус - другие разработчики не всегда могут читать ваш код также легко как и вы. Однако, как показывает практика, методологии приходят и уходят и возможно изобретенный вами подход станет новым стандартом в будущем)
    Ответ написан
    Комментировать
  • Почему никто не используют все возможности bootstrap?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    два правила использования бутстрапа:
    1) не использовать бутстрап
    2) если очень надо, и надо быстро, и дизайн полностью состоит из компонентов бутстрапа - использовать с осторожностью (велик риск получить бутстрап головного мозга)
    Ответ написан
    Комментировать
  • Как сделать чтобы было описание когда публикуешь ссылку своего сайта в ВК?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Там надо использовать специальные метатеги opengraph. Есть в интернете сервисы автоматической генерации этих тегов. Например megatags.co
    Ответ написан
    Комментировать
  • Как поставить атрибут lang для мультиязычного сайта?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Для поисковиков надо использовать link-теги примерно с таким синтаксисом:
    <link rel="alternate" hreflang="es" href="http://www.example.com/" />
    <link rel="alternate" hreflang="en" href="http://en.example.com/" />

    Оба тега помещаются на каждую региональную страницу (в данном случае их две: испанская и английская). При большем количестве региональных страниц, соответственно увеличивается и количество тегов.
    Ответ написан
    Комментировать
  • Как эффективнее всего изучать ЯП?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Запилил короткий тест, чтобы можно было примерно оценить насколько эффективно будет проходить ваше обучение программированию и сколько это займет по времени:

    # ваш возраст менее 25 лет? (1 балл)
    # можете ли вы читать техническую литературу на английском языке? (2 балла)
    # знаете ли вы, что такое наследование, полиморфизм и инкапсуляция? (4 балла)
    # есть ли среди ваших друзей программисты, которых можно часто просить разжевать непонятные вещи или взять вас интерном к ним на работу? (8 баллов)

    Если вы набрали 0-1 баллов: обучение может занять до пяти лет, чтобы дорасти до уровня джуниора, но скорее всего терпения не хватит и забросите это дело через некоторое время. Возможно даже не стоит и начинать.

    Если вы набрали 2-4 балла: обучение может занять до 3 лет, чтобы дорасти до уровня джуниора. Есть немалый шанс что забросите на половине пути, но и небольшая вероятность успеха тоже присутствует.

    Если вы набрали 5-10 баллов: обучение может занять около 2 лет, чтобы дорасти до уровня джуниора. Шансы на успешное вхождение в айти есть, но потребуется много кропотливой работы.

    Если вы набрали 11-14 баллов: обучение может занять около года, чтобы дорасти до уровня джуниора. Шансы на успех достаточно неплохие. Дерзайте)

    Если вы набрали 15 баллов: обучение может занять около полугода, чтобы дорасти до уровня джуниора. Шансы на успех очень высокие. Идеальный билд чара)
    Ответ написан
    Комментировать
  • Как сделать многоугольник с 12 мягкими углами как на картинке в CSS ??

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Такое лучше на svg делать.
    Сложные фигуры на css это баловство. Если заказчик хочет такую сложную штуку, то завтра он может попросить сделать ее еще сложнее (по закону Мерфи обычно так и бывает) и один хрен придется делать потом на svg. Так зачем тратить время на css-костыль и оттягивать неминуемое?)
    Ответ написан
    Комментировать
  • CSS с условием - реально ли применить стиль к элементу с классом "class-2" если у элемента с классом "class-1" visibility: visible?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Можно сделать если будешь менять visibility в js через style атрибут и второй класс у тебя находится на одном уровне вложенности с первым классом внутри общего контейнера.
    Вот такой селектор для этого можно использовать:
    .class1[style*=visible] ~ .class2
    Ответ написан
    Комментировать
  • Как пробить топ Landing Page?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Нет смысла в этом. Лендинги обычно под один популярный товар делают и через полгода, когда спрос падает на него, делают новый лендинг с новым товаром. Привлекают лидов через директ, а на продвижение забивают. Можно сделать базовую seo-оптимизацию, типа добавления всяких метатегов, а все остальное будет лишней тратой денег.
    Ответ написан
    Комментировать
  • Как запретить, установить или убрать свойство hover?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Лучше всего прописать hover внутри медиазапроса min-device-width: 1280px.
    В 95 процентах случаев этого достаточно.
    Ответ написан
    Комментировать
  • Как загружать контент по очереди?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Можно сделать, но будет грузить дольше по факту. Не вижу смысла тормозить загрузку картинок и ждать сначала загрузки шрифтов. Пусть все грузится параллельно. Для красоты можно добавить прелоадер, чтобы после загрузки шрифтов он исчезал, показывая страницу, а картинки уже потом сами подгрузятся по ходу дела (либо ждать пока все загрузится а потом отображать страницу)
    Ответ написан
  • По каким причинам несколько полей не проверяются на предмет соответствия паттерну(атрибуту) в данном примере?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Поставь этим инпутам type=text и например pattern=[0-9]+ (надо тестировать и подбирать паттерн под свои нужды)
    Чтобы форма точно не проходила, надо использовать валидацию через js.
    Встроенная html5 валидация работает не везде одинаково, а на айфоне вообще не обращает внимание на атрибуты required и отправляет пустые поля на сервер.
    Ответ написан
    Комментировать
  • Повторение одинаковых media запросов вредно?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    А почему они повторяются?
    Там есть много компонентов и у каждого свои медиазапросы?
    Если да - то это нормально.
    Если же в одном компоненте дублируется код, то можно и почистить, объединив все вместе.
    В любом случае, на производительность это практически не повлияет, тем более если их всего 20 а не 20000.
    Ответ написан
    Комментировать
  • Стоит ли использовать в данном случае section и addres?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Оставляй карту в div. Section и article сейчас требуют чтобы внутри были теги h2-h6, хотя это и спорный момент.
    Контактную информацию можно положить в address.
    Ответ написан
  • Как правильно отключить масштабирование на iphone?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    User-scalable=no перестал поддерживаться в ios10(и возможно на некоторых других платформах). Признан плохой практикой.
    Ответ написан
    Комментировать
  • Кто за то, чтобы добавить шкалу сложности к новому, только что созданному вопросу?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Идея норм. Добавлю немного от себя:
    Можно сделать чтоб сложность ставили сами отвечающие.
    Например зашел человек в вопрос, посмотрел, увидел что это сложная штука, нажал кнопочку "сложно" и у вопроса повысился статус сложности. Потом заходит на сайт гуру крутой и начинает смотреть что там за сложные вопросы, на которые никто не может ответить и пытается на них отвечать. За правильный ответ на сложный вопрос человек получает больше плюсиков и ачивки возможно. Ну и крутым программистам есть стимул тешить свое ЧСВ, отвечая на самые сложные вопросы. В общем как-то так)
    Ответ написан
    Комментировать
  • Margin-top у h1?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    H1 по хорошему должен быть один на странице. Чаще всего он на фоне hero-блока отцентрирован по вертикали. Тот самый header, про который вы все говорите, это и должен быть h1.
    Ответ написан