Ответы пользователя по тегу CSS
  • Почему долго грузится страница?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Нормально все грузится:

    https://tools.pingdom.com/#5b84b8f28d400000

    Все "ваше" меньше 1 секунды, еще пару секунд работа с сервисами Яндекса. Если конкретно у вас что-то "крутится" во всех браузерах, возможно ваш провайдер, роутер, VPN или еще какой-то man-in-the-middle не дружит с тем же Яндексом (или Яндекс с ним). Например, у нас в Украине Яндекс заблокирован, поэтому у меня оно будет крутиться вечно, пока браузер не оборвет соединение. Но если я включаю VPN или блокировщик запросов к Яндексу - все грузится моментально.
    Ответ написан
  • Могу ли я изменить плагин в wp?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В официальной документации смотрели? Там куча интересных хуков, с примерами кода.
    Ответ написан
    Комментировать
  • Как верстать под wp?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Верстка под WP по сути укладывается всего в несколько отличий от верстки под что либо еще:

    1. В некоторых местах (body, меню, обертки страниц/записей и тд) WP генерит свой список классов. Его можно и нужно использовать, если тема предназначена на продажу или в репозиторий на .org, предполагается что ее будут крутить/развивать под свои задачи. Если для себя / для клиента, то можно не использовать, но как минимум с меню придется на бекенде несколько правок сделать.
    2. Контент, который редактируется в редакторе (старый TinyMCE или новый Gutengerg) либо лишен классов по умолчанию (тогда стучимся по классу контейнера), либо как разработчики намудрят (Gutenberg, всякие конструкторы страниц). В принципе, можно полностью под себя сделать с Gutenberg, но это дополнительные временные расходы.
    3. Статика (скрипты, стили) подключается из PHP, картинки и другие файлы - как правило тоже, через медиа-библиотеку.

    Иногда что-то по мелочи попадается, но в целом - это все.
    Ответ написан
  • Не отображаются фоновые иконки на псевдоэлементах?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вам же прямым текстом говорят - 404, файл не найден. То есть, проблема в путях. В инструментах разработчика посмотрите, какой полный URL получился у этих картинок, и соотнесите его с тем, который должен быть. Потом подкорректируйте в CSS путь.

    ЗЫ: Относительный путь (../ и тд) будет считаться от места, где находится итоговый CSS-файл c вашими стилями. Если это главный файл стилей темы, то он будет в корне папки темы, и с помощью ../ вы выходите из папки темы вообще. Возможно дело в этом.
    Ответ написан
    Комментировать
  • Как подружить BEM и WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    BB 8,
    wp-мэйт просит чтобы у динамического контента не было КЛАССОВ ВООБЩЕ

    Вот это ключевой момент. И в комментах вам уже написали, что проще ваш CSS поменять, нежели редактор WP. Технически, редактор WP научить можно. Но он сохраняет весь динамический контент в БД вместе с HTML (и классами). Это означает, что если вам понадобится класс переименовать, или добавить новый модификатор к "всем таким же блокам или элементам" - то вам придется лазить по всем старым записям и менять это там тоже. Что, разумеется, не очень ок.

    Какие есть варианты? Всякие Visual Composer'ы, но они тоже сохраняют HTML в базу, поэтому риски те же. ACF и подобные решения для произвольных полей, которые позволят разбить контент на "блоки", и каждому блоку на выводе можете давать свой темплейт. Но если контента много, по нему надо искать и тд - опять же, вагон лишней работы бекендеру. Ради чего? Какой профит?

    Есть надежда лишь на новый редактор, Gutenberg, который в этом году должен заменить TinyMCE. Там все на реакте, контент редактируется именно блоками, и каждый блок может иметь свой темплейт. По идее, это должно решить эту проблему раз и навсегда.
    Ответ написан
    3 комментария
  • Можно ли узнать насколько нагружена память устройства?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    При использовании "бесконечного скролла" многие почему-то делают только скролл вниз, а про верх забывают. Это архитектурная ошибка. Должно быть как - порцию нового подгрузили, порцию старого выгрузили. В обе стороны. И тогда никаких проблем с затупами не возникнет никогда. От слова совсем.
    Ответ написан
    Комментировать
  • Можно ли одновременно использовать flexbox и grid на одной странице?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Можно и нужно. Grid создали не для того, чтобы заменить Flex. Это 2 разных метода построения лейаута, если грубо:

    - Grid = 2D (расположение элементов по 2м осям одновременно, по горизонтали и по вертикали)
    - Flex = 1D (расположение элементов только по 1й оси, горизонтали или вертикали)

    Еще грубее - flex хорош для "инлайна", выравнивая элементов в одной строке или колонке, как правило это конкретно контент-элементы, а grid - хорош для контейнеров и более общих элементов (карточек и тд). То есть, гридом задали общую структуру и лейаут, флексами внутри блоков расставили контент-элементы.
    Ответ написан
    2 комментария
  • Под какой браузер вы верстаете в первую очередь?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Есть такие концепции как Mobile First и Progressive Enhancement. Вот если им следовать, то проблема исчезает сама по себе (ну или в крайнем случае минимизируется). Сначала верстаем под максимально простое и примитивное, включая какой-нибудь дубовый мобильный браузер или старый ИЕ. И только когда для динозавров все ок, начинаем прогрессивно накручивать покер со всем сопутствующим. Каждый этап мониторится во всех браузерах и версиях, упомянутых в ТЗ проекта, пошагово а не "все сверстали под хром, а потом смотрим в остальных и держим кулачки".
    Ответ написан
    Комментировать
  • Как выровнять вертикально по центру текст в его line-height?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Просто две ссылки "на почитать":

    https://stackoverflow.com/a/28370374/1185107
    https://www.w3.org/TR/CSS21/visudet.html#line-height

    Компенсировать паддингами.
    Ответ написан
    Комментировать
  • Как правильно определяют значение "em" в макете?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если я еще не совсем забыл фронтенд, то считаются от размера текста конкретного элемента. Стандартный размер шрифта в body по умолчанию во всех браузерах сейчас вроде 16px, если его не переопределять для элементов, то inherit означает что 1em = 16px. Если размер переопределен на 14px, значит 1em = 14px. Ну и еще вроде использовалось правило html { font-size:100%; }, чтобы это точно работало как надо.

    Впрочем, если вопрос не только в CSS, то все интереснее. Дело в том, что изначально термин "em" означал ширину заглавной буквы М. Соответственно, в разных шрифтах, в зависимости от дизайна этой буквы, значение будет разным. Далее, Adobe утверждает, что em = размер шрифта в pt, а не в px. А спека W3C говорит следующее:

    The 'em' unit is equal to the computed value of the 'font-size' property of the element on which it is used. The exception is when 'em' occurs in the value of the 'font-size' property itself, in which case it refers to the font size of the parent element. It may be used for vertical or horizontal measurement.


    Поскольку мы говорим о CSS, то отталкиваемся от W3C.

    Немного чтива:

    https://en.wikipedia.org/wiki/Em_(typography)
    v1.jontangerine.com/log/2007/09/the-incredible-em-...

    И калькулятор в придачу:

    pxtoem.com
    Ответ написан
    Комментировать
  • Появляется карта сайта на 1-2 сек. при загрузке сайта, как исправить?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Это называется FOUC – Flash Of Unstyled Content. Происходит он потому что у вас невалидный и кривой HTML, менюшка ваша выводится в HEAD (где ее быть не может по определению, только в BODY), и до CSS. Отсюда и проблема – сначала браузер выплевывает HTML-разметку, а потом спохватывается, что вот еще стили есть, берет их и перерисовывает страницу.

    И да, счетчики эти всякие и прочие говноскрипты смело ставьте в футер, а еще лучше асинхронно и с задержкой. Раньше их выполнять не стоит.
    Ответ написан
    1 комментарий
  • Почему css не работает на WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    zorca в комментах написал уже, public_html из путей уберите
    Ответ написан
    Комментировать
  • Как сделать текст поверх картинки в динамических блоках на css в WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    через backgrond-image нельзя же, потому что не вписать <?php the_post_thumbnail(); ?> в свойствах css, и position: absolute нельзя использовать

    Можно, просто вместо функции the_post_thumbnail(), которая выводит html-код изображения (то есть весть тег IMG), используйте функцию the_post_thumbnail_url(), которая выводит только URL картинки:
    <div class="post-head" style="background: url( <?php the_post_thumbnail_url(); ?> );">
        <h1><?php the_title(); ?></h1>
    </div>

    Ну а через класс .post-head уже дополнительные стили вешаете.
    Ответ написан
    1 комментарий
  • Важно ли использовать сетку для верстки?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    зачем нужна сетка для верстки

    Сетка нужна для удобства и консистентности верстки.

    будь то бутстрап или грид

    Бутстрап это большой фреймворк, сетка - лишь маленькая его часть. А грид - это и есть "сетка". С терминологией надо бы порядок навести.

    если я все равно в контейнере отступаю в пкс от краев, задаю ширину в стилях и помещаю все в контейнер, а для телефонов оптимизирую через медиа запросы

    Поздравляю, вы создаете и используете собственную сетку! :) Исходя из этого, решите для себя сами - достаточно ли вам вашей собственной сетки, удобно ли с ней работать. Если да - тогда сторонние готовые решения вам не нужны. Если нет - тогда используйте готовую сетку и не парьтесь.
    Ответ написан
    Комментировать
  • Нужен или возможен 100% pixel perfect?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Лично я всегда был адептом подхода math-perfect, или grid-perfect. Грубо говоря - есть сетка, вертикальный ритм, есть заданные пропорции и скейлинг-факторы, которые вместе формируют визуальный язык. И закладывается он, конечно же, дизайнером. Тогда и следовать ему в плане pixel-perfect достаточно легко, ибо после определения математики все элементы начинают органично ложиться куда надо. Если же дизайнер и в бровь не видел математику и у него стопиццот отступов "на глазок", то такой макет надо заворачивать на доработку. Если же макет "принят", и приходится с ним работать, то разумнее все же выводить из имеющегося Г хоть какую-то математику и следовать ей.
    Ответ написан
    Комментировать
  • Есть ли Поп Ап плагин В вордпресс?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Неужели так сложно зайти на WordPress.org в раздел Plugins и выполнить простейший поиск?

    https://wordpress.org/plugins/search/pop-up/
    https://wordpress.org/plugins/search/lightbox/
    Ответ написан
    Комментировать
  • Как заставть нормально работать скролл на сайте Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Проверил в Chrome, Firefox, Safari на macOS - все работает. Скролит мышкой, трекпадом, клавиатурой. Правда в некоторых местах адски тормозит, чего на предпоследнем MacBook Pro быть не должно в принципе. То есть, производительность скриптов и анимаций на сайте - ниже плинтуса.

    2. Проблемы со скроллом не имеют никакого отношения к WordPress. Это исключительно фронтенд проблема - CSS и Javascript. Что стоит на бекенде - WordPress, Symfony или крутая хипстерская CMS на Ruby - не имеет никакого значения.
    Ответ написан
    Комментировать
  • Что должен содержать шаблон для публикации на ThemeForest?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    не знаю какие требования у них к шаблонам (на их сайте нет).

    Серьезно?

    https://help.market.envato.com/hc/en-us/articles/2...
    https://help.market.envato.com/hc/en-us/articles/2...
    https://help.market.envato.com/hc/en-us/articles/2...
    Ответ написан
    Комментировать
  • Как оптимизировать сайт на wordpress+visual composer?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Бекенд у вас весьма шустрый:

    bf3ea512b4264ec0a546b7e2a70bafee.jpg

    Это весьма и весьма достойный результат. С сервером и на серверной стороне все в порядке. А теперь узкие места:

    1. Загрузка шрифтов с серверов Google. С вашим шустрым сервером имеет смысл шрифты стянуть себе и отдавать локально. Срежете секунды полторы:

    67053ff4cfef4f458eb6d4723a36a7e2.jpgab83df494f21431284650396046227eb.jpg

    2. Далее, есть проблема с несколькими стилями:

    vcare.uz/wp-content/plugins/js_composer/assets/lib...
    vcare.uz/wp-content/plugins/js_composer/assets/lib...
    vcare.uz/wp-content/plugins/js_composer/assets/lib...

    Они долго грузятся, можете сами в Developer Tools посмотреть. Проблема не только в том, что они долго грузятся, но и в том, что они встают в очередь так как расположены в подвале и из-за использования HTTP/1.1. Можно решить 2мя путями:

    - конкатенация в один файл
    - использование HTTP/2

    В идеале, можно искать баланс между HTTP/2 + выборочная конкатенация.

    3. Файлы

    - new.vcare.uz/wp-content/uploads/2017/08/header-1.j...
    - new.vcare.uz/wp-content/uploads/2017/08/bg-white22...

    С ними 2 проблемы:

    - грузится с поддомена (+ DNS lookup и прочие потери на новый коннект)
    - динамический параметр, который предотвращает кеширование файла на стороне клиента

    Перенесите файл на основной домен и уберите параметр.

    4. Contact Form 7

    7cad4ec44dba469b86e2fbaa7c31558d.jpg

    У вас 7 (!!!) аякс-запросов этот плагин генерит. Я так понимаю, это 7 разных форм на странице. Запросы запускаются достаточно рано в цикле жизни страницы, и блокируют других ресурсов, занимая соединения с сервером. По протоколу HTTP/1.1, насколько я помню, браузер открывает до 6 соединений с сервером. В вашем случае, часть из этих 6 к моменту вызова этих ajax-запросов уже занята, и они встают в очередь друг за другом, вместе с другими ресурсами. Это умножает время ожидания. Переход на HTTP/2 заметно снизит влияние, но желательно избавиться от них вообще. Я бы советовал заменить CF7 на более адекватный плагин. Попробуйте, к примеру, Torro Forms (толковый и бесплатный, еще и с нормальным интерфейсом).

    5. Еще один запрос к admin-ajax.php

    f94caf0158b642b2958aefe1b9825ae5.jpg

    Собственно, он инициирован Visual Composer'ом - это Masonry сетка. Возможно, он у меня дозапустился потому что я начал скролить страницу и докрутил до того места, где он нужен. Возможно, он не запускается по умолчанию и проблемой не является.

    6. Front-end performance (парсинг и рендеринг):

    1691686d9b5f493fb147d10e0da4a894.jpg

    Парсинг скриптов занимает много времени, ибо их много. Но от этого можно избавиться только путем уменьшения их количества, что, возможно, не вариант. А вот второй очень тревожный сигнал - это как раз время ожидания (Idle). Это как раз говорит о невозможности браузера продолжать работу на каких-то этапах из-за того, что он ждет пока прилетят запрошенные ресурсы. Переход на HTTP/2 крайне желателен + замена CF7. Это как раз тот случай, когда HTTP/2 должен дать ощутимый эффект.

    Ну это так, беглый анализ. Посмотрите результаты тестирования тут: https://tools.pingdom.com/#!/2GQ2d/http://vcare.uz/
    Ответ написан
    3 комментария