• Что лучше — общий всё-в-одном style.css или несколько файлов .css?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    С переходом на протокол HTTP2 держать файлы раздельно даже на сервере будет лучше. Не будет разницы, ибо пакетироваться они будут на уровне протокола.

    Но даже сейчас лучше разделить стили блочной разметки от украшательств и грузить их раздельно. Подключать media queries CSS, не в CSS а в HTML отдельными файлами, указанием атрибута media:
    <link rel="stylesheet" media="all and (min-color-index: 256)" href="..." />


    А ещё лучше, подключать с каждой страницей только те стили, которые на ней используются :)

    Чтобы это можно было сделать, верстальщик должен сделать раздельные сборки:
    • Стартовую таблицу стилей которая грузится на всех страницах. Сюда входят: сброс браузеров, хеадер, футер (если он fixed внизу видимого), стили видимого при загрузке домашней страницы. ТОЛЬКО то, что видно на самом большом экране без элементов которые появляются во время прокрутки.
    • Основную таблицу стилей для разметки страниц контента. То что входит во все страницы контента, без специфичности. Ну и не фиксированный футер тот, что после контента. Эти стили должны быть загружены уже после загрузки основного контента.
    • Специфичные стили для отдельных страниц. Эти грузятся отдельно на каждой странице свои стили и по надобности объединяются с Основной разметкой контента.
    • Таблица стилей форм. Все формы на сайте должны грузится с одной таблицы. А не быть специфичными для разных страниц. Формы это не контент!!! У форм ОБЯЗАТЕЛЬНО должна быть отдельная таблица стилей. Она подключается при включении формы генератором форм на бекенде. Даже строка поиска в хедере. Все элементы input, textarea, option должны быть описаны в отдельной таблице стилей. Эти стили объединяются с основной или стартовой таблицей как будет надо.


    P.S. Уточню по Основной таблице стилей фактически сборок должно быть минимум 6 (мобильная, планшетная, малая, средняя, ретина, печатная).
    Верстка ВСЕГДА должна быть мобайлфёрст. И сновная таблица должна быть на мобильной версии сайта. А потом ёё расширять и естественно подключать атрибутом media по надобности. Сборка в порядке возрастания сначала узкоспециализированная таблица для мобильников. Для планшетников подключается только отдельный файл с планшетной и мобильной таблицами стилей собранные в кучу. И так далее...

    P.P.S. Cборщики (gulp) собирающие в один файл, это посредственное решение в лоб грубой силой, дабы не заморачиваться.
    Ответ написан
    4 комментария
  • Как успокоить атакующую армию ботов, кликающую на рекламу на моем сайте?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    А что мешает обратиться в правоохранительные органы? Я так понимаю у Вас все доказательства преследования с его стороны и угрозы. Просто посадите и все.
    Ответ написан
    7 комментариев
  • Как в getResources вывести все документы с одинаковым TV?

    BiOpSIhoS
    @BiOpSIhoS Автор вопроса
    Может кому пригодится: &tvFilters=`dada==[[*dada]]`
    В этом случае выводятся все документы, в которых значение в TV "dada" равно значению в текущем документе.
    Ответ написан
    Комментировать
  • Как лучше интегрировать верстку Landing Page на Modx?

    BiOpSIhoS
    @BiOpSIhoS
    Хранение информации и ее вывод на странице - разные вещи.

    Есть лендинг на 10 экранов. Если инфы много, значит 1 экран - 1 ресурс. Если мало и там все просто, то можно использовать migx. Юзать ClientConfig для заголовков страниц и картинок - так себе затея. У вас есть 10 заголовков и 10 картинок. В ресурсах у вас есть для этого pagetitle и image (в итоге всего 2 поля, легко вызвать в шаблоне/чанке, легко обработать), а в ClientConfig-е придется создать 20 ключей. К тому же усложнится процесс редактирования блока, когда контент и картинки будут в ресурсе, а заголовок нужно будет править где-то в другом месте. Используйте ClientConfig для данных, которые будут одинаковы в каждом блоке (телефон, почта, адрес).

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

    Избегайте большой вложенности чанков, сложных условий. Лучше используйте femon, он работает шустрее. Не забывайте, что стандартный шаблонизатор работает наружу, то есть например при условии [[+id:is=`1`:then=`[[$da]]`:else=`[[$net]]`]], шаблонизатор возьмет код обоих чанков, а только потом выведет тот, что подходит под условие, как результат (если в чанках кода много) - более медленная загрузка страницы.
    Ответ написан
    3 комментария
  • Как сделать отображение модального окна посередине видимой области экрана?

    Stalker_RED
    @Stalker_RED
    Вы хотите, чтобы окно появлялось в текущем вьюпорте, но при этом его можно было проскроллить?

    btnShowModal.onclick = e=>{
      modal.style.top = window.scrollY + 50 + 'px' // текущее положение скролла + отступ
      modal.classList.add('active') // показываем
    }
    демка: https://jsfiddle.net/6uLm9hs5/show/light/
    Ответ написан
    9 комментариев
  • Как сделать выполнение скрипта только при определенном разрешении?

    @mrxakerrus
    Мне кажется лучше для таких целей использовать CSS и media query, там тебе и разрешение изменять и ориентацию и форм-фактор
    Ответ написан
    3 комментария
  • Как сделать выполнение скрипта только при определенном разрешении?

    Ankhena
    @Ankhena Куратор тега JavaScript
    Нежно люблю верстку
    Проверяйте при ресайте тоже, а не только при загрузке
    $(window).resize(function() {...})
    Ответ написан
    5 комментариев
  • Как поменять скроллбар на сайте?

    standy
    @standy
    Самый лучший способ, это css. Поскольку большинство скроллбаров на javascript подменяют нативный интерфейс скрола, из-за чего, например, перестают работать клавиши (приходится эмулировать на js), и перестает работать плавная прокрутка при нажатии средней кнопки мыши.

    Статьи на тему кастомизации скроллбара на css:
    css-tricks.com/snippets/sass/custom-scrollbars-mixin
    codemug.com/html/custom-scrollbars-using-css
    Нужно учитывать, что в данный момент нет способа для ФФ

    Для большей кроссбраузерности, и чтобы получить больше свободы в кастомизации, я написал собственный плагин на jquery: jquery.custom-scroll
    Отличительная особенность от других плагинов — он не убирает нативный скролл полностью, а прячет, благодаря чему нет проблем описанных выше.
    Есть похожее решение на js - baron.js - он не требует jquery, но весит вчетверо больше.
    Ответ написан
    5 комментариев