Задать вопрос
  • Как сделать кнопку назад на 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
    //COPY01 EXEC PGM=IEBGENER
    Законно ли брать 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 комментарий
  • Какова нагрузка от использования слайдер Swiper?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Вам кто мешает сделать сначала, а потом уже, при условии, что всё будет глючить, переделать? 20 штук - не так и много, к тому же все они используют одну кодовую базу.
    На готовом решении вы эти слайдеры соберёте условно за 1 час все. Чтобы написать своё у вас уйдёт часа 2 только на то, чтобы продумать структуру общую для всех слайдеров. Сделайте сначала простой вариант. Если не сработает - будете думать, как оптимизировать.

    На Swiper свет клином не сошёлся, есть слайдеры и попроще, и полегче. Вариантов масса:
    https://glidejs.com/
    https://www.embla-carousel.com/
    https://nickpiscitelli.github.io/Glider.js/
    https://swiffyslider.com/
    https://splidejs.com/
    https://github.com/RensTillmann/CarouselJS
    https://github.com/rchisholm/vanilla-slider
    Ответ написан
    1 комментарий
  • Что делать в такой ситуации, когда заказчик не оплачивает сделанный заказ?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    херней страдаешь

    если не первый раз и предыдущие ОПЛАЧЕНЫ - радоваться надо

    если чел говно - больше не обратится, обратится - у тебя есть повод отказать, и заберешь и предоплату возьмешь
    если не говно - , и заберешь и предоплату возьмешь

    так что оставляй как есть и просто ЖДИ
    фишка в том что нанять делавшего на доработки дешевле нового
    Ответ написан
    Комментировать
  • Как создать язык программирования?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как создать свой язык программирования?

    Точно так же, как и любую другую программу: сначала спроектировать, а потом реализовать.

    Без другого языка программирования! Полностью с нуля.

    В самом низу находится машинный код. Выглядит примерно вот так:
    08 04 83 fa 08 04 83 fb 08 04 83 fd 08 04 84 00
    У каждого процессора есть свой набор инструкций, которые кодируются машинным кодом. Открываем справочник и пишем нужный код для нужной ОС/железа. Ничего сложного, правда же? =)

    Ведь как-то создали первый ЯП.

    Достаточно почитать историю появления первых ЭВМ. Они представляли из себя набор переключателей отдельных битов, которые позже эволюционировали в перфокарты, которые в свою очередь представляли из себя прообраз современных исполняемых файлов. С увеличением количества доступных команд, усложнением техники и появлением накопителей программы так же становились все сложнее и сложнее: поэтому решили упростить запись и придумали первый ассемблер. Дальнейшее развитие привело к появлению первого ЯП высокого уровня и далее более высокие уровни абстракции, используя которые сегодня пишутся все программы.

    Так что в вашем случае вам надо пройти весь этот путь самостоятельно. Примерно так:
    1. На машинном коде реализовать минимальный ассемблер
    2. Используя свой минимальный ассемблер реализовать простейший компилятор этого ассемблера
    3. Расширить компилятор ассемблера до стандартного набора инструкций
    4. На ассемблере реализовать транслятор и компилятор ЯП высокого уровня
    5. Реализовать необходимый набор инструкций для написания компилятора этого же ЯП
    6. Написать этот самый компилятор своего ЯП на нём же и далее уже скомпилировать первую самостоятельную версию своего ЯП без использования других ЯП
    Ответ написан
    3 комментария
  • Как сделать такую кнопку?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Жму руку дизайнеру, молодец, не как у всех.

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

    Изначально я не обратил внимания, что нижний край строго горизонтальный, и накидал такое как стартовую точку



    Но когда заметил - понял, что так в принципе не выйдет сделать, на CSS нельзя "зафиксировать от трансформации" две стороны сразу.

    Так что остаётся вариант с фоновой SVG-шкой, что по сути "фоновая картинка", либо вариант со вставкой этой SVG напрямую в кнопку (прям инлайном) и дальнейшие манипуляции с ней, если требуется адекватный ховер.

    Делать лень, это нетрудно :)
    Ответ написан
    2 комментария
  • Как организовать хранение фронтенда и бекенда?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если это единый проект - то ему нужен один репозиатрий.
    Ответ написан
    2 комментария
  • Почему могут быть одни отказы по резюме?

    @nApoBo3
    В огромно кол-ве компаний у HR есть четкий фильтр по опыту, вы его не проходите.
    Большая часть компаний осуществлявших массовые стажировки начинающих специалистов из РФ ушли. Рынок младших специалистов и до этого, последние несколько лет, был не сахар, а сейчас можно сказать он совсем сдулся.
    Джуны реально должны пробивать лбом стены, чтобы попасть к более менее приличное место.
    Так, что держитесь за текущую позицию, набирайте 2-3 года опыта, все это время учитесь.
    Ответ написан
    Комментировать
  • Как скрыть backend своего сайта?

    @rPman
    В общем случае - никак

    Но можно сделать этот процесс на столько сложным, что смысла в этом уже никакого не будет. С помощью обфускации кода и использовании алгоритмов шифрования данных, передаваемых в браузер (не про https а когда данные, загружаемые браузером и передаваемые в скрипты/данные - зашифрованы). А чтобы конечный скрипт нельзя было вытащить через модификацию браузера (например логировать eval) то можно саму виртуальную машину, исполняющую скрипты, реализовать на js (wasm).

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

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

    p.s. есть еще гомоморфное шифрование, когда есть необходимость совершать какие то операции над данными, которые зашифрованы, без их расшифровки. Особо его применить в данной задаче сложно но бывают случаи когда можно выкрутиться. Если что это решение очень сложное (читай дорогое) в реализации, готовых решений нет (по крайней мере для браузера и javascript) а еще оно потребляет процессорные ресурсы.
    Ответ написан
    1 комментарий
  • Что лучше VPS/Хостинг (2 сайта и 2 почтовых сервиса)?

    Sanes
    @Sanes
    Рассылку может ограничить хостер независимо от услуги. Зависит от правил хостинга и легитимности рассылки.
    Ознакомьтесь сначала с правилами. Для рассылок лучше использовать специализированные сервисы.
    Ответ написан
    Комментировать
  • Работать в IT или продолжить учебу?

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

    Диплом - полезная штука и отказываться от получения образования совсем тоже не следует.

    Лучший выход - перейти на заочку и работать.

    Диплом бакалавра пригодится, чтобы потом получить рабочую визу куда-нибудь в ЕС, например или продолжить обучение на магистратуре, если это интересно.

    На мой взгляд, окончательное решение должен решать непосредственно тот, кого это касается
    Ответ написан
    Комментировать