Members: 16,996
Threads: 38,845
Posts: 159,389
Online: 19

Newest Member: Kl_broka@rediffmail.com


Odoo.tv - Outdoor Television


Sedo - Domains kaufen und verkaufen das Projekt mambers.com steht zum Verkauf Besucherstatistiken von mambers.com etracker® Web-Controlling statt Logfile-Analyse

Go Back   Mambers.com > International > German - Deutsch > Templates

Reply
 
LinkBack Thread Tools Display Modes
Old 06.07.2004, 09:00   #1 (permalink)
Senior Mamber
 
Join Date: Apr 2004
Posts: 221
musicones is on a distinguished road
Default Problem mit CSS Template und 2- 3-Spaltigkeit

Hi,

ich arbeite mich gerade in das CSS Templating ein, mit div-tags anstatt Tabellen zu benutzen.

Nachdem ich gestern verstanden habe was es mit dem Box Hack auf sich hat und das auch umsetzen konnte, hänge ich jetzt an einer blöden Sache, zu der ich keine Idee habe, wie ich das lösen muss.

Ich habe folgenden Code in der index.php

PHP Code:
<?php if (mosCountModules"right" )) { ?>
  <div id="rightContent">
    <?php mosLoadModules 'right' ); ?> <br /> 
    <?php mosLoadModules 'user2' ); ?>                        
  </div>          
<?php ?>
Es geht ja darum, wenn die rechte Spalte leer ist, soll das div nicht angezeigt werden, ähnlich wie das bei der Tabellenspalte vorher war.

Allerdings wird im CSS ja für die Breite der Divs feste (bei mir prozentuale) Werte angegeben wie hier:
Quote:
#rightContent {
background-color: Navy;
color: White;
float: right;
margin: 0px;
padding: 0px;
position: relative;
vertical-align: top;
width: 21%; /* Box Model Hack*/
voice-family: "\"}\"";
voice-family: inherit;

}

html>body #rightContent {
width: 20%;
}
Wenn in der rechten Spalte jetzt kein Modul geladen wird, sollte sich der Main Content ja ausbreiten, macht er aber nicht, da das CSS ja vorgibt wie breit der sein muss

Hat jemand eine Idee wie man das venünftig umsetzen kann? Bin für fast jeden Vorschlag offen.


NACHTRAG:

Ich habe mittlerweile eine etwas eigensinnige Lösung gefunden, die funktioniert. Es ist die einzige Idee die ich hatte um das Problem zu lösen:

PHP Code:
    <?php if (mosCountModules"left") and mosCountModules("right")) { ?>
    
          <div id="leftContent">
            <?php mosLoadModules 'left' ); ?> <br /> 
            <?php mosLoadModules 'user1' ); ?>            
          </div>
          
             <div id="mainContent">
            <?php mosLoadModules 'top' ); ?>
              <?php include_once("mainbody.php"); ?>
            <?php mosLoadModules 'bottom' ); ?>          
          </div> 

          <div id="rightContent">
              <?php mosLoadModules 'right' ); ?> <br /> 
            <?php mosLoadModules 'user2' ); ?>                        
          </div>                

        <? } elseif (mosCountModules("left")) { ?>
    
          <div id="leftContent">
            <?php mosLoadModules 'left' ); ?> <br /> 
            <?php mosLoadModules 'user1' ); ?>            
          </div>

             <div id="mainContentWide">
            <?php mosLoadModules 'top' ); ?>
              <?php include_once("mainbody.php"); ?>
            <?php mosLoadModules 'bottom' ); ?>          
          </div>     

        <? } elseif (mosCountModules("right")) { ?> 

             <div id="mainContentWide">
            <?php mosLoadModules 'top' ); ?>
              <?php include_once("mainbody.php"); ?>
            <?php mosLoadModules 'bottom' ); ?>          
          </div>           

          <div id="rightContent">
            <?php mosLoadModules 'right' ); ?> <br /> 
            <?php mosLoadModules 'user2' ); ?>            
          </div>      
      
        <?php }    ?>
Wie ihr seht ich Frage einfach ab, in welchem Bereich Module geladen sind und lade dementsprechend die Inhalte rein, mit dem Unterschied, wenn im Left und Right Bereich Module sind, dann bekommt der MainContent die ID=MainContentWide ansonsten die ID=MainContent.
Im CSS gebe ich dem MainContentWide dann 80% breite und dem MainContent 60% Breite.


Wenn jemand nen besseren Ansatz hat, das zu lösen wäre ich sehr erfreut, ich halte das nämlich für ganz schön aufwendig.

Gruss
musicones

Last edited by musicones; 06.07.2004 at 12:21.
musicones is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Sponsored Links
Old 08.07.2004, 08:31   #2 (permalink)
Senior Mamber
 
Join Date: Apr 2004
Posts: 221
musicones is on a distinguished road
Flame Re: Problem mit CSS Template und 2- 3-Spaltigkeit

