Zur Boardunity Forenstartseite

Zurück   Boardunity & Video Forum » Technik » Programmierung und Datenbanken

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1  
Alt 22.12.2004, 08:53
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165

Div anstelle von Tabellen mit 3 Zellen


Tag,

ein altbekanntes Thema vermutlich, aber nachdem ich ca 27. Tutorials durchgelesen habe und abei x-Varianten von 2 oder 3 Columnloesungen gesehen, aber ich komme nicht auf einen gruenen Zweig, wenn ich mit DIV's ein Konstrukt wie die angehaengte Datei erreichen will

Hat Jemand schon mal sowas in die Richtung gemacht?

Mein letzter Stand ist

Code:
#container
  		{
  			border: 0px;
  			width:100%;
  		}
  
  		
  		#author
  		{
  			float: left;
  			width: 160px;
  		height: 100%;	
  		background-color: #EEEEEE;
  		padding-left: 7px;
  		padding-top: 4px;
  		vertical-align: top;
  		border-right: 1px solid #808080;
  		overflow: auto;
  		}
  		
  				
  		#top
  		{
  			margin: 0 2em 0 200px;
  		/*	padding-left: 7px;*/
  		padding-top: 4px;
  		padding-bottom: 4px;
  		background-color: #EEEEEE;
  		border-bottom: 1px solid #808080;
  		
  		}
  		
  		#body
  		{
  			margin: 0 2em 0 200px;
  			/*padding-left: 7px;*/
  		padding-top: 7px;
  		padding-bottom: 7px;
          font-size: 12px;
          font-family: Lucida Sans Unicode, Lucida Grande, Arial;
  		}
und

Code:
 <div id="container">
  		<div id="author">
 				<strong>ICH</strong><br />und noch was spaeter
  		<br /><br />
 					</div>
  	<div id="top">
  
  		Irgendwas und<br />
  Linie 2
  	</div>
   	<div id="body">
  	
  				</div>
  </div>
Angehängte Grafiken
 

__________________
gruss
fabian (der nicht immer unterschreiben will )
  #2  
Alt 22.12.2004, 10:11
Boardunity Team
 
Registriert seit: 12.2001
Beiträge: 1.624
Ich habe dein Konstrukt nur kurz überflogen, aber versuche es doch einmal mit zusätzlichen float-Angaben für "top" und "body".

  #3  
Alt 22.12.2004, 11:15
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 995
Code:
<div id="header"></div>
<div id="navigation"></div>
<div id="content"></div>
Code:
#header {
height: 100px;
left: 100px;
position: absolute;
top: 0;
}

#navigation {
left: 0;
position: absolute;
top: 0;
width: 100px;
}

#content {
left: 100px;
position: absolute;
top: 100px;
}
Dies ist das Grundgerüst für das Layout. Alle weiteren CSS Angaben, insbesonders Befehle wie Margin und Padding sollten innerhalb einer weitere Klasse oder ID definiert werden um Problemen des IEs zu entgehen.

Code:
<div id="header"><div class="header"></div></div>
<div id="navigation"><div class="navigation"></div></div>
<div id="content"><div class="content"></div></div>

  #4  
Alt 24.12.2004, 11:01
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
Tag,

Danke schon mal fuer die Tipps.

@Reimer:
Deine Variante geht eigentlich. Eigentlich. Mein Problem ist, und dies hab ich in meinem ersten Posting wohl nicht erwaehnt, dass dieses Konstrukt mehr als 1x auf der gleichen Seite vorkommt.
Daher dachte ich, ich sei ein ganz cleverer und aendere einfach die ID auf CLASSes um. Naja, der Effekt war dann nicht so toll. Hab dann versucht mit float:left und right zu spielen, aber irgendwie bin ich einfach nicht fuer dies geboren.
Vielleicht weiss Jemand noch weiter und sonst hoffe ich, dass mir Jemand ein CSS Buch unter den Weihnachtsbaum legt.

PS: Frohe Festtage an Alle

__________________
gruss
fabian (der nicht immer unterschreiben will )
  #5  
Alt 24.12.2004, 11:48
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 995
Wandel ID in Klassen um. Danach muss du um jedes Element einen Wrapper bauen, der die Elemente einschließt.

