Im TinyMCE ab v3.3.2 wurde das Verhalten bei der Einbindung von Stilen geändert. Markiert man im Editor ein Blockelement und fügt einen selbst definierten Stil aus dem Dropdown-Menü ein, wird ein <span> gesetzt.
HTML-Code:
<h2><span class="no-margin-top">Überschrift</span></h2>
In älteren Versionen wurde der Stil direkt an das Block-Element gehängt.
HTML-Code:
<h2 class="no-margin-top">Überschrift</h2>
Will man den alten Zustand wieder herstellen, muss man die neue TinyMCE Option style_formats verwenden. Dazu erstellt man sich in system/config eine Kopie der tinyMCE.php und bindet sie in der dcaconfig.php ein. Wie das geht kann man hier nachlesen.
Den Code kann man z.B. am Ende von tinyMCE.init() einfügen.

Beispiele:

1) Stil für ein bestimmtes Element

Den Stil soll der Anwender nur auf h1 anwenden können:
PHP-Code:
style_formats : [
        {
title 'Rote Überschrift'block 'h1'styles : {color '#ff0000'}}
    ] 
title definiert den Namen im TinyMCE Dropdown-Menü Format.
Statt dem style-Element, kann man auch eine class verwenden:
PHP-Code:
style_formats : [
        {
title 'Rote Überschrift'block 'h1'classes 'red'}
    ] 
Man kann Elemente auch über den selector ansprechen:
PHP-Code:
  style_formats : [
        {
title 'Ü1 rot'selector 'h1'classes 'red'},
        {
title 'Absatz Abst. gr.'selector 'p'classes 'p-marg-max'}
    ] 
2) Stil für mehrere Elemente

Der Stil kann allen aufgeführten Elemente zugewiesen werden:
PHP-Code:
  style_formats : [
        {
title 'kein Abst. unten'selector 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img'classes 'no-margin-bottom'}
    ] 
Leider werden die Redakteuer nicht gewarnt, wenn ein Stil für ein bestimmtes Element nicht zur Verfügung steht - der Stil kann trotzdem aus dem Dropdown ausgewählt werden, wird aber nicht eingefügt.