Как применить CSS-правила, а потом отменить?

xintrea

Новичок
Как применить CSS-правила, а потом отменить?

Здравствуйте!

Есть такой WYSIWYG редактор TinyMCE (http://tinymce.moxiecode.com). У него есть свой CSS-файл (назовем его tinymce.css), с помощью которого можно настроить вид текста внутри области редактирования этого редактора. И нужно сделать так, чтобы на странице сайта, добавленный через TinyMCE текст выглядел так же, как он выглядит в окне редактирования.

Дело осложняется тем, что TinyMCE генерирует HTML-код с "простыми" тегами - <p>, <ul>, <li>... в которых нет свойства class. Таким образом, файл tinymce.css переопределяет глобально внешний вид всех используемых тегов.

Вот его содержание:

Код:
body, td, pre {color:#000; font-family:Verdana, Arial,  Helvetica, 
 sans-serif; font-size:12px; margin:8px;} 
body {background:#FFF;} 
p, span { margin: 0; padding: 0; } 
body.mceForceColors {background:#FFF; color:#000;} 
h1 {font-size: 2em} 
h2 {font-size: 1.5em} 
h3 {font-size: 1.17em} 
h4 {font-size: 1em} 
h5 {font-size: .83em} 
h6 {font-size: .75em} 
.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, 
 .mceItemVisualAid {border: 1px dashed #BBB;} 
a.mceItemAnchor {display:inline-block; width:11px !important; 
 height:11px  !important; background:url(img/items.gif) no-repeat 0 0;} 
td.mceSelected, th.mceSelected {background-color:#3399ff !important} 
img {border:0;} 
table {cursor:default} 
table td, table th {cursor:text} 
ins {border-bottom:1px solid green; text-decoration: none; color:green} 
del {color:red; text-decoration:line-through} 
cite {border-bottom:1px dashed blue} 
acronym {border-bottom:1px dotted #CCC; cursor:help} 
abbr {border-bottom:1px dashed #CCC; cursor:help} 
 
/* IE */ 
* html body { 
scrollbar-3dlight-color:#F0F0EE; 
scrollbar-arrow-color:#676662; 
scrollbar-base-color:#F0F0EE; 
scrollbar-darkshadow-color:#DDD; 
scrollbar-face-color:#E0E0DD; 
scrollbar-highlight-color:#F0F0EE; 
scrollbar-shadow-color:#F0F0EE; 
scrollbar-track-color:#F5F5F5; 
} 
 
img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} 
font[face=mceinline] {font-family:inherit !important}
И чтобы сайт не разлезся после применения таких свойств, в HTML-коде страницы сайте надо делать так:

1. ... Код сайта ...
2. Инклюд tinymce.css
3. Текст, отформатированный в TinyMCE
4. Нечто, что отменяет правила, заданные в tinymce.css
5. ... Код сайта ...

Вот я и теряюсь в догадках, что можно сделать в пункте 4? Это основной вопрос.


Второй вопрос - что имеется в виду в следущем куске документации:

TinyMCE specific rules

The body element of a TinyMCE instance has it's own class called mceContentBody this can be used to add TinyMCE specific CSS rules to your site's css.

Код:
/* Site rules */ 
body { 
   background: #000 url('somebg.gif'); 
} 
 
/* TinyMCE specific rules */ 
body.mceContentBody { 
   background: #FFF; 
} 
 
.mceContentBody a { 
   color: red !important; /* FF requires a important here */ 
}
Тут вроде идет речь о том, как прописать CSS-правила TinyMCE в общий css-файл. То есть, через класс-селектор mceContentBody можно настроить вид текста в окне редактирования TinyMCE. Но совершенно непонятно, что делать с выводом текста, созданного в TinyMCE, чтобы он выглядет так же, как и в TinyMCE. Я правильно понял?


В общем, в первую очередь интересует практичный ответ на первый вопрос.
 

Adelf

Administrator
Команда форума
заключать тексты от тини в спец дивки со спец классами.
И CSS-селекторы подправить под эту дивку. .tinyText p вместо p.
 

xintrea

Новичок
Автор оригинала: Adelf
заключать тексты от тини в спец дивки со спец классами.
И CSS-селекторы подправить под эту дивку. .tinyText p вместо p.
Что имеется в виду? Можно поподробней, пару строк кода?
 

xintrea

Новичок
У нас русскоязычный форум, нет? Какой смысл давать ссылки на англоязычную документацию?

Может быть, вы имели в виду контекстные селекторы http://stepbystep.htmlbook.ru/?id=51 ?

Но с ними не все ясно. В сгенерированном TinyMCE коде теги могут быть вложенными на неизвестную глубину. Вроде написано, что необязательно, чтобы контекстные селекторы имели один вложенный тег. Вложенность может быть любой. Но не написано, нужно ли для вложенности писать правило. Другими словани, не ясно, применится ли правило "p b {}" к тегу b в коде "<p><i><b>Текст</b></i></p>". Нужно ли писать контекстный селектор в виде "p i b {}", чтобы он применялся в данном HTML коде?


Кроме того, если посмотреть на содержимое tinymce.css в топике, можно увидить следующие селекторы:

.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}

a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;}

td.mceSelected, th.mceSelected {background-color:#3399ff !important}

* html body { ... }
Что делать с ними? Достаточно ли для их срабатывания прописать перед ними ".tinymce", чтобы они применялись внутри блока <div class="tinymce">...</div> ?
 

Gas

может по одной?
xintrea, ссылку что я дал читали?
можно просто подключить в tinymce свой css-файл, который у тебя используется на сайте и контент внутри редактора должен выглядеть "как на сайте".
 

baev

‹°°¬•
Команда форума
У нас русскоязычный форум, нет? Какой смысл давать ссылки на англоязычную документацию?
— нифигасе…

xintrea, проснитесь: в реальном мире программист без знания английского — не программист.
Вся актуальная информация — на английском. А переводная документация — вся устаревшая, в той или иной мере.
 

xintrea

Новичок
Автор оригинала: Gas
xintrea, ссылку что я дал читали?
можно просто подключить в tinymce свой css-файл, который у тебя используется на сайте
Конечно читал, в топике же написано "У него есть свой CSS-файл (назовем его tinymce.css), с помощью которого можно настроить вид текста внутри области редактирования этого редактора." Это делается с помощью настройки content_css.


и контент внутри редактора должен выглядеть "как на сайте".
Так надо же наоборот - контент на сайте, созданный в TinyMCE, должен выглядеть как в TinyMCE.

-~{}~ 10.06.10 17:45:

Автор оригинала: baev
— нифигасе…

xintrea, проснитесь: в реальном мире программист без знания английского — не программист.
Вы, наверно, хотели сказать "быдлокодер". В реальном мире программисту достаточно знать родной язык. :)

Кроме того, щас мы говорим о языках разметки. Программированием тут и не пахло.
 

Gas

может по одной?
Так надо же наоборот - контент на сайте, созданный в TinyMCE, должен выглядеть как в TinyMCE
обычно хотят обратного, так-как css сайта уже есть и чтоб в висивиге всё выглядело "по-настоящему".

Ещё раз прочитал первый пост, делай как посоветовал Adelf сразу.

не ясно, применится ли правило "p b {}" к тегу b в коде "<p><i><b>Текст</b></i></p>".
применится, на то они и каскадные таблицы стилей.

В реальном мире программисту достаточно знать родной язык.
только если этот родной язык английский, лучше не спорь, ты однозначно не прав в этом вопросе.
 

xintrea

Новичок
Автор оригинала: Gas
только если этот родной язык английский, лучше не спорь, ты однозначно не прав в этом вопросе.
Программисты системы управления Бураном думают иначе:

"...Был создан специальный проблемно-ориентированный язык программирования реального времени ПРОЛ2 и система автоматизации программирования и отладки САПО. Язык ПРОЛ2 во многом повторял известный логический язык Пролог, но был построен на базе русских служебных слов. Так же на Прологе была написана операционная система «Пролог-диспетчер», управлявшая работой БЦВМ."

http://habrahabr.ru/blogs/popular_science/86876/
http://buran.ru/htm/su5po.htm
http://buran.ru/htm/algoritm.htm

Ни слова по-английски, и оно еще и летало.
 

fixxxer

К.О.
Партнер клуба
Как думаешь, спецификацию языка "Пролог" разработчики этих дел на каком языке читали?
 

baev

‹°°¬•
Команда форума
xintrea, ещё раз, специально для тех, до кого долго доходит:
Автор оригинала: baev
Вся актуальная информация — на английском.
Вы же сами пишете: «летало» — в прошедшем времени.

(Не, есть, конечно, и актуальные языки программирования на русском. Только почему-то Вы про них не вспомнили… …просто не в курсе, наверное.)
 
Сверху