Задать вопрос
  • Что делать если не задаётся бэкграунд на nav?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Что значит "не задаётся бэкграунд"? Всё накидывается и работает в соответствии с тем, что указано в css.
    У nav белый фон, у списка внутри - серый, согласно универсальному селектору
    * {
        box-sizing: border-box;
        background: #E5E5E5;
    }
    (без чёткого понимания всех нюансов этого селектора использовать его не рекомендуется).
    Ответ написан
    3 комментария
  • Можно ли постить свои фриланс работы?

    pozZzitiv
    @pozZzitiv
    Дизайнер и перфекционист
    Кратко: можно, если это не было прямо запрещено.

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

    Если запрет прописан в договоре, то нельзя выкладывать.

    Во всех остальных случаях никаких ограничений нет. По-умолчанию считается, что фрилансер может показать свою работу в портфолио.
    Ответ написан
    Комментировать
  • Будет ли читабелен текст в 3 колонки на мобильных устройствах?

    @karminski
    Senior React.JS Developer
    С учётом того, что мы привыкли скроллить страницу сверху вниз, колонки ни в каком виде не будут удобны для чтения.
    Ответ написан
    Комментировать
  • Зачем комментируют перед написанием кода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смыслов много. Во первых исходник не всегда отражает намерения разработчика или есть какая-то информация которая лежит вне этого поля зрения. Например фиксится какое-то сложное поведение кода наподобие undefined behaviour и нужно написать сверху комментарий почему именно сделано так. В противном случае другой разработчик может не понять все эти изменения и откатить их или просто выкинуть кусок кода за непониманием. Такова природа людей. Непонятное - откидываем в сторону. А если будет написано :
    // Warning! Do not touch next line of code, because ...


    Комментировать также полезно для самого себя когда идет описание например редкого алгоритма который
    ты откуда-то скопировал или сам реализовал.

    Смысл также есть в авто-документировании для авто-документации. По ключевым словам типа Doxygen, JavaDoc можно посмотреть примеры и туториалы по документированию. Это очень хороший навык который сделает в беспорядочной разработке видимость ведения документации. Тут надо конечно идти от scrum-agile и потребностей бизнеса но бывают также проекты (ведомственные, и прочие промышленные) где это важно, и где требуют сопроводительную бумажку. Тулзов для этого много. Я перечислил только 2 но их больше.

    Вот что точно не надо комментировать так это : твою подпись, дату-время изменений и заголовок JIRA-ticket на основании которого велась разработка. Вся эта инфа всегда храниться в системах версионного контроля и нет смысла ее дублировать дважды.
    Ответ написан
    3 комментария
  • Путаница с z-index - что я упускаю?

    @Asokr
    Задайте элементу с тенью
    pointer-events: none
    Ответ написан
    1 комментарий
  • Хорошее ли решение разделение таблиц юзер и роли?

    @alexalexes
    Вы выделили в системе два класса сущностей. Одна - Пользователь, вторая - Роль.
    Под каждый класс нужна отдельная таблица.
    Как определить какие взаимоотношения между этими классами?
    Нужно примерить следующие коммутативные гипотезы:
    Первая пара гипотез:
    "Один пользователь должен (может) иметь только одну роль."
    "Одна роль должна (может) быть назначена многим пользователям."
    Вторая пара гипотез:
    "Один пользователь должен (может) иметь несколько ролей."
    "Одна роль должна (может) быть назначена многим пользователям."
    Если в вашей архитектуре системы справедлива первая пара гипотез, то вы строите взаимоотношение между классами Роль и Пользователь как "один ко многим". Это значит, что у таблицы Пользователь будет внешний ключ в виде идентификатора роли, тем самым вы каждому пользователю сможете назначить только одну роль. Но сами роли могут повторятся у разных пользователей.
    Если в вашей архитектуре системы справедлива вторая пара гипотез, то вы строите взаимоотношение между классами Роль и Пользователь как "многим ко многим". Для этого нужно создать промежуточную таблицу, например Пользователь_и_роль, в которой будут два внешних ключа - идентификатор пользователя и идентификатор роли пользователя (можно, но технически нужно еще создать еще идентификатор первичного ключа, чтобы можно было корректно обращаться к записям этой таблицы, не путая их). В этом случае каждому пользователю можно выделить целый набор ролей, не ограничиваясь одной ролью.
    Ответ написан
    Комментировать
  • Нужно ли Frontend разработчику мониторить обновления?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    За обновлениями периодически нужно следить, просто, чтобы знать, что меняется, появляется или удаляется из новых версий. Нужно ли обновлять - это уже вопрос потребностей проекта, клиента, команды.

    Я обычно просматриваю изменения ключевых пакетов/библиотек раз в 1-3 месяца.

    В большом проекте ключевые пакеты/библиотеки может быть сложно обновить, особенно если меняется номер старшей (major) версии (например, Bootstrap v4 => v5). Несущественные изменения (minor), в некоторых случаях могут иметь ощутимые последствия, что-то может сломаться или изменится поведение.

    Я бы не стал просто так обновлять такой пакет, как Bootstrap. Если обновление ключевого пакета происходит, то это неизбежно увеличит нагрузку на QA команду (quality assurance - обеспечение качества, тестирование). В случае с Bootstrap, вероятно придется весь проект перетестировать. Без автоматического тестирования будет особенно тяжко.

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

    Если вы используете менеджер пакетов, например npm, то скорее всего он вам будет показывать предупреждения об обнаруженных уязвимостях в пакетах и варианты их устранения. За этим лучше следить, чтобы потом не было неприятных сюрпризов. Как правило, с менеджером пакетов это делать проще, достаточно будет проверить отдельные предупреждения, а не все пакеты.

    Ну и главное, не делать просто так обновления на текущей активной версии проекта. Чем дольше проект с обновленными пакетами будет находиться на тестировании, тем лучше.
    Ответ написан
    Комментировать
  • Можно ли во время изучения JS больше ориентироваться на практику чем на книги и пользоваться поиском нужных команд?

    @Niksak
    Только так и можно, учить инструменты в бою)
    Теория выветривается
    Ответ написан
    Комментировать
  • Front-end разработчик обязан уметь верстать в разных программах?

    @alexalexes
    Какой бы программой вы не пользовались, вам нужно уметь всего лишь снимать метрики с графических примитивов с помощью линейки, пипеткой брать цвет, знать как извлечь коэффициент прозрачности и характеристики градиентов, блюров, снимать характеристики шрифта с текста. Больше ценится навык, как вы все эти параметры наиболее быстро запихнете в CSS или напишите шаблон для предпроцессора CSS. И если какая-та программа на выходе получит сырой CSS - как его дошлифовать до конечного результата?
    Ответ написан
    Комментировать
  • Разница между JavaScript и HTML5 игрой?

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

    @furashcka
    Наверняка у вас есть список url из хлебных крошек, если нет то на крайний случай их можно вытащить из html, их можно представить в виде массива: [`site.com/catalog`, `site.com/catalog/sub-catalog`, `site.com/catalog/sub-catalog/item`], имея данный массив находим текущий index по location.href
    let breadcrumbs = [`site.com/catalog`, `site.com/catalog/sub-catalog`, `site.com/catalog/sub-catalog/item`];
    let indexCurrent = breadcrumbs.indexOf(location.href);
    let indexPrev = Math.max(0, indexCurrent - 1);
    let prevURL = breadcrumbs[indexPrev];
    
    location.href = prevURL;


    Как видите вам понадобится массив с url, по которому вы можете возвращаться назад, за счёт currentIndex - 1, пока не дойдёте до главной страницы, у которой обычно index = 0
    Ответ написан
    Комментировать
  • Как правильно оптимизировать страницу?

    @strelok011
    Оптимизация html и css по сравнению с оптимизацией png - бесполезная ерунда. Вы можете выиграть допустим 2-5 кб против 2-3 мб одного png, в условиях современного интернета этот выигрыш ничего не даст. Даже запрос на сервер может больше времени занять чем скачивание.
    Необходимо обратиться именно к оптимизации png при этом желательно с минимальными потерями по качеству.
    Советую для начала ознакомиться вот с этой статьёй How To Optimize PNG, а потом поискать инструмент поудобнее, просто погуглив PNG optimizer. Вот сравнение нескольких пакетных оптимизаторов. Я при необходимости оптимизации png использую RIOT, он может оптимизировать png, gif и jpg. Из личного опыта - советую попробовать первым делом оптимизацию палитры. Плюс есть не искажающие оптимизации (например, удаление мета-данных). Если используете прозрачность - она сильно добавляет веса в изображение, с ней тоже можно бороться.

    Всё это хорошо, если у вас есть возможность оптимизировать изображения, статично размещенные на сайте.
    Ответ написан
    Комментировать
  • Чем заменить тег br?

    @AndreyBLG
    "Какое-то слово не хочет переноситься"
    Не ясна конкретная ситуация, но вдруг будет полезно, можно попробовать настроить переносы, используя неразрывный пробел между словами, которые точно не должны быть на разных строках.
    Например, в предложении "Lorem ipsum dolor sit amet", перенос строки происходит так:

    Lorem ipsum
    dolor sit amet

    А нужно, чтобы было так

    Lorem ipsum dolor
    sit amet

    То между "ipsum" и "dolor" можно поставить неразрывный пробел.
    Ответ написан
    5 комментариев
  • Почему верстальщики обычно вырезают круглую картинку квадратом?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    1) Круглые картинки без фона - это либо пнг, либо вебп (думаю неприменимость формата гиф очевидна и так). Не все картинки хорошо смотрятся в пнг и не все браузеры полностью поддерживают вебп.

    2) Цсс такая штука, специально придуманная для того, чтобы если завтра мода на круглое сменится модой на квадратное, то "легким движением руки брюки превращаются в элегантные шорты". И для этого не понадобится перепердоливать стотыщь картинок обратно в квадраты.

    3) В обратную сторону так же работает - для смены дизайна с квадрата на круг достаточно просто скруглить углы контейнера.

    4) Сделать тумб с "круглым видом" программно сложнее чем с квадратным.

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

    Короче, не зря делают.

    PS: На дом - научиться самостоятельно искать аргументы в пользу / против какого-либо замеченного технологического приема.
    Ответ написан
    1 комментарий
  • Вложение тегов html?

    Lynn
    @Lynn
    nginx, js, css
    Не все элементы можно вкладывать в какие-то другие элементы.

    В частности в тег <p> можно вкладывать только строчные элементы.

    Формальное описание что можно вкладывать в тег можно посмотреть в спецификации или MDN.

    В частности для <p> там написано «Разрешённое содержимое: фразовый контент».

    В случае неправильного вложения браузер пытается починить DOM-дерево как может (на самом деле по определённым правилам которые тоже есть в спецификации) и чаще всего он просто закрывает теги до тех пор пока не получит не доберётся до родителя в котором данный контент разрешён.

    UPD: Вопрос на самом деле довольно неочевидный для новичков, так что есть полезный сайт https://caninclude.glitch.me/caninclude?child=ul&p...
    Ответ написан
    Комментировать
  • При каких знаниях первого яп можно начинать изучение второго?

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

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Законно ли брать png материалы из интернета и использовать их в своих работах а также продавать?

    В общем случае нет. У каждой картинки, текстуры, любой завитушки - есть автор, который ее создал. И этому автору принадлежат неотчуждаемые авторские права (то есть те права, которые у него невозможно отобрать и от которых нельзя отказаться), а также отчуждаемые авторские права (которыми обычно и торгуют).
    Автор может лицензировать использование своей работы по любой схеме лицензии, которая взбредет ему в голову - платной, бесплатной, какой угодно, может использовать стандартное лицензионное соглашение или придумать свое.
    Если он разрешает использовать его работы бесплатно (в том числе в коммерческих целях, то есть для перепродажи) - все нормально, если же нет - можно нарваться на УК 146 (это маловероятно, конечно, если у тебя покупателей три калеки, да и автор - такой же, но если вдруг твой проект взлетает или ты случайно обьел заметного автора - готовься к проблемам)
    Ответ написан
    5 комментариев
  • "Одинаковые заголовки и описания страниц". Нужно ли исправлять?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Оцените характер трафа, посмотрите, как реализовано у топовых.
    Я не продвигал сайты такого типа, но предположу:
    а) Большой процент трафа должен подразумеваться из "Картинок" ПС. Стало быть, закрывать такие странички в ноиндекс - себе дороже.
    б) Значение имеют страницы категорий и тегов. Тегируйте каталог по классике, делайте, как в больших интернет-магазинах на оценке поискового спроса. Ну банально: есть спрос на "валпейпер 1920 тёмный киберпанк" - нужна категория.
    в) Шаблонизация рулит. Что мешает при загрузке картинки дать ей внятное название, которое будет подставляться в тайтл и дескрип? Ну там по типу "Обои на рабочий стол + Синее море с пальмой + 1920х1080 + скачать бесплатно".
    К этому добавьте микроразметку по картинкам. Она не для сниппетов нужна, а чтобы ПС понимали, чем вот эта страничка с минимумом контента отличается от той, где всё практически идентичное. В индекс всё равно всё не пойдёт, но будет заметно проще с техничкой - как минимум.
    Ответ написан
    3 комментария
  • Для чего нужен грид в 24 колонки?

    neuotq
    @neuotq
    Прокрастинация
    Чаще всего используют 12 колонок. Причина в сравнении с красивыми 10 проста - большее количество вариаций делений при относительно небольшом числе колонок, учитывая исходные что ширина бОльшей часть экранов кратно 8. Поэтому может вернее будет назвать эту систему системой 8-пиксельной, тк шаг в 8 пикселей для большинства размеров(при хард сетке всё кратно 8, при софт только расстояния между элементами). Таким образом легко быстро выстраивается модульная сетка с приятным ритмом.
    Поэтому многие системы/фреймворки по умолчанию настроены на 12 колонок.
    24 колонки - можно условно считать вариацией для любителей чуть большей вариативности и тонкостей с шириной/расстоянием между колонками и шага в 4 пикселя и тонкой настройки золотого сечения на странице.
    Отдельно стоят любители 16 колонок(относительно популярный вариант), это, как другие менее популярные, уже частные случаи сетки и дизайна, где все в ручную подбирается, либо изначально допускается меньшая вариативность размещения элементов/колонок/модулей. Поэтому прям зацикливаться не стоит, исходите из своих задач и требований, полёта фантазии дизайнера.
    Ответ написан
    Комментировать
  • Заказывать CMS с 0 или использовать существующие?

    @mletov
    Составляете список того, что должно быть в проекте. А лучше не просто список, а написать полноценное техническое задание.

    Далее смотрите, что из требуемого функционала уже есть в CMS (хотя бы похожее или что CMS позволяет быстро реализовать), а что носит уникальный характер, заточенный именно под ваши нужны. Чем больше уникального функционала, тем больше плюсов в написании с нуля, ну и наоборот, чем проект более типовой (новости, статьи, каталоги, фотогалереи, формы обратной связи и т д), тем выгоднее брать CMS.
    Ответ написан
    1 комментарий