• Как сверстать Radio Buttons?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Для начала, код — невалидное гавно. Смотри сюда, чтобы понять, почему. Кроме прочего, твои label ни к чему не обязывают (оно валидно, но кастрировано).

    А ответ да, сделать из этого, как на картинке можно. Приводишь в чувство верстку, скрываешь стилями input, делаешь декоративный список, и по селекторам уже ваяешь обвес для выбранного, деактивированного и т.д.
    Ответ написан
  • Как сделать так, чтобы форма не отправлялась более 1 раза?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега HTML
    Руководитель frontend направления, предприниматель
    Не глядя. Проверку на заполнение полей + reCaptcha \ Подшаманить с распознаванием полей роботами.

    Проверка на заполненность полей это валидация. Раздел валидации полей содержит еще тонну вариаций. Советую ознакомиться.
    Ответ написан
    3 комментария
  • Как забрать данные из Wix?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    Если имеешь доступ к HTML формы, в action формы кинь ссылку на API своего сайта, который примет данные и обработает.
    Ответ написан
  • Как реализовать выход блока за контейнер?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Если ты хочешь сделать переполнение, то просто запрети перенос элементов внутри зеленого блока. Сделать это можно с помощью flex-wrap: nowrap, если он уже флексбокс. Но ты можешь его таким сделать, добавив свойство display: flex. Это я все еще про зеленый блок.

    Но, таким образом ты не сможешь регулировать тот момент, чтобы при переполнении они достигали конца экрана. Это значит, что если фиксированный элемент слайдов будет меньше, или внутри них контент будет меньше, чем 33% от левого края зеленого блока и до конца экрана, то они будут либо не достигать, либо создавать горизонтальную прокрутку.

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

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

    Даже если ты решишь реализовать это с помощью абсолютного позиционирования, размеры тебе все равно придется считать с помощью JS.

    Ну а если же тебе надо просто, чтобы оберазалась правая часть слайдера при переполнении (скажем для эффекта появления из-за границы черного блока), то ничего считать не надо, просто делай первые пункты выше.
    Ответ написан
    Комментировать
  • Что почитать/посмотреть про дизайн для разработчика?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Dribble. Интерфейсы в целом вау, но обычно просто красивое гавно. Тем не менее некоторые фишки высмотреть можно.

    Если много серьезнее настроен, посмотри в сторону неумирающей классики: Алан Купер. Что-то пoнoвee — библиотеку Горбунова. У них специфичный взгляд, я лично не со всем согласен и подход местами дурацкий, но скорее всего то, что ты ищешь.

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

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    Form, внутри которой input type checkbox\radiobutton (выбор да нет) + range (для ползунка) и кнопка либо button, либо input type submit.

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

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Чтобы добавлять\менять классы, используй toggleClass('class')\addClass('class')\removeClass('class').

    А чтобы реализовать missclick, обратись к документации про всплытие и перехват событий.
    Ответ написан
    Комментировать
  • Как сделать сетку бдя блоков как в "крестики-нолики"?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Если ты знаешь конечное количество заранее, то используй селекторы (количество столбцов ты точно знаешь заранее, первую строку, а вот последнюю не факт).
    Если ты не знаешь, то используй JS, чтобы определить крайние элементы и убирать им границу.
    Ты можешь использовать table, они умеют во внутренние границы, но ты просрешься на адаптиве.
    Ты можешь использовать гриды с gap и цветом фона родителя в цвет границы и «белым» дивов, тогда они будут проглядывать.
    Ты можешь использовать background на повторе, который будет имитировать эти границы.

    Короче, вариантов уйма просто. Выбирай не хочу и иди реализовывать.
    Ответ написан
    Комментировать
  • Как сохранить лайк пользователя?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Нус, смотри. У тебя привязка к пользователю есть? Или анонимка.

    Если есть, то тебе стоит сделать связь многое ко многому (чисто, чтобы проверять, лайкнул ли юзер), и дополнительно создай ключ с числом лайком у картинок. Это позволит сэкономить вычислительные мощности и не считать количество всех лайков у данной картинки.

    Ну и да, картинки у тебя будут не просто файлами в системе, а медиабиблитекой (если еще нет).

    Ну и мне кажется, дешевле сделать через JS, т.е. без перезагрузки. А именно, по клику вызвать функцию из API бэка, в которую надо передать id пользователя, картинки и инкрементировать число лайков. В принципе можешь не вызывать число лайков в ответку, При обновлении страницы оно само придет.

    А если нет пользователя, то просто инкрементируй число лайков и в кукисы\localStorage пиши, какой имаге добавлен лайк. И вообще оба метода бы совместить. Но второй слетает при очистке истории (кроме числа лайков), так что таким образом можно залайкать до смерти твой сервак. Не рекомендую в общем).
    Ответ написан
    Комментировать
  • Почему вертикальное выравнивание текста работает по разному на десктопе и мобильных устройствах?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Выше тебе показали метрики. Ты можешь на базе их создать канву для иконки, чтобы, вписать ее, скажем, в x-height, да экспортировать в виде кода, задать ей свойства inline уже в html-коде, чтобы она встроилась, как текст.

    Придется пошаманить с настройкой ее как инлайновой (да или inline-block) единицы, но оно того стоит. По этому принципу можно и регулировать свои иконочные шрифты под основное начертание в проекте. Но это уже другая тема.
    Ответ написан
  • БЭМ - Как правильно унаследовать элемент дочернего блока?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Если есть возможность, используй модификатор для дочернего элемента блока юзер.
    Если ты собираешься существенно изменить свойства блока — создавай новый блок. Чтобы в будущем не оказаться в ловушке у кода.
    Можешь сделать обращение напрямую к блоку изображения (да, надо, чтобы изображение в таком случае тоже было блоком. Атомарность етить ее)., либо просто к изображению.

    В целом первый вариант предпочтителен. Так как остальные могу спокойно привести не туда. Хотя первый и приведет к добавлению кода везде.

    А твой вопрос в документации тут, в рубрике «как хотите, так и еб...» (На сайте не пашут анкоры, так что просто глянь, что в адресной строке и докрути).

    Впрочем, в целом, такое обычно делать и не приходится. Жестко так миксовать в смысле. В этом и заключается принцип БЭМ, «взболтать, не смешивать».
    Ответ написан
    5 комментариев
  • Как установить более 2 google recaptca на один сайт?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Верно замечаешь, Invisible reCAPTCHA. Либо вообще не используются (замена чем-то другим, либо контент, неподвластный ботам).
    Ответ написан
  • Flexbox как вынести один элемент?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    order + медиазапросы + css + flexbox.
    Ответ написан
  • Как изменить документ pdf с помощью js?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    1. Сделай верстку (не документ), куда придут данные → дальше на печать в PDF. Сам PDF формат не редактируемый.
    2. Либо смотри в сторону серверной генерации по шаблону.

    Резюмирую: тебе в исходниках нужен не PDF, а шаблон.
    Ответ написан
    Комментировать
  • Одновременно вырубились два сайта с одинаковыми темами. Wordpress. Что это может быть?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    И смех и грех.

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

    Искать надо в сторону таких вот зависимостей. Ибо за вирусы хостер бы первый завопил с большей вероятностью. А некоторые, к слову, иногда подсказывают, что именно дает такой таймаут (я пока одного встречал хостера).
    Ответ написан
  • Как отправить данные с формы на сайте на сторонний PHP скрипт?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Если у тебя есть возможность настроить тот удаленный сервер, то сконфигурируй его соответствующим образом. Тогда проблемы с кроссдоменкой не будет. Просто почитай про CORS.

    Также лови небольшой хак: бэкенду вообще до балды на все эти ограничения. Если не хочешь париться, отдай на своем домене обработку в php, а уже из него бросай на удаленный. Хак грязноват, как для такого простого случая, но все же имеет место жить.

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

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    Тебе нужно в цикле перебирать элементы и каждому вешать слушатель. А ты вешаешь класс ко всем сразу.
    Ответ написан
  • Как сделать чтобы блоки не красились при наложении?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Не использовать прозрачность.
    Ответ написан
    2 комментария
  • Как расположить 2 и 3 блоки один под другим?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    5e79f7d1ebbba647729703.png

    Тут 4 «дива». Если первые два находятся в обертке флекса, то высота по умолчанию зависит один от другого (свойство со stretch). Поэтому, если второй сделать тоже флексом (может быть даже ориентацией column), и его детям высоту по 50%, то получится как на пикче. Кстати, это будет работать и в обратную сторону, при переполнении второго блока, высота первого возрастет. Можно захардкодить фиксированными размерами.

    Ну или по старинце нафигарить абсолютным позиционированием\таблицами, тут уж на что рука поднимется.

    Минусы: осттупы. Если они тебе нужны, без некоторой боли ты их просто так не сделаешь, по умолчанию gap есть у гридов. Но его [грид] не ест осел.
    Ответ написан
    1 комментарий
  • Как вывести на странице поле базы данных с HTML разметкой?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    {{ a.text | safe }}
    Ответ написан
    Комментировать