Code:
<div class="wrapper">
<div class="header"></div> <div class="navigation"></div> <div class="content"></div>
</div> <div class="wrapper">
<div class="header"></div> <div class="navigation"></div> <div class="content"></div>
</div> <div class="wrapper">
<div class="header"></div> <div class="navigation"></div> <div class="content"></div>
</div>
Für margin, padding und border der Klassen header, navigation und content würde ich noch weitere Klassen anlegen.

  #6  
Alt 24.12.2004, 15:52
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Und was erreichst du damit?

  #7  
Alt 24.12.2004, 16:15
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 995
position:absolute bezieht sich immer auf das Mutter Element, daher der Wrapper. Die Klassen für margin, padding und border umgehen die Probleme bezüglich der Boxmodel unter dem Internet Explorer. Die erste Box gibt die breite an, die innere Box gibt die Formatierung der Box an.

  #8  
Alt 26.12.2004, 20:28
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
Abend,


hmmm, es wollte mir niemand ein CSS Buch schenken.
Also, ich hab es jetzt mal mit dem Wrappter (Container) versucht.

1:1 uebernommen und noch mit einem float:left und Farben ausgestattet, sieht es wie auf dem zweiten Bild aus.
Code:
Code:
<style>
   .container
   		  {
   			
   			  width:100%;
   		  }
   	
   .header {
   height: 100px;
   left: 100px;
   position: absolute;
   top: 0;
   background-color: blue;
   }
   
   .navigation {
   float: left;
   left: 0;
   position: absolute;
   top: 0;
   width: 100px;
   background-color: red;
   }
   
   .content {
   left: 100px;
   position: absolute;
   top: 100px;
   background-color: yellow;
   }
   
   </style>
   
   </head>
   
   <body>
   <div id="container">
   
   
   	<div class="header">
 		 	<strong>Wir wollen an die Macht</strong><br />Date: December 8, 2004 04:04PM		</div>
   	<div class="navigation">
   		        <strong>Bruzzelteeschluerfer</strong><br />
   		<br /><br />
   
 					</div>
   	<div class="content">
 		 Ja, auch wir wollen Einfluss auf das Weltgeschehen haben, ob es euch passt oder nicht ist mir eigentlich Schnuppe. Keine Sternschnuppe. Mehr das Verb, aber dann muesste ich es ja auch klein schreiben. hmmmmm ?<br />
   				</div>
   
   	
   </div>
   <br /><br />
   <div id="container">
   
   
   	<div class="header">
 		 	<strong>Re: Wir wollen an die Macht</strong><br />Date: December 8, 2004 04:06PM		</div>
   	<div class="navigation">
  		 <strong>jetztkommteinnochviellaengername</strong><br />
   		<br /><br />
 					</div>
   	<div class="content">
   
   		 Jetzt wird es mir sicher das Design verhauen, aber was soll<br />
   				</div>
   
   	
   </div>
   
   
   
   </body>



Das position:absolute 3x auskommentiert und es sieht wie auf dem ersten Bild aus mit dem Code
Code:
...<style>
   .container
   		  {
   			
   			  width:100%;
   		  }
   	
   .header {
   float: right;
   height: 100px;
   left: 100px;
   /*position: absolute;*/
   top: 0;
   background-color: blue;
   }
   
   .navigation {
   float: left;
   left: 0;
   /*position: absolute;*/
   top: 0;
   width: 100px;
   background-color: red;
   }
   
   .content {
   left: 100px;
   /*position: absolute;*/
   top: 100px;
   background-color: yellow;
   }
   
   </style>
   
   </head>
   
   <body>
   <div id="container">
   
   
   	<div class="header">
 		 	<strong>Wir wollen an die Macht</strong><br />Date: December 8, 2004 04:04PM		</div>
   	<div class="navigation">
   		        <strong>Bruzzelteeschluerfer</strong><br />
   		<br /><br />
   
 					</div>
   	<div class="content">
 		 Ja, auch wir wollen Einfluss auf das Weltgeschehen haben, ob es euch passt oder nicht ist mir eigentlich Schnuppe. Keine Sternschnuppe. Mehr das Verb, aber dann muesste ich es ja auch klein schreiben. hmmmmm ?<br />
   				</div>
   
   	
   </div>
   <br /><br />
   <div id="container">
   
   
   	<div class="header">
 		 	<strong>Re: Wir wollen an die Macht</strong><br />Date: December 8, 2004 04:06PM		</div>
   	<div class="navigation">
  		 <strong>jetztkommteinnochviellaengername</strong><br />
   		<br /><br />
 					</div>
   	<div class="content">
   
   		 Jetzt wird es mir sicher das Design verhauen, aber was soll<br />
   				</div>
   
   	
   </div>
   
   
   
   </body>...
