• Как выбрать элементы удовлетворяющие условию выборки?

    Lynn
    @Lynn
    nginx, js, css
    Поиграть со селекторами nth-child и nth-last-child.

    Для начала попробуем выбрать первый элемент последнего неполного ряда. Селектор :nth-child(3n + 1) выберет нам первые элементы каждого ряда.

    Теперь надо ограничить этот список только последним рядом. Видно что нужный нам элемент всегда первый или второй с конца. Так и запишем :nth-last-child(-n + 2).

    В итоге получили селектор :nth-child(3n + 1):nth-last-child(-n + 2).
    Ну а дальше воспользуемся селектором ~ что бы выбрать все (в вашем случае не больше одного) элементы которые идут после уже выбранного.

    Получается вот такой код:
    li:nth-child(3n + 1):nth-last-child(-n + 2),
    li:nth-child(3n + 1):nth-last-child(-n + 2) ~ li {
      .....
    }


    UPD: если надо что бы последний ряд выбирался всегда, даже если он полный, то надо заменить -n + 2 на -n + 3.

    UPD2: можно пойти немного другим путём и выбирать все элементы после последнего элемента в полном ряду. Получится вот так:
    li:nth-child(3n):nth-last-child(-n + 3) ~ li {
      .....
    }


    Ответ написан
    Комментировать
  • Как в addEventListener в функцию передать переменные, если необходимо так же удалять созданный эвент?

    IvanU7n
    @IvanU7n
    nothing interesting here
    если нужно удалить обработчик после однократного срабатывания, есть once в третьем параметре

    если логика удаления другая, то есть вариант:
    const handler = handlePasteImage.bind(null, whatever);
    addEventListener('paste', handler, { capture: true, });

    в handlePasteImage() придёт (whatever, event), а удалять нужно handler

    или
    const handler = {
      whatever: whatever,
      handleEvent(event) {
        handlePasteImage(event, this.whatever);
      },
    };
    addEventListener('paste', handler, { capture: true, });

    в handlePasteImage() придёт (event, whatever), а удалять нужно опять же handler
    Ответ написан
    Комментировать
  • Могу ли я параллельно изучать языки программирования?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Нет, нельзя. Не разрешаю.
    Ответ написан
    Комментировать
  • Возможно ли изменить цвет padding?

    Да.
    Ответ написан
    Комментировать
  • PHP компилятор работает нативно в Visual Studio Code или нужно докачивать что-то?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    PHP работает безо всяких компиляторов, это интерпретируемый язык.
    Ответ написан
    Комментировать
  • Нужен ли babel, если используешь TypeScript?

    bingo347
    @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Typescript compiler - это инструмент проверки типов и компиляции typescript в javascript. Так же он умеет транспайлить конструкции новых стандартов js в более старые стандарты, но это не основная задача этого инструмента, и делает он это хуже целевых инструментов, в частности его можно настроить только на конкретный стандарт.

    Babel - это инструмент для парсинга js кода в AST, обхода и модификации AST и обратной сериализации AST в js. Так же это еще и экосистема плагинов и пресетов. Плагины как правило реализуют транспиляцию одной из фич более нового стандарта в более старый. Пресеты - это просто конфигурируемый набор плагинов.
    Так же в Babel AST есть поддержка некоторых расширений js (а ts - это тоже расширение js), но включается это все флагами.

    В экосистеме babel есть preset-env нацеленный именно на транспиляцию более новых стандартов в более старые. Его особенностью является поддержка browserlist и подключения только тех плагинов, которые нужны для указанных браузеров. За счет этого получается более оптимальный js на выходе, так как многие фичи после транспайлинга работают медленнее чем нативные и занимают больше кода.

    Еще в экосистеме babel есть preset-typescript, который включает поддержку ts синтаксиса и транспиляцию ts в js. При этом, в отличии от tsc, он не делает проверку типов, а некоторые сущности может обрабатывать неправильно (как и большинство сторонних компиляторов ts, т.к. у ts нет строгой спеки и единственным источником правды является код tsc, который далек от идеального).

    Оптимальным по выходному результату (пусть и за счет времени сборки) будет вариант, когда сначала ts код обрабатывается через tsc без транспиляции в старые стандарты, а затем происходит транспиляция с помощью babel + preset-env + browserlist.
    Ответ написан
    3 комментария
  • Можно ли подменить IP посетителю сайта?

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

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Например, слать ему смс с кодом подтверждения.
    Ответ написан
    2 комментария
  • Возможно ли такое реализовать?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Да, на этом стэке это реализовать возможно.
    Достаточно объёмно, но ты справишься
    Ответ написан
    Комментировать
  • Cms или код вручную? Что выбрать при наполнении портфолио?

    DevMan
    @DevMan
    работодателю вообще плевать на это. и на ваше портфолио тож.
    Ответ написан
    3 комментария
  • Какую панель управления хостингом на VPS выбрать в 2021?

    Я перепробовал множество панелей, и имел разный опыт эксплуатации и впечатлений оставленных после использования.

    Cyberpanel - веб-дизайн панели очень плох, но с точки зрения принципов построения панели для сервера который хостит разные сайты - этой панели нет равных среди всех опробованных мною панелей описанных выше. И open_basedir, и разграничение каждого сайта под отдельным пользователем, и приятная структура хранения сайтов аля: /home/пользователь/public_html,log,backup
    И приятные бекапы, и возможность подкрутить всякие штуки по типу Lets Encrypt без проблем, либо ограничение доступа, либо WAF из коробки, либо файловый менеджер, и так далее.

    Но за несколько лет меня эта панель достала. Во-первых, она крайне забагована. Её неоднократно ломали, и ломали мои хобби проекты (статичные сайты). Во вторых - у них через версию баги с обновлениями, которые полностью ломают всю панель и возможность входа внутрь. Причем ломается напрочь без возможности починить, только чистая переустановка. Неоднократно сообщал об этом - никакой помощи нет. В третьих - это баги OpenLiteSpeed, либо баги конфигурации веб-сервера. Когда за 1 месяц собирается сессий на 19 гигов в папке lsphp - это вообще не ок, что аж сервер крашит и inodes все заняты. И это один из багов. Были баги с их кешированием которое включено по умолчанию, и приходилось принудительно в каждом .htaccess отключать для доменов. И баги с бекапами были. Т.е. по принципу созданию в абстрактном понимании - панель топ, классная, молодцы, очень хорошо сделано в плане архитектуры. Но вот баги дурацкие, просто выбешивают.
    Нравилось с ols что все работало относительно хорошо с любым проектом, любыми реврайтами, кешированиями, разными версиями php, и занимало существенно меньше ресурсов чем апач, либо апач и nginx. Но увы - порекомендовать именно эту панель не могу. Я не знаю что должно произойти что бы её допили до нормального состояния.

    VestaCP - долго пользовался этим огрызком. Просто дичайшее отвращение к их темплейтам и конфигам веб-серверов. Какой идиот это писал? И под какие нужды? Огромное количество раз ломали эту панель как в общем, так и лично мне. Но визуально и в плане юзабилити одна из самых беспроблемных и простых и удобных панелей на рынке. В 2021 она мертва. Последние какие-то подвижки и обновления и работа над панелью завершились в году так 2017-2018. Всё остальное делают когда есть свободное время.

    HestiaCP - кусок г. базирующийся на VestaCP, после того как последние забили на разработку.
    Автор этой панели не вытягивает количество проблем и багов в этой панеле и сообщество. Не компетентен, плохо тестирует. Но с точки зрения безопасности в плане админки - он хорошо поработал. Всё остальное - очень плохо. Может даже инсталятор не установить с первого раза панель. Не полноценно поддерживаются разные конфиги установки без апача например на nginx+php-fpm. Крайне убогие наследуемые шаблоны от весты со всеми косяками и проблемами.
    Регулярные баги и проблемы с LetsEncrypt. Жрёт очень много озу. Но визуально хорошо сделано в плане внешнего вида. Под капотом - бред и анархия, но есть куда хуже панельки.
    Этой панели так же как и cyberpanel не хватает крепкого сообщества и волонтеров по допилу панели до нужной кондиции. Увы - очень сырая. Но критических багов как в CyberPanel среди веб-компонентов не было выявлено. Регулярно нужно что-то допиливать в панели.

    FastPanel - лично для меня это какое-то недоразумение. Снова принципы и архитектура вроде хорошая, но все как-то сыро, и иннертно.

    DirectAdmin - скорее мертв, чем жив. Хоть и используется массово на хостерах, но с безопасностью у этой панели швах полный. Если речь идет о шаред хостинге, то взлом одного сайта почти с 100% вероятностью повлечет за собой взлом всех сайтов, так как никаких ограничений в рамках одного аккаунта в плане ACL (разного рода) у панели нет. Из коробки куча абсурда и дегенеративных решений аля блок mysql порта, либо блок других портов через csf. Либо лимиты на размеров файлов. Ранее года 2-3 назад панель была полным днищем. Но после изменений ценовой политики cPanel - нарастили базу, и приняли пулреквесты и предложения, что бы как-то перехватить поток пользователей которые начали мигрировать на другие панели. Я не могу сказать что DirectAdmin в моем личном опыте эксплуатации была хорошей панелью. Мне не понравился опыт взаимодействия, и озвученные выше проблемы особенно с php. В 2021 году интерфейс панели и фичи панели наконец-то удобно расположили, и улучшили для удобства пользователей. Но я бы на этой панеле не сидел. Ну не нравится мне такой подход к панелям в плане архитектуры. Я считаю его не безопасным, убогим.

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

    centminmod - это даже не панель, это скрипты, и автор eva2000 - очень хорошо поработал над ними, и конфигами nginx, myslq, php, и так далее. Это пример того, как должно быть в любой панели из коробки. Конфиги хорошо отточены, допилены, протестированы, и разраб испытывает страсть к серверам и своей панельке, но у него не хватает скилов создать веб-панельку, которой ой как не хватает этому проекту. Одна из лучших панелей в плане стабильности работы и конфигов серверов, из списка озвученного выше. Но не удобная в использовании. Но конфиги - прям конфетка. Но не для мультисайта вообще ниразу, хоть и опции есть. Эта панель для меня некий фундамент, который до меня настроили хорошо, и дали на эксплуатацию. Ручками придется поработать немного в зависимости от веб-приложения (если специфичное), но не так много как в весте. Обычно пару строк измененний в конфигах, не более. Но не работает нормально с множеством сайтов на одном сервере.

    CentOS Web Panel - я вообще не понял что это такое, и зачем оно нужно, и почему оно имеет какую-то популярность.

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

    Остальные не опубликованные панели так же использовал, но не продолжительно.
    Поэтому лень писать о них, и не помню недочеты.

    Одна из самых удобных для меня и простых панелей были: cPanel, Plesk, ISPManager но все платные, и дорогие.
    Сейчас сижу на самописных скриптах и своих nginx конфигах. Ибо достало каждую панель ручками допиливать, либо получать уведомления что сайт не работает, потому что баг в модуле очередной панели.

    И да, в моем "ответе" опыт с 2012 по 2021 год.
    И все панели выше я проверял в 2021 году так же, и у кого-то были существенные изменения, а у кого-то вообще их нет. Т.е. отзыв актуален, но субъективен. Возможно у кого-то был другой опыт, но мой таков, каков он есть.
    Ответ написан
    5 комментариев
  • Как с помощью JS автоматически повернуть экран пользователя на мобильном устройстве?

    Stalker_RED
    @Stalker_RED
    Lynn «Кофеман», неправда, не только сообщение. Можно сделать
    document.body.style.transform = 'rotate(90deg)'; // попробуйте в консоли

    И ширину с высотой подкорректировать.
    Ответ написан
    5 комментариев
  • Есть уже что-то подобное?

    DevMan
    @DevMan
    https://www.json-generator.com/
    пользуюсь им уже лет 5, если не дольше.
    Ответ написан
    Комментировать
  • Что лучше изучать?

    из этого тильда самое перспективное
    Ответ написан
    3 комментария
  • Стоит ли тратить время на изучение float?

    SkiperX
    @SkiperX Куратор тега CSS
    Вот весь флоат
    <div class="row"> 
       <div class="col"></div>
       <div class="col"></div>
       <div class="col"></div>
     </div>

    .row {
        margin-right: -15px;
        margin-left: -15px;
    }
    .row:before,
    .row:after {
        display: table;
        content: " ";
    }
    .row:after {
        clear: both;
    }
    .col {  
        float: left;
        width: 33.33333333%;
        position: relative;
        min-height: 1px;
        padding-right: 15px;
        padding-left: 15px;    
    }
    Ответ написан
    Комментировать
  • Можно ли сохранить соединение к zip архиву между запросами?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Очередной вопрос из серии "можно ли пить воду носом, потому что я залепил себе рот скотчем. отлепить скотч не предлагать".

    Распаковать архив и не маяться дурью
    Ответ написан
    2 комментария
  • Как найти новичку удаленную работу?

    kirbi1996
    @kirbi1996
    Никак
    Ответ написан
    Комментировать
  • Как подняться на уровень выше в sass?

    Emchik
    @Emchik
    Что-то прикольное сделать могу
    Переменная $this.
    Типичная проблема при создании self-controlled компонентов (особенно при использовании методологии BEM) — это создание селекторов внутри модификаторов.

    Вместо:
    .filter-block {
        &__title {
            color: black;
        }
            
        &--expandable {
            .filter-block__title {
                color: blue;
            }
        }
    }


    Можно:
    .filter-block {
        $this: &;
        &__title {
            color: black;
        }
        &--expandable {
            #{$this}__title {
                color: blue;
            }
        }
    }
    Ответ написан
    1 комментарий