Задать вопрос
  • Как это правильно записать в SCSS?

    Ankhena
    @Ankhena
    Нежно люблю верстку
    Можно оставить как есть.

    Можно переписать так:

    .parent__child {
      background: gray;
      @media (max-width: 777px) {
        background: orange;
        
        .parent--custom & {
        background: red;
      }
     }
    }


    можно так:

    .parent__child {
      background: gray;
      @media (max-width: 777px) {
        background: orange;
      }
    
      .parent--custom & {
        @media (max-width: 777px) {
          background: red;
        }
      }
    }


    А совсем хорошо вот так:
    .parent__child {
      --color: gray;
      background: var(--color);
      @media (max-width: 777px) {
        --color: orange;
      }
    
      .parent--custom & {
        @media (max-width: 777px) {
          --color: red;
        }
      }
    }
    Ответ написан
    2 комментария
  • Как можно отключить стили рекурсивного элемента?

    nazares
    @nazares
    Software Engineer
    .example_3 .example, .example_3 .example > * {
      all: initial;
    }
    Ответ написан
    Комментировать
  • Как избавиться от бесконечных условий в php?

    cr1gger
    @cr1gger
    Все дороги ведут в Рим — встретимся в Риме!
    <?php
    $doc_count = 255;
    
    echo "Стоимость " . $doc_count . " символов составит: " . getPrice($doc_count) . " рублей";
    
    function getPrice($count_symbols)
    {
        $price_one_part = 99;
        $amount = 500;
        return floor($count_symbols / $price_one_part) * $amount;
    }


    Стоимость 255 символов составит: 1000 рублей
    Ответ написан
    1 комментарий
  • Как избавиться от бесконечных условий в php?

    @alekcena
    Нелинейный наставник
    Сумма за 99 символов
    У нас есть 205 символов
    За каждые 99 символов прайс 500 рублей
    1) Делаем деление всего символов на 99
    2) Умножаем результат на 500 рублей

    ПС:
    Это даже не программирование.
    Ответ написан
    Комментировать
  • Как избавиться от бесконечных условий в php?

    aliencash
    @aliencash
    Партизан
    Но у вас же тут просто формула.
    $sum = (1+floor($number_of_characters / 100)) * 499;
    Ответ написан
    Комментировать
  • Как передать this в коллбек-функцию в данном случае?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    const media = this.media = {
        loaded: null,
        total: null
    };
    
    this.$http.post('/api/media/upload', formData, {
        uploadProgress(e) {
            media.loaded = e.loaded;
            media.total = e.total;
        },
    })
    Ответ написан
    Комментировать
  • Какую панель управления хостингом на 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 комментариев
  • Установка SSD в ноутбук с уже установленной Windows?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Какова вероятность нормальной его работы после данных манипуляций в ноутбуке A, если до
    всех манипуляций создать точку восстановления?
    В данной ситуации в случае проблем поможет только бэкап, точка восстановления никак не поможет.

    Точка восстановления это просто теневая копия - в случае перестановки диска в другой компьютер она будет удалена, в случае проблем с диском - испорчена.
    Ответ написан
    Комментировать
  • Установка SSD в ноутбук с уже установленной Windows?

    SagePtr
    @SagePtr
    Еда - это святое
    Перед тем, как ноут выключить и вынуть диск - отключить различные функции вроде быстрого запуска и гибернации. Иначе есть риск, что гибернация всё же будет использована, что может навредить целостности файловой системы, если между засыпанием и пробуждением диск извлекался и использовался на другой системе (я однажды так сломал системный раздел, пришлось из бэкапа восстанавливать). Точка восстановления не спасёт никак, она хранится на том же томе.
    Ответ написан
    1 комментарий
  • Как сделать чтоб бордер кнопки горел только несколько секунд?

    YavaDev
    @YavaDev
    Ответ написан
    Комментировать
  • Почему alert, вызванный без аргументов, показывает результат?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Вы в then в любом случае передаёте функцию.
    В первом случае, эта функция:
    result => alert(result)
    Во втором просто:
    alert

    Проще пронять на переменных, мне кажется. Если вы функцию из первого примера передадите в переменную и скормите then всё точно так же сработает:
    const func = result => alert(result);
    let promise = new Promise(resolve => resolve('Done!')).then(func) //Выполнится func

    Смысл в том, что во всех трёх случаях вы передаёте аргументом в then функцию которая принимает 1 аргумент (результат) и что-то с ним делает: передаёт в alert или выводит диалоговое окно сразу, разницы нет.
    Ответ написан
    4 комментария
  • Почему не переназначает стиль?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Специфичность селекторов

    Верхний селектор имеет больший вес. Там селектор класса + селектор псевдокласса.
    Ответ написан
    3 комментария
  • Await в axios не работает?

    wapster92
    @wapster92 Куратор тега JavaScript
    async function probSetter(order_id) {
    
      return await axios.get(`http://site.local/calc-probs?order_id=${order_id}`)
    }
    
    const arr = [1, 2]
    const promises = arr.map(n => proprobSetter(n))
    Promise.all(promises).then(results => {
      results.forEach((n, i) => {
        console.log(`${i} = ${n}`)
      });
    })
    Ответ написан
    1 комментарий
  • Влияние css3 на скорость сайта и производительность ПК?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно начать с этой заметки и таблички csstriggers. В двух словах - важно то, какие CSS-свойства меняются, т.к. большинство из них заставляют браузер пересчитывать всю страницу, чтобы ее отрендерить. А пересчитывать реально большую страницу 60 раз в секунду - дело такое. В этом смысле если анимацию можно сделать с помощью только transform и opacity - лучше так и сделать. А можно это почти всегда.

    Фильтры есть разные. Здесь CSS, SVG, что-то свое на WebGL - не важно, важен алгоритм. Если фильтр просто для каждого пикселя меняет цвет например, то он даст минимальную дополнительную нагрузку - там будет линейная зависимость количества операций от количества пикселей. А вот blur или тени уже требуют для каждого пикселя что-то считать в зависимости от соседних пикселей. Чем более сильный blur, тем больше вычислений требуется. У ноутбуков со встроенной графикой или телефонов может просто не хватать возможностей по железу и все будет тормозить. Ну и не стоит забывать, что загруженная на 99% видеокарта заставит тормозить все, даже если центральный процессор не загружен вообще.
    Ответ написан
    1 комментарий
  • Что делать если на мобильном телефоне ссылка открываеться со второго клика?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Предположу, что это связано со следующим:
    У вас есть div блок с классом: cms-banner-inner
    к нему добавлен event из js файла doubletaptogo.js (двойной клик, чтобы продолжить)
    cyDYFai.png

    Вот, ссылка на файл, который это делает:
    http://testsiteforbudsegment.pp.ua/wp-content/themes/toolsjet/js/codezeel/doubletaptogo.js

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

    /*
    	By Osvaldas Valutis, www.osvaldas.info
    	Available for use under the MIT License
    */
    
    
    
    ;(function( $, window, document, undefined )
    {
    	$.fn.doubleTapToGo = function( params )
    	{
    		if( !( 'ontouchstart' in window ) &&
    			!navigator.msMaxTouchPoints &&
    			!navigator.userAgent.toLowerCase().match( /windows phone os 7/i ) ) return false;
    
    		this.each( function()
    		{
    			var curItem = false;
    
    			$( this ).on( 'click', function( e )
    			{
    				var item = $( this );
    				if( item[ 0 ] != curItem[ 0 ] )
    				{
    					e.preventDefault();
    					curItem = item;
    				}
    			});
    
    			$( document ).on( 'click touchstart MSPointerDown', function( e )
    			{
    				var resetItem = true,
    					parents	  = $( e.target ).parents();
    
    				for( var i = 0; i < parents.length; i++ )
    					if( parents[ i ] == curItem[ 0 ] )
    						resetItem = false;
    
    				if( resetItem )
    					curItem = false;
    			});
    		});
    		return this;
    	};
    })( jQuery, window, document );
    Ответ написан
    2 комментария
  • Как правильно создать HTML письмо?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Рекомендую воспользоваться фреймворком MJML, если есть опыт вёрстки, то разобраться с ним пара часов, хорошая документация, есть примеры, онлайн песочница, приложение для компа и возможность запустить под галпом
    Ответ написан
    Комментировать
  • Как сделать онлайн игру?

    Генерируй на сервере число, отсылай его клиентам через сокеты, ну и тайм степ откидывай за одно, и будет тебе счастье
    Ответ написан
    Комментировать
  • Как автосгенерировать src через EMMET так, чтобы названия файлов увеличивались на 1?

    @webpixel
    ul.gallery>li*40>img[src="img/$.jpg"]
    Ответ написан
    Комментировать