Zum Inhalt springen

Bildblock - Gesamtbreite richtig berechnen (css_styled_content)

Erstellt am 28. Januar 2010 · 3 Antworten · letzte Antwort am 29. September 2010

Tags: Inhaltselemente, Bilder, Frage

Unbekannter Benutzer ·

Hallo zusammen,

ich stehe gerade vor dem Problem, dass ich es nicht hinkriege die Breite eines Bildblockes (css_styled_content), aufgrund der Angabe eines padding je Bild, richtig zu berechnen.

Laut meinem derzeitigen Kenntnissstand habe ich ja bezüglich der Berechnung nur die Möglichkeit diese über die Angabe des Abstandes zwischen den Bildern (colSpace) zu beeinflussen. Die Angaben zum Border lass ich mal aussen vor.

Die Berechnung erfolgt ja denke ich folgendermassen:
"Anzahl Bilder je Zeile" * Bildbreite + ("Anzahl Bilder je Zeile" - 1) * colSpace

Allerdings wird bei der Berechnung nun nicht berücksichtigt, dass ja das padding-left des ersten Bildes und das padding-right des letzten Bildes je Reihe mit hinzugerechnet werden müsste.

Kennt jemand eine Lösung für das Problem?

Danke im Vorraus
Falk

igorshmigor ·

Die Breite wird in class.tx_cssstyledcontent_pi1.php bestimmt, siehe hier: http://doxygen.frozenkiwi.com/typo3/html/d6/d70/class_8tx__cssstyledcontent__pi1_8php-source.html#l00403.

Über Typoscript hast Du mit tt_content.image.20.imageStdWrap die Möglichkeit, noch weiter Einfluss zu nehmen und das finale Rendering zu bestimmen. Die Breite scheint in register:totalwidth festgehalten zu werden, soweit ich das durchblicke.

Der Standard im static Template von css styled content ist:

imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>

Aber Du könntest das auch überschreiben und mit Wraps und prioriCalc ein paar Pixel draufgeben.

Unbekannter Benutzer ·

Hallo igorshmigor,

das ist eine Lösung, die ich auch schon ins Auge gefasst habe. Gibt es denn aber mit den Bordmitteln der css_styled_content keine Lösung, da dieser Fall mit Padding um das Bild ja nicht so selten auftritt.

Gibt es noch einfachere Lösungsansätze?

Danke Falk

doni ·

Ich hab die Lösung gefunden:

In der Datei:
/typo3/sysext/css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
folgendes von:

        if ($position == 0 || $position == 8-)    {
                // For 'center' we always need a width: without one, the margin:auto trick won't work
            $imgWrapWidth = $imageBlockWidth;
        }

in dieses ändern:

		if ($position == 0 || $position == 8-)	{
				// For 'center' we always need a width: without one, the margin:auto trick won't work
			//$imgWrapWidth = $imageBlockWidth;
			$imgWrapWidth = $imageBlockWidth+(($colCount-1)*10);
		}

Hat aber den Nachteil, dass nach einem Systemupdate dies wieder weg ist.