Zum Inhalt springen

Einbindung von Bezeichnern für CSS

Erstellt am 26. September 2006 · 5 Antworten · letzte Antwort am 29. September 2006

Tags: Inhaltselemente, HTML & CSS, Frage

tamasi ·

Hi,

ich habe folgendes Problem.
Wenn ich ganz normal den Inhalt auf einer Seite einfüge, erstellt mir Typo einen HTML Code, bei dem jede Zeile per class="bodytext" bezeichnet ist.
Das Problem dabei ist, das jede Zeile diesen Bezeichner hat. Aus diesem Grund kann ich keine verschiedenen Formatierungen/Positionen im CSS für die einzelnen Inhalte eingeben.

Bei den Überschriften war dies,dank dem Buch von Robert Meyer, leicht. Man weißt ihnen verschiedene Layouts zu, so das man Überschriften sehr leicht über h1,h2 usw gezielt ansprechen kann.

So soll es mal aussehen:http://swt.informatik.uni-jena.de/
Zur Zeit stehen die Kästen alle untereinander.Ich weiß absolut nicht, wie ich den kasten"Mitarbeiter" nach rechts oben bekommen soll.
Ich Versuchte es schon über die ID's, aber entweder mache ich da was falsch, oder der Ansatz ist falsch.

Der Quellcode gehört zu den 2 Kästen bei mir:

	<!--  CONTENT ELEMENT, uid:23/text [begin] -->
		<a id="c23"></a><h4>Inhaber</h4>
		<!--  Text: [begin] -->
			<p class="bodytext"><a href="index.php?id=51" title="Mitarbeiterseite zu Rossak" target="page" class="internal-link" >Prof. Dr. Wilhelm&nbsp;R. Rossak</a>
</p>
<p class="bodytext">&nbsp;</p>
<p class="bodytext">E-Mail:<a href="mailto:rossak@informatik.uni-jena.de" title="E-Mail an Rossak" class="mail" >rossak@informatik.uni-jena.de</a>
</p>
<p class="bodytext">Telefon:457865776/35645
</p>
<p class="bodytext">Telefax:65666456/45435
</p>
<p class="bodytext">&nbsp;</p>
<p class="bodytext"><strong>Postanschrift:</strong>
</p>
<p class="bodytext">Friedrich Schiller Universität Jena
</p>
<p class="bodytext">Institut für Informatik
</p>
<p class="bodytext">Lehrstuhl für Softwaretechnik
</p>
<p class="bodytext">Ernst Abbe-Platz 1-4
</p>
<p class="bodytext">D-07743 Jena
</p>
<p class="bodytext">&nbsp;</p>
		<!--  Text: [end] -->
			
	<!--  CONTENT ELEMENT, uid:23/text [end] -->
		
	<!--  CONTENT ELEMENT, uid:25/text [begin] -->
		<a id="c25"></a><h4>Mitarbeiter</h4>
		<!--  Text: [begin] -->
			<p class="bodytext"><a href="index.php?id=46" title="Öffnet einen internen Link im aktuellen Fenster" target="page" class="internal-link" >philip adler</a>
</p>
<p class="bodytext">wolfram amme
</p>
<p class="bodytext">cornelia müsse
</p>
<p class="bodytext">ivonne erfirth
</p>
<p class="bodytext">&nbsp;</p>
		<!--  Text: [end] -->

Wie man sieht, sind die ID's

  • c23(Für Inhaber)
    c25(für Mitarbeiter)

die wichtigen.
Hoffe mir kann dabei jemand helfen.

Ich habe die Extension css_styled_content eingebunden.

Schonmal vieln Dank im voraus.

tamasi ·

Ich habe eben noch einmal im Internet gelesen etc.
Ich versuchte quasi eine Lösung wie für die Überschriften per:

lib.stdheader >
lib.stdheader = CASE
lib.stdheader {
     	key.field = header_layout
     	default = TEXT
     	default.field = header
     	default.wrap = <h1>|</h1>

     	2 = TEXT
	2.field= header
	2.wrap = <h2>|</h2>
	
	3 = TEXT
	3.field  = header
	3.wrap = <h3>|</h3>
  
     	     	
     	4 = TEXT
	4.field = header
	4.wrap = <h4>|</h4>
}

