mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 23:47 Benutzername: Passwort: Auto-Login

Thema: [CSS] 100%-table lässt sich nicht auf div begrenzen vom 04.04.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> [CSS] 100%-table lässt sich nicht auf div begrenzen
Autor Nachricht
OutBlack
Threadersteller

Dabei seit: 24.03.2006
Ort: Köln
Alter: 32
Geschlecht: Männlich
Verfasst Mi 04.04.2007 21:08
Titel

[CSS] 100%-table lässt sich nicht auf div begrenzen

Antworten mit Zitat Zum Seitenanfang

Hallo Zusammen,

der Titel hört sich ein wahrscheinlich ein wenig konfus an. Ich versuche es so einfach wie möglich zu erklären:

Ich habe auf meiner seite zwei DIV-Container, beide nach links gefloatet. Der linke (sidebar) hat eine feste Breite von 200px, der rechte (main) soll den Rest des Fensters vereinnahmen. In diesen rechten Container kommt eine Tabelle, die den gesamten Container ausfüllen soll. Dazu der Code:

Code:

<body>
   <div id="sidebar">Sidebar-Inhalt</div>
   <div id="main">
      <table>
         <tr>
            <td>Zelle 1</td>
         </tr>
         <tr>
            <td>Zelle 2</td>
         </tr>
      </table>
   </div>
</body>


Die Stylesheets dazu:

Code:

#sidebar, #main {
   float: left;
}

#sidebar {
   width: 200px;
}

#main table {
   width: 100%;
}


Doch was dabei rauskommt entspricht nicht wirklich dem, was ich erhofft hatte. Denn bei mir schiebt sich das main-div unter das sidebar-div:

So soll es sein:



Das kommt raus:



Hat jemand vielleicht schon mal das gleiche Problem gehabt oder kann mir sonst irgendwie weiterhelfen?

Vielen Dank im Voraus
OutBlack
  View user's profile Private Nachricht senden
Raumwurm

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 05.04.2007 00:48
Titel

Antworten mit Zitat Zum Seitenanfang

Die Table vergrößert Dir das #main-Div auf
100% Breite und hat keinen Platz mehr zum
floaten. Gibt dem #main mal eine width dann
geht das.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
OutBlack
Threadersteller

Dabei seit: 24.03.2006
Ort: Köln
Alter: 32
Geschlecht: Männlich
Verfasst Do 05.04.2007 00:56
Titel

Antworten mit Zitat Zum Seitenanfang

Aber wie kann ich das denn realisieren ohne #main eine feste breite zu geben?
Denn eigentlich soll das ganze liquid sein.
  View user's profile Private Nachricht senden
MichelB

Dabei seit: 20.08.2006
Ort: Essen
Alter: 37
Geschlecht: Männlich
Verfasst Do 05.04.2007 01:28
Titel

Antworten mit Zitat Zum Seitenanfang

Versuch mal, #main keine Breite zuzuweisen, dafür aber ein margin-left: breite #sidebar.

So aus’m Kopf heraus müsste das funktionieren.

Wenn's nicht klappt: http://alistapart.com/articles/negativemargins
  View user's profile Private Nachricht senden
OutBlack
Threadersteller

Dabei seit: 24.03.2006
Ort: Köln
Alter: 32
Geschlecht: Männlich
Verfasst Do 05.04.2007 03:12
Titel

Antworten mit Zitat Zum Seitenanfang

Aha! Hey echt klasse MichelB!
Das war genau das was ich gesucht habe, und nach einigem rumprobieren hat es dann auch geklappt.
Da wär ich echt im Leben nicht drauf gekommen, obwohl ich alistapart.com natürlich kenne.

Echt spitze, nochmals vielen Dank!

Für alle die es noch gebrauchen können, werde ich versuche es auch noch mal auf Deutsch halbwegs verständlich zu erklären.

Tutorial:

1. Du hast ungefähr das gleiche Problem wie ich (s.o.) und dein Code sieht in etwa so aus:
HTML:
Code:

<div id="header">Header-Inhalt</div>

<div id="sidebar">
  <p>Sidebar-Inhalt</p>
</div>

<div id="container">
  <table><tr><td>Tabellen-Inhalt</td></tr></table>
</div>

<div id="footer">Footer-Inhalt</div>


CSS:
Code:

#sidebar {
  float:left;              /* float:left - float:left  oder float:left - float:right */
  width: 100px;            /* UNBEDINGT Feste Größe */
}

#container {
  float:left;
}

#container table {
  width: 100%;
}

#footer {
  clear: both;             /* UNBEDINGT float wieder aufheben */
}


2. Der HTML-Code wird um ein #content-div erweitert. Und dann passiert das entscheidende: Das #container-div bekommt einen äußeren linken Rand von -100px und das neue #content-div einen von 100px.

HTML:
Code:

<div id="header">Header-Inhalt</div>

<div id="sidebar">
  <p>Sidebar-Inhalt</p>
</div>

<div id="container">
  <div id="content">                                        <!-- UNBEDINGT #content-div einfügen --!>
    <table><tr><td>Tabellen-Inhalt</td></tr></table>
  </div>
</div>

<div id="footer">Footer-Inhalt</div>


CSS:
Code:

#sidebar {
  float:left;             
  width: 100px;           
}

#container {
  float:left;                 
  margin-left: -100px; /* UNBEDINGT margin-left auf -100px setzen */
}

#content {             /* UNBEDINGT #content-div einfügen */
  margin-left: 100px;  /* UNBEDINGT margin-left auf 100px setzen */
}

#container table {
  width: 100%;
}

#footer {
  clear: both;
}


3. Fertig. Natürlich kann das ganze auch mit float:right gemacht werden, dafür müssen einfach nur die floats und die margins auf right geändert werden.

Gruß
OutBlack


Zuletzt bearbeitet von OutBlack am Do 05.04.2007 03:13, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen drag von mc begrenzen
Größe einer Selectbox begrenzen?
position:fixed div Scrollbereich begrenzen
<table> formatieren mit css
Table Drag & Drop
Jommla in Table-Layout
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.