Ответы пользователя по тегу Вёрстка
  • Как подойти к реализации PSD->HTML->PDF->image или PSD->HTML->image->PDF на PHP?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Если вы конвертируете страницу сначала в картинку, то потом в PDF её конвертировать нету никакого смысла!!!
    Это например: приведет к объединению текста в картинку, что сильно снизит качество печати готового PDF и уничтожит возможность пользователя копировать текст.

    Потому не вижу проблем в вашей концепции. Но вообще лучше wkhtmltopdf.org
    Рекомендую только сделать таблицу стилей для печати. А PDF, по стилям близкий к CSS таблице для печати страницы - вот её и нужно подключать при экспорте в PDF.
    Ответ написан
    Комментировать
  • В чем может быть проблема?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Класс "clearfix" нужно добавить.

    <section class="mild clearfix">
    Ответ написан
    1 комментарий
  • Слайдер на css - как задать стиль активной кнопке?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Решение

    Основные тезы:
    1. Перемещаем указатели на inner-content-# внаружу самого content;
    2. Стилизируем кнопки
    #content-inner-1:target #nav #button1,
    #content-inner-2:target #nav #button2,
    #content-inner-3:target #nav #button3,
    #content-inner-4:target #nav #button4,
    #content-inner-5:target #nav #button5,
    #content-inner-6:target #nav #button6 { background:red; }

    3. Перемещяем их внутрь последнего #inner-content-6 но не в #content
    Ответ написан
    Комментировать
  • Cssnext VS Scss/sasss/stylus. Стоит ли переходить?

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

    А будущий CSS4 даёт преимущества именно для браузера. Например:
    - возможны существенные оптимизации рендеринга на стороне клиента;
    - по сети будет передаваться меньший по размеру код...
    Ответ написан
    4 комментария
  • Что лучше — общий всё-в-одном 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 комментария
  • Как можно корректно обрезать текст, чтоб несколько строк оставалось?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Вот посмотрите пример виджета с многострочной обрезкой.
    JSfiddle

    Самое главное правильно посчитать высоту строк. Это удобно делать в em.

    Например: У вас есть стандартный шрифт в пикселях в документе установленый ТОЛЬКО один раз в теге html. Блоки разметки header, footer, aside, колонок и секций его не меняют. Шрифт меняется только внутренними элентами разметочных блоков.

    Высоту блоков выставляете в em кратно line-height.

    Меняете его только в единицах em/rem. И коректируете высоту line-height по формуле:
    FSn / LHo = LHn,
    где
    FSn - новый font-size;
    LHо - старый line-height;
    LHn - новый line-height;

    Кроме этого, если хотите чтобы верстка выглядела типографически верно (строки колонок совпадали на всей странице), нужно аккуратно соблюдать кратность отступов margin и padding к высоте строки.
    Ответ написан
    Комментировать
  • Можно ли закруглить средствами css?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Можно вот jsfiddle.net!

    По пунктам:
    - вкладываеш блок с картинкой в релативный контейнер с overflow:hidden;
    - выставляеш внутреннему блоку margin: 0 -10% и ширину 120%;
    - Зкругливаеш внутренние углы ублока не пропорционально, указывая для каждого угла два значения 50% 100%. Регулируя эти значения добивашеся нужного. Если не получается увеличиваеш маргины и ширину во втором пункте, и делаеш значения закрегления угла ближе к 100% 100%.
    Ответ написан
    Комментировать
  • Как сделать ссылку в ссылке?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Ответ написан
    Комментировать
  • Как сверстать такое подменю?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Для блока содержащего подпункты
    display: inline-block;
    position: absolute;
    top:0;
    bottom:0;

    Для блока содержащего пункты
    position: absolute;

    Блок содержащий подпункты должен быть следующим за пунктом.

    JSfiddle
    P.S. Использовать ul li для меню несколько неправильно. Когда-то был большой спор. И пришли к выводу, что семантичнее его не использовать. И не плодить лишние блоки, тег А всегда приходится вкладывать в LI. Но много людей остаются при своем мнении.
    Ответ написан
    7 комментариев
  • Как организовать правильное вертикальное выравнивание div'ов?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Вот статья про Bootstrap и 3 колонки одинаковой высоты.
    Но лично мене не нравится такое решение.

    Вот решение в 3 правила адаптивное по ширине и высоте .

    <main>
        <div>
            <p>Span</p><p>Span</p><p>Span</p><p>Span</p><p>Span</p>
        </div>
        <div>
            <p>Span</p><p>Span</p><p>Span</p>
        </div>
        <div>
            <p>Span</p><p>SpanSpanSpanSpan</p><p>Span</p><p>Span</p><p>Span</p><p>Span</p><p>Span</p><p>Span</p><p>Span</p>
        </div>
    </main>

    main {
        position:relative;     /* должно быть отлично от static */
        overflow:hidden;
    }
    div {
        vertical-align:top;
        position:relative;
        display:inline-block;
        z-index:1;             /* заменить на background:gray; если плохо использовать z-index */
    }
    div:after {
        content:'';
        position:absolute;
        left:0;right:0;
        bottom:-1000%;      /* здесь максимально возможная разница между блоками в процентах (здесь х10)*/
        top:0;z-index:-1;      /* заменить top на top:100%; если нужно забрать z-index */
        background:gray;
    }
    Ответ написан
    Комментировать