Wie PHP Content automatisch in Stylesheet einpassen?
CrazyLexx
- php
Hallo zusammen,
möchte gerne die mittels CSS realisierten "Stile" im FCKeditor erweitern. Dafür gibt es im Editor ein eigene CSS Datei, welche quasi wie die Formatvorlagen bei Word funktionieren. Leider bin ich mir nicht ganz sicher, wie ich den folgenden Style Code automatisieren kann:
<p>
<span style="float:left;color:silver;font-size:100px;line-height:70px;padding-top:2px;font-family: times;">[i]F[/i]</span>[i]or this one we want to force the first big letter to span about five lines. The font-size is adjusted to exactly 100 pixels while the line height is 70 pixels. We tried a line-height of 80 but that leaves a little too much white space. [/i]
</p>
Der Code wird verwendet, um so einen Magazin-Look mit einem großen Buchstaben am Anfang eines Artikels zu erzeugen:
Wie kann ich diesen Vorgang nun automatisieren, wenn der eigentliche Text über einen PHP Befehl ($content) in die Seite eingefügt wird? Kann man das also irgendwie so hinbekommen, dass wie im oberen Beispiel der kursiv markierte Text quasi eingefügt wird und dabei der erste Buchstabe an der passenden Stelle (vor dem </span> Tag) im Code landet?
Gruß,
Tom
Hi,
Wie kann ich diesen Vorgang nun automatisieren, wenn der eigentliche Text über einen PHP Befehl ($content) in die Seite eingefügt wird?
Was hindert Dich daran, den in $content enthaltenen String mit den Methoden der Stringbearbeitung entsprechend zu verändern?
Gruesse, Joachim
Was hindert Dich daran, den in $content enthaltenen String mit den Methoden der Stringbearbeitung entsprechend zu verändern?
Habe da keine brauchbare Lösung hinbekommen: Der $content Teil wird durch den FCKeditor in die Seite eingefügt und der Editor fügt automatisch HTML tags (z.B. <p align="justify"> in den Content ein. Hatte da versucht, einfach den ersten Buchstaben von $content zu isolieren und diesen als Initiale angezeigt zu bekommen, aber dann habe ich nur die "offene Klammer" des Tags als Initiale hinbekommen. :-(
TOM
Hi,
Der Code wird verwendet, um so einen Magazin-Look mit einem großen Buchstaben am Anfang eines Artikels zu erzeugen:
Wie kann ich diesen Vorgang nun automatisieren, wenn der eigentliche Text über einen PHP Befehl ($content) in die Seite eingefügt wird?
In dem du nicht an der Struktur des Inhalts rumfummelst, sondern CSS fuer die Optik einsetzt?
http://de.selfhtml.org/css/eigenschaften/pseudoformate.htm#first_line_letter_child
MfG ChrisB
Hi,
In dem du nicht an der Struktur des Inhalts rumfummelst, sondern CSS fuer die Optik einsetzt?
Wo er Recht hat... Beispiel
Gruesse, Joachim
Hi,
In dem du nicht an der Struktur des Inhalts rumfummelst, sondern CSS fuer die Optik einsetzt?
Wo er Recht hat... Beispiel
Wäre mir auch lieber, dass über CSS zu machen und hatte es auch schon mal mit "first-letter" probiert:
<style type="text/css">
}
p:first-letter {
float: left;
font-size: 3em;
padding: 0.1em 0.1em 0 0;
}
</style>
Das Problem daran war nun, dass dies dann natürlich überall auf der Seite angewandt wird, wenn ein <p> Tag vorgefunden wird - z.B. bei den User Kommentaren, die unter einem Artikel erscheinen können.
Was mache ich da?
Gruß,
Tom
Mahlzeit,
Das Problem daran war nun, dass dies dann natürlich überall auf der Seite angewandt wird, wenn ein <p> Tag vorgefunden wird - z.B. bei den User Kommentaren, die unter einem Artikel erscheinen können.
Was mache ich da?
Anscheinend etwas falsch. Diese "spezielle" Formatierung soll also nicht bei allen Absätzen, sondern nur bei bestimmten Absätzen vorkommen?
Dann verpasse allen Absätzen, bei denen sie vorkommen soll, eine entsprechende Klasse (z.B. "artikel") und formatiere nur deren ersten Buchstaben entsprechend:
p.artikel:first-letter {
float: left;
font-size: 3em;
padding: 0.1em 0.1em 0 0;
}
MfG,
EKKi
Hi,
Das Problem daran war nun, dass dies dann natürlich überall auf der Seite angewandt wird, wenn ein <p> Tag vorgefunden wird - z.B. bei den User Kommentaren, die unter einem Artikel erscheinen können.
Was mache ich da?
Auch wenn EKKi dir dazu schon eine Antwort geschrieben hat -
D'oh!
Hast du dich schon mal grundlegend mit CSS beschaeftigt ...?
MfG ChrisB
Auch wenn EKKi dir dazu schon eine Antwort geschrieben hat -
D'oh!
Hast du dich schon mal grundlegend mit CSS beschaeftigt ...?
Nee nee, habe mein Problem offenbar nicht richtig beschrieben - sorry!
Der Inhalt von "$content" wird im CMS mit Hilfe des FCKeditor in die Datenbank eingetragen. Da es sich dabei meistens um längere Fließtexte handelt, muss man ja nur mal kurz auf ENTER drücken, um einen neuen Absatz anzufangen und schon fügt der Editor an dieser Stelle einen neuen Paragraphen ein. Wenn ich nun den unten angeführten CCS Code verwende, und die "artikel" Klasse auf §content anwende, bekomme ich ja bei JEDEM Absatz ein solche Initiale angezeigt!
[code=css]
.artikel {
font-size: 13px;
color: #191919;
font-family: Arial, Helvetica, sans-serif;
font-weight: none;
text-decoration: none;
text-align: justify;
}
.artikel first-letter {
float: left;
font-size: 3em;
padding: 0.1em 0.1em 0 0;
}
[/code]
Die Idee ist aber, dass wirklich nur der erste Buchstabe des GANZEN Artikels eine solche Initiale hat...
TOM
Hi,
Die Idee ist aber, dass wirklich nur der erste Buchstabe des GANZEN Artikels eine solche Initiale hat...
OK, die Info kam bisher nicht so deutlich rueber (bzw. nicht bei mir an) ...
Gut, ein "Artikel" wird ja vermutlich auch irgendwie greifbar sein, bspw. durch einen umgebenden Div-Container.
Der erste Absatz darin waere also dessen first-child, und wenn man zunaechst diesen selektiert, koennte man sich dann nur dessen first-letter widmen ...
(Wie weit das noch browseruebergreifend funktioniert, muesste man schauen.)
MfG ChrisB
Hi,
Die Idee ist aber, dass wirklich nur der erste Buchstabe des GANZEN Artikels eine solche Initiale hat...
OK, die Info kam bisher nicht so deutlich rueber (bzw. nicht bei mir an) ...
Kein Thema, hätte ich ja auch deutlicher machen können ;-)
Gut, ein "Artikel" wird ja vermutlich auch irgendwie greifbar sein, bspw. durch einen umgebenden Div-Container.
Der erste Absatz darin waere also dessen first-child, und wenn man zunaechst diesen selektiert, koennte man sich dann nur dessen first-letter widmen ...(Wie weit das noch browseruebergreifend funktioniert, muesste man schauen.)
Hm, wie du schon meintest, kann zumindest der IE6 mit "first-child" nichts anfangen:http://www.css4you.de/first-child.html
Was hätten wir denn für browserübergreifende Alternativen? Da die Artikel eigentlich immer mit einem <p> Tag beginnen und danach der eigentliche Fließtext kommt, könnte man da nicht irgendwie eine Einsatzregel schreiben? Also sowas wie "nehme den Inhalt von $content und isoliere das VIERTE Zeichen" (welches ja nach "offener Klammer", "p" und "geschlossener Klammer" dann das erste Zeichen des Texts wäre)? Habe davon aber leider überhaupt keine Ahnung... :-(
TOM
Hi,
Hm, wie du schon meintest, kann zumindest der IE6 mit "first-child" nichts anfangen:http://www.css4you.de/first-child.html
IE 6 ist tot - manche Nutzer haben's nur noch nicht gemerkt.
Ich halte es fuer akzeptabel, wenn nicht alle gestalterischen Effekte in so einem veralteten Browser wie gewuenscht umgesetzt werden, so lange der Inhalt zugaenglich bleibt.
Was hätten wir denn für browserübergreifende Alternativen? Da die Artikel eigentlich immer mit einem <p> Tag beginnen und danach der eigentliche Fließtext kommt, könnte man da nicht irgendwie eine Einsatzregel schreiben?
Da wuerde ich dann aber eher clientseitig per JavaScript rangehen (und nur in den Browsern, die es per CSS nicht koennen).
MfG ChrisB