Das ganze sah dann so aus:

tmp_tt_content_text < tt_content_text
tt_content.text >
tt_content.text = COA
tt_content.text.10 <lib.stdheader
tt_content.text.20 = TEXT
tt_content.text.20 {
	field = bodytext
	fieldRequired = bodytext
	wrap = <testbody>|</testbody><br>
	parseFunc <tmp_tt_content_text.20.parseFunc
	editIcons <tmp_tt_content_text.20.editIcons
	}

Damit konnte ich das bodytag durch ein beliebiges anderes tag ersetzen. Das Problem ist aber weiterhin, ich kann zb kein:

tt_content.text.30 = TEXT
tt_content.text.30 {
	field = bodytext
	fieldRequired = bodytext
	wrap = <testbody>|</testbody><br>
	parseFunc <tmp_tt_content_text.30.parseFunc
	editIcons <tmp_tt_content_text.30.editIcons
	}

anfügen, damit man zwischen verschiedenen Layouts wählen kann.Das Ergebniss war bloss, das sämtlicher Text doppelt angezeigt wurde.

Das Problem was ich zb auch habe, mir fehlt eine Art Überbezeichner, der ganz einfach ein solches Inhaltselement(bestehend aus Überschrift+Bodytext) bezeichnet. Wenn ich mir meinen html Code ansehe, sehe ich kein umfassendes Element, welches mir per CSS dann Zugriff darauf gewähren könnte. Ich kann doch nicht für jede popelige Zeile dann irgendwas zusammenbasteln, damit ich die sinnvoll plazieren kann.
Ich bräuchte as ind er form:
<box1>(überschrift1, bodytext 1)</box1>
<box2>(überschrift2, bodytext 2)</box2>
damit ich dann in meinem css file schreiben kann
box1 {position:...
padding:.. usw}
bos2 {position:...
padding:...usw}

wie kann ich soetwas bekommen, oder habe ich hier irgendetwas völlig falsch verstanden?

zur zeit sieht es so aus
http://img182.imageshack.us/img182/3459/wiecssformatierendc1.jpg

Norman2k ·

Also ich würde es so machen:

Pack einen 2. Marker in dein HTML Template für die 2. Spalte, also für Mitarbeiter und Neuigkeiten.
Wenn du mit div´s arbeitest, würde das dann so aussehen:

<div id="outer">
   <div id="content">###CONTENT###</div>
   ###RIGHT###
</div>

Den div um RIGHT schreibst du nicht ins Template sondern als Wrap ins TS. Mit required sagst du dann noch, dass nur geWrapt werden soll wenn Inhalt in der rechten Spalte ist.

..
page.10.marks.RIGHT.stdWrap.required = 1
page.10.marks.RIGHT.stdWrap.innerWrap = <div style="float:left;">|</div>

Norman

tamasi ·

Das löst mein Problem leider nicht.

Ich weiß nicht, ev verstehe ich hier irgendwas total falsch, aber ich kann mir nicht vorstellen, dass es Sinn und Zweck ist, in <div id="center">, für jeden Datensatz den ich per Inhalt einfüge ein eigenen DIV-Bereich zu machen.
Das widerspricht doch total dem Sinn des CMS. Sobald dann der Redakteur mal neune Inhalt einfügen will, müßte er ja dann wieder einen neuen DIV anlegen und diesem im CSS neu Formatieren. Dann kann ich mir das ganze CMS sparen.

Zur Zeit sieht es so aus, ich füge die erste Box ein, "Mitarbeiter". Die einzige Möglichkeit zur Formatierung ist per css und dort dann bodytext.