Ich dachte bei diesem Beitrag mehr an eine Diskussion, wie man das Problem lösen kann. Wie gesagt, ich halte meine Lösung für nicht wirklich erstrebenswert.
Soviele Leute haben es jetzt gelesen, ist denn keiner dabei dem dieses Problem jemals aufgefallen ist, oder schon irgendwie gelöst hat etc.

Nur zu, keine Hemmungen

gruss
musicones

P.S. Bin ich vielleicht im falschen Forum, sollte ich das mal im Developer Forum besprechen?
musicones is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 21.07.2004, 09:31   #3 (permalink)
Baby Mamber
 
Join Date: Jul 2004
Location: A 4030 Linz
Posts: 10
dietzi is on a distinguished road
Default Re: Problem mit CSS Template und 2- 3-Spaltigkeit

Hy musicones,

in den tabellenbasierten Layouts wird das Problem folgendermaßen gelöst:
Quote:
...
<tr>
<?php
if (mosCountModules('left')>0) {
?>
<td width="128" valign="top">
...
</td>
<?php
}
?>
<td valign="top">
...
Ich habe es noch nicht mit DIV's versucht, aber vielleicht ist das ein Ansatz.

LG
Dietmar
dietzi is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 21.07.2004, 09:53   #4 (permalink)
Senior Mamber
 
Join Date: Apr 2004
Posts: 221
musicones is on a distinguished road
Default Re: Problem mit CSS Template und 2- 3-Spaltigkeit

Hi dietzi,

ich weiss, wenn du dir den Code den ich gepostet habe anschaust, wirst du sehen, dass ich das auch so ähnlich übernommen habe. <td> möchte ich ja nicht nutzen. Allerdings empfinde ich das als umständlich. Aber es funktioniert.

gruss
musicones
musicones is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 21.07.2004, 11:15   #5 (permalink)
Elite Mamber
 
-peter-'s Avatar
 
Join Date: Apr 2004
Posts: 1,283
-peter- is an unknown quantity at this point
Default Re: Problem mit CSS Template und 2- 3-Spaltigkeit

Hallo

ersteinmal was ist dieser Box Model Hack ?

Ginge es nicht wenn du jedem Modul einen z-index verpassen würdest du diese dann bei rechter freier seite einfach das ganze überdeckt?

Gruss Peter
-peter- is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 21.07.2004, 13:29   #6 (permalink)
Expert Mamber
 
lukewill's Avatar
 
Join Date: Apr 2004
Location: Germany
Posts: 475
lukewill is an unknown quantity at this point
Default Re: Problem mit CSS Template und 2- 3-Spaltigkeit

Quote:
Originally Posted by -peter-
ersteinmal was ist dieser Box Model Hack ?
Dieser ist nötig, da IE (je nach modus) fälschlicher Weise die Abmaße eines Bereiches aus breite + abstand innen + abstand aussen berechent.

VG L
__________________
- Viele Grüße - Best regards - Lukewill

Mambo e.V. |Das Mambobuch
lukewill is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 30.07.2004, 18:26   #7 (permalink)
Mamber
 
wolfman's Avatar
 
Join Date: Jul 2004
Posts: 62
wolfman is on a distinguished road
Default Re: Problem mit CSS Template und 2- 3-Spaltigkeit

Hallo,
Bei dir zeigt sich einiges an redundantem code, das ließe sich schon vereinfachen.
Ich hab das ganze in meinem Template so gelöst:
bei mir sind feste margins eingestellt, aber die abstände kannst du ja einfach durch die beiden %-Angaben ersetzen.

PHP Code:
<!--Inserts centercontent-->
    <?php if (mosCountModules("right") > 0)    {echo"<div id='centercontent' style='margin:140px 150px 35px 150px;'>";}
     else {echo
"<div id='centercontent' style='margin:140px 0px 35px 150px;'>";}
    
?>
<!-- Put here centercontent code -->
    </div>
hier dann der Teil für das rechte Menu:
PHP Code:
<!--Inserts right Menu bar-->
    *<?php if (mosCountModules("right") > 0) {
        *echo 
"<div id='rightcontent'>
<!-- Put here rightmenu code -->
        </div>"
;}?>
Wer will kann sich das auch gerne im Orginal ansehen, das Template gibt es auf meiner Seite zum download: www.christiansaga.de

Für mich hat das wunderbar funktionier, dass Rechte Menu taucht nur auf, wenn man auch rechte-Menus aktiviert hat.

CYA
Christian
wolfman is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
The New Clockwork Template - Problem X-F4CT0R Template Discussions 3 09.09.2004 20:01
Template Installation Problem owine Template Discussions 7 18.06.2004 16:05
Problem with own template typhoid Template Discussions 0 16.06.2004 18:47
Template manager problem PeeWee Mambo 4.5 Bugs 1 10.05.2004 08:43
Template problem joost Mambo 4.5 General Talk 2 25.04.2004 12:44


All times are GMT +2. The time now is 09:28.

Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.1.0
A vBSkinworks Design
© Copyright 2004-2008 by Arthur Konze Webdesign.