Fehlendes "clear:both" bei Abstand zwischen CPs ??

Use GitHub to post bug reports and error descriptions for phpwcms. Describe your problem detailed!
Locked
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Fehlendes "clear:both" bei Abstand zwischen CPs ??

Post by pepe »

Bisher wurde ein Abstand oberhalb eines CPs von zB.15px so codiert...

ALT:
<div style="margin: 15px 0pt 0pt; padding: 0pt; clear: both;"></div>

Bei der neuesten Version folgendermassen...

NEU:
<div style="margin:15px 0 0 0; padding:0 0 0 0;"></div>


Bei komplexen Layouts - mit verschachtelten CPs - werden jetzt die Elemente nicht mehr schön untereinander angeordnet, sondern sie verschachteln wieder nebeneinander; das hatten wir doch schon mal :cry:

Die Einführung des DIV Elements für den Abstand hatte da prima Abhilfe geschaffen... nu ist das wieder einen Schritt zurück.....

Wieso ist das clear rausgeflogen?
Oder habe ich was falsch gemacht???

An welcher Stelle des Codes kann ich das wieder einbinden?
Oder gibt's ggf.eine Lösung per CSS?
beat
Posts: 99
Joined: Wed 23. Nov 2005, 15:18
Location: Gerzensee
Contact:

Post by beat »

Hallo Pepe

stell doch mal laout und css rein ich schau mir das an hat aber bestimmt mit wcms nichts zu tun sondern mit CSS.
User avatar
pico
Posts: 2595
Joined: Wed 28. Jul 2004, 18:04
Location: Frankfurt/M Germany
Contact:

Post by pico »

Hi

vielleicht, weil bei einem CSS-Layout mit 3 Spalten die auch per clearing auf einheitliche länge gebracht werden, dann das clearing auch auf die anderen Spalten wirkt, und somit das nächste Blockelement unter das nächste in einer anderen Spalte rutscht -
mal sehn ob das einer versteht ;) - kanns nicht besser ausdrücken
Lieber Gott gib mir Geduld - ABER BEEIL DICH
Horst - find me at Musiker-Board
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Post by pepe »

@pico
Danke, ich habs verstanden....
(Aus eben diesem Grund hatte ich bisher - trotz DIVs - die Bereiche LEFT-CONTENT-RIGHT zusätzlich in Tabellenspalten gepackt!!!)
Möglich, daß OG es deshalb geändert hat... aber jetzt fehlt mir eine saubere Lösung für die verticale Anordnung mit definiertem Abstand :roll:

Allerdings habe ich die Änderung selber gefunden und kann ggf. damit eine "unsaubere" Lösung meines Problems realisieren (clear wieder reinpacken), mal sehen :roll:

Nur so eine Idee:
Es wäre nicht schlecht, wenn man innerhalb des CPs entscheiden könnte (Schalter), ob man den Abstand per <br /> oder DIV umsetzen möchte...


In der folgenden Datei wurde die clear-Anweisung entfernt!!!
Dadurch wird ein folgender CP ggf. NICHT unter, sondern neben dem Vorgänger eingesetzt!
Aber das hängt sicher stark von der Art der gewählten Anordnung der CPs ab.

include/inc_front/content.article.inc.php (etwa ab Zeile 325)
// Space before ALTE VERSION =============================
if($crow["acontent_before"]) {
if(!empty($template_default["article"]["div_spacer"])) {
$CNT_TMP .= '<div style="margin:'.$crow["acontent_before"].'px 0 0 0; padding:0 0 0 0; clear:both;"></div>';
} else {
$CNT_TMP .= "<br>".spacer(1,$crow["acontent_before"]);
}
}
// Space before NEUE VERSION ==============================
if($crow["acontent_before"]) {
if(!empty($template_default["article"]["div_spacer"])) {
$CNT_TMP .= '<div style="margin:'.$crow["acontent_before"].'px 0 0 0; padding:0 0 0 0;"></div>';
} else {
$CNT_TMP .= "<br />".spacer(1,$crow["acontent_before"]);
}
}
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Post by pepe »

so, ich habe jetzt eine Lösung "für mich" gefunden, die beide Varianten abdeckt :idea:

Zwar nur ein Workaround, also nicht so elegant... aber es funktioniert prima :D

- Ich habe einfach dem Abstand oberhalb das clear:both der vergangenen Versionen wieder angefügt!
- Beim Abstand unterhalb aber die neue Version "ohne clear" belassen!


So kann ich beide Varianten - je nach Bedarf - einsetzten und alles sieht wieder "ordendlich" aus :lol:

_____________________________________________________________
EDIT:
Nach dem ich etwas experimentiert habe, mußte ich meine Einstellung doch geringfügig ändern, da sonst im FF 2.0 ein andere Abstand oberhalb entstanden wäre.
Mit folgender Codezeile klappts jetzt aber:

Anstelle im Original:
$CNT_TMP .= '<div style="margin:'.$crow["acontent_before"].'px 0 0 0; padding:0 0 0 0;"></div>';
Habe ich jetzt:
$CNT_TMP .= '<div style="margin:0 0 '.$crow["acontent_before"].'px 0; padding:0 0 0 0; clear:both;"></div>';
Also scheint da doch gegenüber der 1.2.9-pre aus dem Forum Einiges geändert worden zu sein.
Ich werde lieber keine Updates meiner alten Sites machen. Allerhöchstens neue Siten damit umsetzen...
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

Hallo pepe,

du hast mich da auf eine Idee gebracht.
Zwischen den CPs fehlt mir häufig eine definierbare Klasse oder eine Tag Sequenz ........

include/inc_front/content.article.inc.php (etwa ab Zeile 325)
Wie wäre das denn:
// Space before
if($crow["acontent_before"]) {
if(!empty($template_default["article"]["div_spacer"])) {
$CNT_TMP .= '<div style="margin:'.$crow["acontent_before"].'px 0 0 0; padding:0 0 0 0;"></div>';
} else {
$CNT_TMP .= "<br />".spacer(1,$crow["acontent_before"]);
}
// kh 190107 patch --------
$CNT_TMP .= $template_default["article"]["spacer_before"];
// -------- end patch
}

// include content part code section
include("include/inc_front/content/cnt".$crow["acontent_type"].".article.inc.php");

//check if top link should be shown
$CNT_TMP .= getContentPartTopLink($crow["acontent_top"]);

// Space after
if($crow["acontent_after"]) {
if(!empty($template_default["article"]["div_spacer"])) {
$CNT_TMP .= '<div style="margin:0 0 '.$crow["acontent_after"].'px 0; padding:0 0 0 0;"></div>';
} else {
$CNT_TMP .= "<br />".spacer(1,$crow["acontent_after"]);
}
// kh 190107 patch --------
$CNT_TMP .= $template_default["article"]["spacer_after"];
// -------- end patch
}
Und in der conf.template_default.inc.php
$template_default['article']['div_spacer'] = true; //if true or 'div' = <div>..., if false or not set <br><img...>

// kh 190107 patch at content.article.inc.php --------
$template_default['article']['spacer_before'] = '<div style="clear:both;"></div>';
$template_default['article']['spacer_after'] = '<div class="spacer_after"><h4>=== Das ist ein Zwischenraumtext ===</h4></div>';
// -------- End patch
Ist jetzt nicht großartig getestet brächte aber ganz neue Möglichkeiten.

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Locked