"Rahmen"-Layout mit <div>s

"Rahmen"-Layout mit <div>s

Beitragvon Treelo » 15.03.2010, 01:02

Hallo,

ich bin CSS-Anfänger, jedoch lernfähig.
Mithilfe von CSS möchte ich das Layout einer Website gestalten und zwar mit Header, Content-Bereich, Footer und links und rechts Bereiche, die optisch "mitlaufen" sollen (siehe angehängte Skizze).
Dabei soll der Footer immer dem Content folgen, und zwar auch, wenn der Content viel weniger als die Bildschirmhöhe einnimmt (also nicht wie oft gewünscht am unteren Rand des Browserfensters kleben).
Ich weiß, dass ist bestimmt ein sehr häufig behandeltes Anliegen, das ich hier vorbringe, ich kann nur sagen, dass ich wirklich sehr vieles versucht habe und jetzt bin ich langsam so verwirrt, dass ich einfach nicht mehr weiterkomme.

Der Content soll also oben und unten, links und rechts eingerahmt werden, wobei der Rahmen nach unten hin flexibel sein soll (je nach Content). Außerdem soll der ganze Rahmen zentriert sein.

Hier mein bisheriger CSS-Ansatz:
Code: Alles auswählen
body
         {
         padding: 0;
         margin: 0;
         }

#frame_oben
         {
         position: absolute;
         left: 50%;
         margin-left: -440px;
         top: 0px;
         height: 278px;
         width: 880px;
         background-color: #FFFFB9;
         background-image: url(../abc.gif);
         }

#container
         {
         position: relative;
         }

#frame_links
         {
         /*position: absolute;*/               
         /*top: 278px;*/
         left: 50%;
         margin-left: -440px;
         /*bottom: 156px;*/
         width: 200px;
         background-image: url(../abc.gif);
         }

#content
         {
         position: absolute;
         top: 278px;
         left: 50%;
         margin-left: -240px;
         width: 480px;
         background-color: #FFCBFF;
         }

#frame_rechts
         {
         position: absolute;
         /*top: 278px;*/
         right: 50%;
         margin-right: -440px;
         /*bottom: 156px;*/
         width: 200px;
         background-image: url(../abc.gif);
         }

#frame_unten
         {
         position: absolute;
         bottom: 0;
         left: 50%;
         margin-left: -440px;
         width: 880px;
         height: 156px;
         background-image: url(../abc.gif);
         background-color: #00FFFF;
         }


und HTML:
Code: Alles auswählen

<div id="frame_oben"></div>

<div id="frame_links"></div>
                                                                       
<div id="container">
                               
         <div id="content">
         
      -- CONTENT --

         </div>
                                 
         <div id="frame_unten"></div>
                                         
</div>

<div id="frame_rechts"></div>



Ich bin für jede Hilfe sehr dankbar.

Gruß,
treelo
Dateianhänge
layout.JPG
layout.JPG (13.52 KiB) 674-mal betrachtet
Treelo
neu hier
 
Beiträge: 3
Registriert: 15.03.2010, 00:34

Re: "Rahmen"-Layout mit <div>s

Beitragvon sejuma » 15.03.2010, 08:11

Ich wundere mich immer wieder über die absoluten Positionierungen, die vollkommen unnötig sind. Positionierungen lassen sich viel einfacher mit float und margin vornehmen.

Habe mal was gebastelt, das deinen Vorstellungen hoffentlich entspricht:
Code: Alles auswählen
body
         {
         padding: 0;
         margin: 0;
         }

#container
         {
         width: 880px;
         margin: 0 auto;
         }
#frame_oben
         {
         height: 278px;
         width: 880px;
         background-color: #FFFFB9;
         background-image: url(../abc.gif);
         }

#frame_links
         {
        float: left;
         width: 200px;
         background-image: url(../abc.gif);
         }

#content
         {
        float: left;
         width: 480px;
         background-color: #FFCBFF;
         }

#frame_rechts
         {
         width: 200px;
         background-image: url(../abc.gif);
         }

#frame_unten
         {
         clear: left;
         width: 880px;
         height: 156px;
         background-image: url(../abc.gif);
         background-color: #00FFFF;
         }


Code: Alles auswählen
<body>
<div id="container">
<div id="frame_oben">oben</div>

<div id="frame_links">links</div>
                                                                       
                             
         <div id="content">
         
      -- CONTENT --

         </div>
         <div id="frame_rechts">rechts</div>                       
         <div id="frame_unten">unten</div>
                                         
</div>
</body>
Bild
sejuma
Vielposter
 
Beiträge: 787
Registriert: 15.07.2009, 17:46

Re: "Rahmen"-Layout mit <div>s

Beitragvon Treelo » 15.03.2010, 12:33

Hallo,

vielen Dank für deine Antwort, das war schon mal sehr hilfreich.
Aus irgendeinem merkwürdigen Grund werden jetzt jedoch die divs #frame_links und #frame_rechts nicht angezeigt. Der Content-div beginnt also schon am ganz linken Rand, anstatt erst rechts nach #frame_links.

Habe alles überprüft, am CSS dürfte es nicht liegen. Beim HTML habe ich alles genauso strukturiert wie gepostet. Sehr komisch.

/edit: ah ok, ich habe zwischen die <div>- tags ein Wort eingefügt und jetzt werden beide divs dargestellt (beim rechten musste ich noch float: right einfügen).

Können die divs auch ohne Inhalt dargestellt werden? (also <div id="frame_links"></div>)

Wie erreiche ich, dass sich links und rechts an den content-div anpassen?
Zuletzt geändert von Treelo am 15.03.2010, 14:03, insgesamt 2-mal geändert.
Treelo
neu hier
 
Beiträge: 3
Registriert: 15.03.2010, 00:34

Re: "Rahmen"-Layout mit <div>s

Beitragvon sejuma » 15.03.2010, 13:19

In diesem Fall kannst du - wenn der Hintergrund auf beiden Seiten gleich ist - auf die Links- und Rechtsbox ganz verzichten. Ebenso auf das float beim #content. Definiere diesen dann so, indem du ihn horizontal zentrierst:

Code: Alles auswählen
#content
         {
         width: 480px;
         margin: o auto;
         background-color: #FFCBFF;
         }


Weise einfach dem #container die entsprechende Hintergrundgrafik zu.
Bei unterschiedlichen Hintergründen müsstest du mit einer zusätzlichen Verschachtelung arbeiten.
Bild
sejuma
Vielposter
 
Beiträge: 787
Registriert: 15.07.2009, 17:46

Re: "Rahmen"-Layout mit <div>s

Beitragvon Treelo » 15.03.2010, 14:05

Vielen Dank sejuma, du hast mir sehr geholfen!

Gruß,
Treelo
Treelo
neu hier
 
Beiträge: 3
Registriert: 15.03.2010, 00:34


Moderatoren: Laus, Moderatoren

Ähnliche Beiträge zu ""Rahmen"-Layout mit <div>s"

Zurück zu: Fragen zur Homepage

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron