• Как использовать тег picture при создании адаптивных изображений?

    @IvanPsarev
    It-любитель
    Заводим тег picture внутри которого указываем дефолтную картинку:
    <picture>
        <img class="image"
          src="img/mobile.jpg"
          alt="Описание" width="260" height="260">
    <picture>

    В данном коде у нас везде просто загрузится "img/mobile.jpg".
    Как это можно улучшить? Можно использовать прогрессивные файлы изображений такие как webp (почитать про них стоит отдельно, вкратце - они меньше весят при одинаковом качестве картинки).
    Добавляем условие для показа новой картинки:
    <picture>
        <source srcset="img/mobile.webp" 
          type="image/webp">
        <img class="image"
          src="img/mobile.jpg"
          alt="Описание" width="260" height="260">
    <picture>

    Здесь, если браузер поддерживает .webp будет загружена картинка: img/mobile.webp.
    Допустим у нас есть брейкпоинт на десктоп при 768px где нам нужно показывать картинку более высокого качества (либо вообще другую). Код можно улучшить так:
    <picture>
        <source media="(min-width:768px)" 
          srcset="img/desktop.webp"
          type="image/webp">
        <source media="(min-width:768px)"
          srcset="img/picture/desktop.jpg">
        <source srcset="img/mobile.webp" 
          type="image/webp">
        <img class="image"
          src="img/mobile.jpg"
          alt="Описание" width="260" height="260">
    <picture>

    Тут мы добавили еще 2 условия: если окно шире 768px и браузер поддерживает webp - грузится desktop.webp, если не поддерживает то - desktop.jpg.
    Данную конструкцию можно еще расширить. Например мы хотим чтобы на retina-дисплеях картинки показывались в более высоком качестве. Для этого у нас должны быть копии всех наших картинок но с увеличенным в 2 раза разрешением. Например, наши картинки будут именоваться как mobile@1x.jpg (260х260рх). плюс эти же картинки, но в 2 раза большем разрешении: mobile@2x.jpg (520х520рх). Загружать их, или нет будет решать браузер, на основании данных о плотности пикселей на экрана полученных от системы (это тоже отдельная тема для обсуждения, есть статьис названием что-то вроде "Пиксель на самом деле не пиксель". Точного названия не помню, но смысл в том, что на "так называемых" Retina-дисплеях при фактическом разрешении, например, 2500х1600px браузер будет "считать", что окно шириной 1250px). Короче для "ретинизации" код нужно изменить так:
    <picture>
      <source media="(min-width:768px)" 
        srcset="img/desktop@1x.webp, img/webp/desktop@2x.webp 2x"
        type="image/webp">
      <source media="(min-width:768px)"
        srcset="img/picture/desktop@1x.jpg, img/picture/desktop@2x.jpg 2x">
      <source srcset="img/webp/mobile@1x.webp, img/webp/mobile@2x.webp 2x" 
        type="image/webp">
      <img class="image" 
        src="img/mobile@1x.jpg" 
        srcset="img/mobile@2x.jpg 2x"
        alt="Описание" width="260" height="260">
    </picture>

    Вся эта громадина читается сверху:
    - первый <source>: если ширина экрана больше 768рх, браузер поддерживает webp и плотность пикселей 2x грузится desktop@2x.webp, если плотность пикселей 1х - desktop@1x.webp
    - если webp не поддерживается, то второй <source> - все тоже самое для .jpg
    - если экран уже 768px - третий <source>
    - во всех остальных случаях и в случае если браузер не поддерживает загрузится обычный <img>.
    Нужно понимать, что для такого подхода требуется иметь для одной картинки 4 файла и это только для одной ширины экрана:
    mobile@1x.jpg, mobile@2x.jpg, mobile@1x.webp, mobile@2x.webp.
    И еще столько же для desktop.
    Вот как-то так, можно добавить еще брейкпоинт для tablet - все по примеру :)
    Ответ написан
  • Локальная сеть переключается на 'Общественную'. Как исправить?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    21 ПК это более чем достаточно для создания домена. Сильно облегчите себе же работу... И проблемы типа этой просто перестанут существовать.
    Ответ написан
    4 комментария
  • Где должны храниться файлы с тестами в модульной и FSD архитектуре Front-end?

    WblCHA
    @WblCHA
    В папке __tests__ на том же уровне, что и тестируемый файл. Локальные моки там же, глобальные для пекеджей согласно документации библиотеки для тестирования, а свои глобальные уже смотреть надо, в фсд можно в шейрд запихнуть.

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

    demon416nds
    @demon416nds
    Разработчик на чем попало
    Изменение масштаба технически является изменением разрешения рендеринга, делайте "резиновую" вёрстку
    Ответ написан
    2 комментария
  • Что такое выражение, литерал и инициализация в JavaScript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    По-простому я бы объяснил так:
    • выражение – это любой кусок кода, который в итоге даёт значение. Напр. цифра 0 или a===b
    • литерал – это буквально записанное значение. Напр. 10 или "строка" или объект {a:10, b:20}
    • инициализация – придание начального значения. Напр. переменной при создании: var a = 10
    Ответ написан
    3 комментария
  • Как сделать анимацию курсора под текстом?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Можно конечно отключать poiner-events, но если включать его для текста, то это всё равно приведёт к той же проблеме. Что под текстом не будет работать.

    Поковырял немного:


    Основное что изменил - отслеживание событий mousemove не на канвасе, а на всей секции и e.offsetX на e.clientX
    Ответ написан
    1 комментарий
  • Как сверстать подобные блоки?

    LenovoId
    @LenovoId
    svg, css,js


    Ответ написан
    Комментировать
  • Как правильно верстать используя bootstrap?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Как вообще задавать фикс значения используя бутстрап?
    Никак, он не для этого.

    Создавать свой класс? Нормально ли вообще создавать свой класс и юзать его в перемешку с версткой на bootstrap?
    Да, создавать, да, нормально.

    Если да, то как организовывать такие классы в файловой структуре, ведь они будут созданы только в том случае, если возможностей бустрапа не хватит.
    Добавляете файл /assets/css/style.css, подключаете после бутстрап.
    Ответ написан
    Комментировать
  • Замыкания внутри циклов javascript

    dizballanze
    @dizballanze
    Software developer at Yandex
    1. Если как они утверждают цикл будет закончен до того как будет вызвана console.log(i) то почему результат выводится 10 раз?


    У вас же timeout используется, т.е. 10 раз внутри цикла будет запущен таймер, пока первый из таймеров закончится цикл уже пройдет все 10 итераций и соотв i будет иметь значение 10.
    Ответ написан
    Комментировать
  • Как узнать, какой тип у элементов?

    LenovoId
    @LenovoId Автор вопроса
    svg, css,js
    Отвечу сам себе -

    let nodelist = document.querySelectorAll(".items .item").constructor.name;
    let collection = document.getElementsByClassName(".items .item").constructor.name;


    Выводит как и положено
    NodeList и HTMLCollection

    Ответ написан
    3 комментария
  • Как в Firefox удалить прикреплённую ссылку?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    это походу с ярлыков берётся что на домашней странице
    перейдите на about:preferences#home и поставьте галочку напротив пункта Ярлыки если не стоит, далее открываем новую страницу наводим курсор на ярлык после чего у него подсвечивается '...' жмём и выбираем пункт Открепить
    Ответ написан
    1 комментарий
  • С помощью чего сделан эффект как на сайте https://www.fromscout.com/?

    @HARDOOPS
    Ясен пень, что с помощью библиотеки Three.js (threejs.org). Видно ведь, что эти коробки – модели.
    Ответ написан
    Комментировать
  • Какую виртуальную учебную доску (похожую на Miro) можно интегрировать на сайт?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Нужно уточнить спецификации, что конкретно нужно. Вариантов досок много, можно хотя бы начать с их стоимости. Указанный вами Miro очень хорош, и я не могу представить чем он не угодил, но если нужны альтернативы, могу привести минимум 3: Conceptboard, Padlet и Stormboard. Все три норм, но если бы мне нужно было выбрать что-то одно, то это Conceptboard просто из-за простой интеграции с другими сервисами, типа Google Drive и Slack.
    Ответ написан
    Комментировать
  • Разница между JavaScript и HTML5 игрой?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    На html игры не пишут. Их всегда пишут на javascript
    Просто так называют игры, которые для отображения используют холст (canvas)
    Такое название сложилось исторически, с тех времен, когда игры в основном писались на флеше. Вот чтобы их как-то обособить игры на js стали называть играми на html5 в противовес флешу.
    Ответ написан
    Комментировать
  • Как создать сайт с ведением блога?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Что-то вам все втирают какую-то дичь.

    Зачем вообще вам смотреть в сторону каких либо фреймворков, если вы ну совсем ничего в беке не понимаете. Или хотите все нервы оставить на этом проекте?

    Самое простое из того, что предложено вами - это WordPress. Инструкций, как с ним работать в интернете полно. Придётся немного освоить синтаксис PHP и саму технологию натяжки, но только лишь его.
    Навык это очень полезные для фрилансера, если этим промышляете. (но совершенно бесполезный при устройстве в компании, кстати)

    Так же могу предложить присмотреться к какой-нибудь CMS на JS. Но всё это будет точно более трудно поддерживать в будущем. Да и инструкций/туториалов/материалов будет точно меньше чем по WordPress.
    Ответ написан
    2 комментария
  • Как Google узнает местоположение?

    @anton99zel
    29а класс средней школы №7
    Помимо IP адреса есть и другие данные.
    Вот пример, IP Польша, но провайдер Россия.
    К тому же, если аккаунт не новый и ты уже заходил или параллельно авторизован в смартфоне, то в гугл попадет твой российский IP, даже если ты параллельно сидишь с забугорного IP.
    Даже, если акк создашь при включенном VPN, но до этого засветилось устройство с российским IP, то гугл будет думать, что ты в России.
    Браузер может получать информацию из Виндовс, не смотря на языковые настройки...
    Есть такая штука CDP - узнавание клиента и объединение всех его возможных профилей, что гугл и прочие активно пользуют.
    642590d551d6e638258032.png
    Ответ написан
    Комментировать
  • Как сделать следующий эффект для background?

    Aetae
    @Aetae
    Тлен
    Чуть более сложно чем нужно тебе:



    Упростишь сам, если надо.)
    Ответ написан
    Комментировать
  • Какие тестовые задания дают на верстальщика?

    @Xeli
    Завуалированный вопрос о воровстве. Так и пишите прямо мол так и так: "Могут ли такие требования являться обычным мошенничеством"
    Ответ: запросто.
    "Эффективных менеджеров" пользующихся тем или иным видом мошенничества в России очень много . Если права и обязанности сторон не оговорены бумажно в юридически правильных формулировках вероятность кидка приближается к единице.
    Как обезопасить себя от подобного?
    100% средства нет. Хотя я бы посоветовал следующий вариант -- портфолио.
    Код на гитхабе и работающие сайты в продакшене. При просьбе от всяких мутных контор поработать за еду(якобы тестовое задание, по факту это чаще всего реальная работа) вежливо отпинывать с формулировкой нет времени, т.к. работаете над очередным проектом и кивать на портфолио и гитхаб. Фирма действительно нуждающаяся в специалисте вполне им удовлетвориться, мошенники конечно отвянут. Конечно есть вероятность, что и какие то честные фирмы отпадут, но это все таки лучше чем быть обутым дурачком. Удачи.
    UPD:
    Забыл еще добавить при стонотстве потенциальных кидал в стиле: "ну нам надо жи пасматрить как ви работаити", не поддаваться на провокации и предложить встретиться для обсуждения кода из ВАШЕГО портфолио. Для нормальных специалистов действительно ищущих себе коллегу такой беседы будет БОЛЕЕ ЧЕМ достаточно для понимания справитесь ли вы с текущими задачами на данной позиции или нет.
    Ответ написан
    Комментировать
  • Как реализовать ТОП просмотров за день, неделю и месяц?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В свободное от нагрузки время аггрегировать данные за прошлые периоды.
    Прошел день, за прошлый день посчитал, добавил в отдельную таблицу сумму одной строкой и прошлый день весь можно грохнуть.
    Ответ написан
    Комментировать
  • Как сделать только один раз анимацию AOS?

    Symphony
    @Symphony
    data-aos-once="true"
    Ответ написан
    Комментировать