#php #html #css
#php #HTML #css
Вопрос:
Я хотел бы библиотеку для создания встроенного CSS HTML из файлов .html и .css или из HTML-файла с тегами в заголовке. Я бы предпочел библиотеку PHP, если это возможно.
Под встроенным CSS я подразумеваю что-то вроде
<span style="font: bla bla bla">Hi There!</span>
против
<style>
.greeting { font: bla bla bla; }
</style>
Мне часто нужно вставлять HTML в электронные письма, и это значительно упростило бы процесс.
Если кому-то интересно, мое текущее решение (для материалов, которые не часто обновляются) заключается в использовании механизма создания шаблонов Smarty для создания документа и присвоении части style =»» переменной внутри шаблона.
Затем я могу использовать эту переменную в каждом теге (например, <td {$td_style}>
(К вашему сведению, {$variable}
именно так переменные smarty вставляются в шаблон) и заставить его сгенерировать соответствующий HTML, удобный для электронной почты.
Однако я хочу что-то более общее, для чего я могу просто добавить немного HTML и CSS, а не конвертировать все это в шаблон smarty.
Кто-нибудь знает, существует ли подобная библиотека?
Комментарии:
1. Это, гм, творческое форматирование.
2. Именно по этой причине мне не нравится, когда мои клиенты имеют доступ к TinyMCE / CKEditor.
3. @alex почему именно это? Я как раз собирался предложить использовать wizzywig. @Brandon: Что значит «из тегов скрипта»?
4. @Madmartigan Я не шутил, просто помню, как съежился от текста с несколькими цветными буквами в середине слова.
5. @alex: Что мне нравится, так это вставки из их документа MS word, с миллионами пустых разделов с зашифрованными атрибутами id, и в каждом другом слове есть
color:#000000; font-size:12px; font-family: Arial, Georgia, Comic Sans;
или какой-то другой бессмысленный набор шрифтов, а также изображения,src
указывающие на их жесткий диск.
Ответ №1:
Хотя я не знаю библиотеки, которая обрабатывает это, если вы настроены на PHP, вы могли бы сделать это довольно легко, я думаю, с помощью CSSTidy для разбора CSS, а затем с помощью синтаксического анализатора XML (идеально, если ваш код хорошо сформирован — возможно, SimpleXML или расширение DOM) или одного из парсеров HTML на основе PHP, которые я вижу там для разбора HTML, так что вы можете изменять HTML с помощью DOM-методов в соответствии с правилами CSS .
Однако, если вам не нужно, чтобы это было привязано к PHP-процессу, я рекомендую использовать JavaScript практически для чего-либо подобного, поскольку он может работать на стороне клиента (и в разных средах) и быть удобным инструментом для любого, кто хочет это сделать; вы должны уметь анализировать CSS с помощью http://glazman.org/JSCSSP / а затем с помощью DOMParser() и эквивалента IE по мере необходимости (для XHTML) или используйте innerHTML, этот htmlparser или любые другие анализаторы HTML.
Кстати, я знаю, что <style>
это работает в электронных письмах, поскольку мой дополнительный источник цвета вставляет их для подсветки синтаксиса в электронных письмах, хотя, я полагаю, вы просто говорили, что вам сложнее сделать это таким образом.
Комментарии:
1. Мне нравится ваш ответ, и, вероятно, в конечном итоге я сделаю что-то подобное, когда у меня будет время. Javascript и теги <style> не работают ни в Gmail, ни в Outlook 2007 (среди прочих), что делает их непригодными для отправки электронных писем большой группе (отправка ~ 20 000 информационных бюллетеней преподавателям и студентам университета).
2. Теги <style>, к сожалению, не работают в Outlook 2007 или Gmail, поэтому для меня о них не может быть и речи. Мне нравится ваш ответ, я, скорее всего, пойду по пути Javascript, чтобы он мог быть интерактивным. Спасибо!
3. Пожалуйста, рассмотрите возможность поделиться результатом, если вы найдете универсальное решение и сможете использовать его с открытым исходным кодом!