Füge ich jetzt irgendwo anders wieder Text ein wird auf den die selbe Formatierung angewandt. D.h obwohl der ev weißen Hintergund haben soll, wird er wegen der css Formatierung für die erste BOX auf bodytext ebenfalls grau hinterlegt. Änder ich es in Weiß, zerstört mir das meine graue Box.
Wie zum Geier löst man das. Ich glaube echt, ich habe hier irgendetweas total Falsch verstanden.
ich dachte:
a) Seitenbaum aufstellen
b) per Template die Marker der Vorlage ansprechen, zb Menü bauen, ordenltichen Header bauen, Footer befüllen etc.
c) den Marker für den Inhalt(meist in der mittleren/rechten Spalte) mit tt_content verbinden
d) anschließend die Defaultkonfigurationen für die einzelnen Inhaltelemente (Text, Text mit Bild, Auszählung usw) mit css_styled_content Extension einbinden
e) jetzt die Defaultkonfiguration so umändern, dass es den eigenen Wünschen entspricht(verschiedene Layouts erstellen, aus denen der Redakteuer dann auswählen kann)
f) die Layouts per CSS konfigurieren für das entgültige Aussehen und die Plazierung

Wenn ich mir das jetzt aber überlege, kann das ja so gar nicht funktionieren. Die Layouts kann man ev noch erstellen, aber wenn der Redakteur neue Inhaltelemente einfügt, muss er die ja selbst plazieren. Das kann ich im voraus irgendwie überhaupt nicht erledigen. Selbst wenn ich 100 DIV vorbereite, müßte der Redakteur zumindest den Inhalt im TS mit dem DIV dann verbinden und ev noch anpassen. Bin gerade völlig konfuss #angry#

Wenn man die Beispielseite sieht http://swt.informatik.uni-jena.de/,
was müßte ich vorbereiten, damit der Redakteur auf leichtestem Weg neue Inhalt einfügen kann?

tamasi ·

hmmm, ich habe eben noch etwas rumprobiert

Ich konnte quasi die komplette Seite(so wie sie jetzt schon im internet steht) per c&p in einen ganz normales Text-Inhaltelement kopieren.
Der Editor hat daraus dann selbstständig eine üble Tabellen-Listen Kontruktion gemacht, welche aber funktioniert.
Schon im Editor sind die Felder mit den richtigen Farben belegt.

Soll das etwa so funktionieren? Ist das der Weg zum Inhalte erstellen?
Was macht man, wenn man als Redakteur komplett neuen Inhalt erstellen will?
Muss man dann per HTML Editor den zusammen basteln und per c&p wieder in ein Textelement einfügen? Auf die Art umgeht man komplett das CSS. Alles was ich jetzt noch im CSS habe(brauche), sind 4-5 Definitionen für left, center, footer usw.
Eigentlich ist das doch totaler Käse. Das Design soll ja gerade in der CSS sein. Inkl der CSS sollen auch diese monströsen Tabellenkonstuktionen umgangnen werden, indem man die Elemente einfach positioniert und nicht 25 leere Tabellenspalten einfügt, nur damit man einen gewissen Abstand erreicht.

Vergleiche ich auch meinen vorherigen Code(es fehlte nur eine sinnvolle Plazierungsmöglichkeit für die 2. Box rechts oben), dann ist dieses Tabellenmonstrum mind 5 mal so groß.Das kanns doch nicht sein?

Unbekannter Benutzer ·

Mir scheint du hast da wirklich was falsch verstanden. Also so wie ich die Seite sehe, brauchst du ein 1-Spaltiges und ein 2-Spaltiges Layout. Ein CMS soll ja Content auch vereinheitlichen, also sollte der Redakteur seinen Content nicht beliebig in der Gegend rumschieben können.
Es gibt glaube ich hier im Forum eine Lösung für ein dynamisches zweispaltiges Design oder du arbeitest mit dem Template Selektor, dann kannst du mehrere Templates (halt 1-Spaltig und 2-Spaltig) hinterlegen und in den Seiteneigenschaften kann man dann hin- und herschalten.

Hoffe das hilft dir ein bisschen weiter. Wie du die Inhalte stylest scheinst du ja in dem anderen Thread schon zu überlegen.

Viele Grüße

Christian