Wie verstaendnislos bin ich?
Miniaturansicht angehängter Grafiken
div-anstelle-tabellen-3-zellen-div_table_ohne_absolute.gif  div-anstelle-tabellen-3-zellen-div_table_mit_absolute.gif  

__________________
gruss
fabian (der nicht immer unterschreiben will )

Geändert von fabian (26.12.2004 um 20:29 Uhr). Grund: Bilder wurden umgekehrt angezeigt
  #9  
Alt 05.01.2005, 09:55
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
hmmm, gibt es da nicht noch den Einen oder Anderen Schlaukopf in der grossen, weiten Welt?

__________________
gruss
fabian (der nicht immer unterschreiben will )
  #10  
Alt 05.01.2005, 12:33
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
XHTML:
Code:
<div class="container">
     <div class="sitebar">
     <h2>Letze News</h2>
      <ul>
   	<li><a href="#">Working on a Timemachine</a></li>
   	<li><a href="#">Some other thing</a></li>
   	<li><a href="#">Yet another headline</a></li>
   	<li><a href="#">Thats news again!</a></li>
      </ul>
     </div>
     <div class="content">
     <div class="header">Header</div>
      <h1>I am a Headline</h1>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      Vestibulum in dolor. Etiam bibendum, diam vel sagittis faucibus, tellus
      felis luctus tellus, sit amet ultricies augue nibh eu sem. Pellentesque in
      mi sed lacus dictum volutpat. Class aptent taciti sociosqu ad litora
      torquent per conubia nostra, per inceptos hymenaeos. Fusce pede. Donec
      aliquam faucibus magna. Etiam interdum massa sed augue. Vivamus blandit
      accumsan orci. Phasellus tempus. Proin faucibus. Phasellus tincidunt nulla
      et massa. Fusce erat leo, ultrices sed, mattis vel, ullamcorper sed, eros.
      Quisque quis wisi ut lacus feugiat cursus. Nam aliquet felis facilisis pede.
      Mauris ullamcorper nibh in eros. Cras accumsan magna in diam.</p>
     </div>
    </div>
    
    <div class="container">
     <div class="sitebar">
     <h2>Letze News</h2>
      <ul>
   	<li><a href="#">Working on a Timemachine</a></li>
   	<li><a href="#">Some other thing</a></li>
   	<li><a href="#">Yet another headline</a></li>
   	<li><a href="#">Thats news again!</a></li>
      </ul>
     </div>
     <div class="content">
     <div class="header">Header</div>
      <h1>I am a Headline</h1>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      Vestibulum in dolor. Etiam bibendum, diam vel sagittis faucibus, tellus
      felis luctus tellus, sit amet ultricies augue nibh eu sem. Pellentesque in
      mi sed lacus dictum volutpat. Class aptent taciti sociosqu ad litora
      torquent per conubia nostra, per inceptos hymenaeos. Fusce pede. Donec
      aliquam faucibus magna. Etiam interdum massa sed augue. Vivamus blandit
      accumsan orci. Phasellus tempus. Proin faucibus. Phasellus tincidunt nulla
      et massa. Fusce erat leo, ultrices sed, mattis vel, ullamcorper sed, eros.
      Quisque quis wisi ut lacus feugiat cursus. Nam aliquet felis facilisis pede.
      Mauris ullamcorper nibh in eros. Cras accumsan magna in diam.</p>
     </div>
    </div>
