Ответы пользователя по тегу HTML
  • Как подойти к реализации 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
    Ответ написан
    Комментировать
  • Как НЕ дублировать select в HTML миллион раз?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Можно сделать новим способом HTML5 datalist
    <input list="workers" name="worker[234]">
    <input list="workers" name="worker[456]">
    <input list="workers" name="worker[333]">
    <input list="workers" name="worker[667]">
    <datalist id="workers">
     <option value="Текст1">
     <option value="Текст2">
    </datalist>


    Вот для него полифил datalist-polyfill или polyfills/datalist
    Ответ написан
    3 комментария
  • Почему после сохранения узла html в localStorage его невозможно вставить на страницу?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Узел это не код, это обьект.
    Исходный код в виде строки хранится в свойстве этого обьекта innerHTML.
    Сохрани свойство, и восстанавливай в свойство.

    var copydiv = document.getElementById('top-lighthouse').innerHTML;
    
        localStorage['localMem'] = copydiv;
        copydiv = localStorage['localMem'];
    
       /*  document.body.insertBefore( copydiv, document.body.firstChild ). не годится*/
        document.body.firstChild.innerHTML = copydiv;
    Ответ написан
    Комментировать
  • Предложите, пожалуйста, идею, как можно сделать палочки?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Делай две сначала и после элемента
    .item:before,
    .item:after {
    content: '';
    width: 33px;
    height: 5px;
    background-color: #777777;
    }


    Нарисуй одну линию на всю ширину, а иконкам задай размер и фоновый цвет бекграунда.
    .container { position: relative; }
    .container:before, {
    content: '';
    position:absolute;
    top: 20px;
    width: 100%;
    height: 5px;
    background-color: #777777;
    }
    .item {
    text-align: center;
    }
    .item i {
    display:block;
    width:30px;
    height:30px;
    line-height:30px;
    background: #fff;
    }
    Ответ написан
    1 комментарий
  • Как вернуться к нужной позиции на странице при нажатии кнопки Назад?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Делается просто:

    По событию onscroll пишем в localStorage.scrollTop заначение скрола.
    По событию onload читаем из localStorage.scrollTop и устанавливаем позицию scrollTop у элемента с главным скролом.

    selector = 'body';   /* <--- cюда положи селетор на элемент с основным скролом */
    $('document').on('load', function(){ $(selector).attr('scrollTop', localStorage.scrollTop); }
    $(selector).on('scroll', function(){ localStorage.scrollTop = $(selector).attr('scrollTop'); }


    P.S. Для юзабельности, обязятельно должен быть элемент перемещающий на начало страницы.
    Ответ написан
    3 комментария
  • Что лучше — общий всё-в-одном 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 - люблю в чистом виде.
    Самый простой метод это CSS трансформации блока.

    .container {
      transform: skewY( 5deg);
      padding: 0;                  
    }
    .container > .content {
      transform: skewY(-5deg);
      margin: -2em;                       /* подбираеш чтобы покрыть искаженный блок */
      padding: 3em;                       /* подбираеш чтобы влазил внутренний текст */
      background-image: url(http://s45.radikal.ru/i110/1610/c3/9837344ef991t.jpg);
    }
    Ответ написан
  • Как можно корректно обрезать текст, чтоб несколько строк оставалось?

    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 к высоте строки.
    Ответ написан
    Комментировать
  • Как сделать ссылку в ссылке?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Ответ написан
    Комментировать
  • Какой лучше использовать стартовый шаблон для Front-end?

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

    Я пользуюсь Responsive.
    Ответ написан
    Комментировать
  • Как сверстать горизонтальное меню с иконками?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Посмотри в меню тостера - сделай также и не парься.
    Ответ написан
    Комментировать
  • Как лучше реализовать адаптивность одноэкранного сайта?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Попробую ответить.

    Насколько я понимаю вопрос у вас есть страница на один экран.

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

    Контент, насколько я понимаю там:
    - блоки заполняющие область и пагинация. Значит блоки расчитаны чтобы показываються на мобильнике по одному (2 вида вертикальный и горизонтальный). Дальше при увеличении разрешеня количество блоков увеличивается. При большом разрешении некоторые блоки могут быть показаны двойными или тройными.
    - или сплошной контент, видео, карта, игра, слайдшоу растянутый на всю область.
    Ответ написан
    Комментировать
  • Перейдет ли поисковой бот по select->option?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Замени на CSS меню, онлайн конструкторов для них вагон.
    Ответ написан
    3 комментария
  • Как реализовать вертикальный скролл?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Мож этот подойдет...

    Там просто: подключчи скрипт на страничку тегом скрипт и поставь клас dragon на блоке в котором лежат блоки со скролом. Все блоки которые внутри будут скролиться.
    Ответ написан
    Комментировать
  • Можно ли через css сделать выборку для каждого слова в параграфе?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Селекторов для слов в CSS нет вообще.

    Можно воспользоваться скриптом:
    www.dynamicsitesolutions.com/javascript/first-word...

    И написать по его примеру, еще селектор для :nth-word. :)
    Ответ написан
    Комментировать
  • Как каждую букву в слове заключить в рамку?

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

    Решение Jsfiddle
    Ответ написан
    4 комментария
  • Кто как делает html формы?

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

    1. Разметка:
      • пишу всегда вручную;
      • длинные селекты тянутся из базы посредством шаблонизатора (например серверного TWIG);
      • прописываю полностью с атрибутами валидации HTML5 (благо все современные браузеры потдерживают);
      • выдумывать JS-велосипеды для валидации не стоит уже давно;
      • для зависимых полей пока есть простой js-клаcс сверяющий их.
      • drag&drop файлов давно уже работает без JS;
      • для подгрузки изображений в страницу на стороне клиента js-класс.

    2. Стили:
      • один раз прописаны стили для разных-форм на уровне тегов и взаимоотношений тегов (в итоге все формы на сайте виглядят в одном стиле);
      • класы только для самой формы, определяет как одна выводится: локально, модально или в теле контента;
      • кому сложно написать 300 строчек CSS, пользуйтесь фреймворками;
      • ни в коем случае не делайте стили форм для каждого раза как онные встречаются (придет дядя даст по рукам :) ).

    3. Отправка:
      • пользуйтесь action, submit и target;
      • нужны данные как модальное окно есть iframe;
      • ajax с формами не использую он изначально предназначен для другого:
        • для подгрузки полей в селектор, но только если селектор очень большой;
        • для поиска налету.


    4. Сервер:
      • использую специальный статический класс, который делает валидацию и XSS/injection-очистку;
      • как минимум PDO с подготовленными запросами;
      • Doctrine;

    5. База-данных:
      • наименования полей в базе соответствуют наименованиям полей в формах (с префиксом);

    Ответ написан
    1 комментарий