CSS:
Code:
      .sitebar {
   	   position: absolute;
   	width: 250px;
      }
      
      .header {
   	background: #00F;
      }
      
      .content {
   	   background: #FF0;
   	border-left: 250px solid #F00; /* könnte auch eine grafik sein */
      }
Bei mir funktioniert es, hab's aber auch nur unter Firefox 1.0/Linux getestet... Gott weiß, was IE/Windows damit macht. *g*

Oh... und ja, das mit dem .header im .content ist ein fieser, kleiner, eckliger (aber effektiver) Trick. "

Edit: Achso... du musst natürlich wenn du die breite .sitebar anpassen willst den border vom .content ebenfalls anpassen.

Edit2: .container ist überflüssig, aber falls du nen overall-border oder sowas einbinden willst ganz praktisch.

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #11  
Alt 06.01.2005, 21:18
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
Tag,

Danke Dir schon mal dafuer, dass Dich mit mir abgibst

Hab es natuerlich gleich versucht und endlich klappt es mit dem Header und den DIV's. Fast klappt es. Wenn der linke rote Bereich sitbar laenger ist, als der Content, dann sieht es ganz ueberlappend.
Hab es jetzt mal versucht mit einem Container hinzufuegen mit height: 100%. Natuerlich kein. Erfolg ebenfalls hab ich mit height herumgespielt bei content. Naja. Macht mich alles nicht gluecklich.

Vielleicht hast noch einen Tipp fuer mich auf Lager?

__________________
gruss
fabian (der nicht immer unterschreiben will )
  #12  
Alt 06.01.2005, 21:38
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Na ja, da bleibt wohl nichts übrig ausser tricksen. "

Bei denen, wo das passiert gibts du einfach dem .content per inline-style ein entsprechendes padding-bottom.
Wirst etwas testen müssen, aber es sollte klappen, sofern du weißt, wie lang die rote Spalte ist.

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #13  
Alt 06.01.2005, 21:42
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
Zitat:
Zitat von TheDragonMaster
Wirst etwas testen müssen, aber es sollte klappen, sofern du weißt, wie lang die rote Spalte ist.
Und genau hier muesste die rote Alarmlampe losgehen. Es ist nicht immer klar, wie hoch die rote, linke sidebar wird...

__________________
gruss
fabian (der nicht immer unterschreiben will )
  #14  
Alt 06.01.2005, 22:09
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Frei nach Zeldman: Nimm ne Tabelle.
Eigentlich habe ich die Lösung, aber aufgrund von Bugs in allen gängigen Browsern funktioniert das nicht (float-ende Objekte werden falsch berechnet).

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #15  
Alt 07.01.2005, 07:56
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
Zitat:
Zitat von TheDragonMaster
Frei nach Zeldman: Nimm ne Tabelle.
Eigentlich habe ich die Lösung, aber aufgrund von Bugs in allen gängigen Browsern funktioniert das nicht (float-ende Objekte werden falsch berechnet).
Dachte ich es mir doch fast, den die tausenden von Tutorials (auch zeldman) hatten immer andere Beispiele ...

__________________
gruss
fabian (der nicht immer unterschreiben will )
  #16  
Alt 07.01.2005, 13:04
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Tja... es wird wohl noch dauern, bis die Browser solche Sachen so unterstützen, wie sie es eigentlich sollten... aber für das meiste reicht CSS aus.
In dem Fall kann man aber eine Tabelle rechtfertigen... (vorrausgesetzt dieses Layout-Konstrukt ist wirklich notwendig).

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #17  
Alt 07.01.2005, 13:08
Benutzerbild von fabian
Mitglied
 
Registriert seit: 03.2003
Beiträge: 165
Zitat:
Zitat von TheDragonMaster
...
In dem Fall kann man aber eine Tabelle rechtfertigen... (vorrausgesetzt dieses Layout-Konstrukt ist wirklich notwendig).
Ja, es rechtfertigt es

Danke euch trotzdem fuer die Hilfe.

__________________
gruss
fabian (der nicht immer unterschreiben will )
Antwort


Stichworte
-


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tipp: Tabellen richtig nutzen etc. MaMo Programmierung und Datenbanken 21 19.12.2004 01:17






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25