CSS-basierte Layouts
#1
Hallo zusammen,

ich habe mir das Buch HTML Handbuch - Studienausgabe von Münz/Nefzger gekauft. Da wird wunderschön erklärt, wie man das Layout statt einer Tabelle auch mit einer css. Datei lösen kann.

Mein Problem ist, wie funktioniert das ganze? Steht in der css nur das Layout? Wenn ich z.B. das Grundlayout in einer css Datei schreibe, wo kommt dann der Inhalt. Es heißt ja, dass diese Methode das Layout mit dem Inhalt trennt, damit der Quellcode nicht unübersichtlicht wird (Verschachtelung usw.).

Kann mir bitte jemand helfen?
Zitieren
#2
Hi,

Zitat:Mein Problem ist, wie funktioniert das ganze?
...das wird nicht dein einzigstes Problem bleiben. Gerade bei rein CSS basierten Layouts lernst Du die Browser erstmal kennen - und zwar in dem Punkt wie die CSS (teilw. verschieden) interpretieren.

Zitat:Steht in der css nur das Layout?
... die Anweisungen wie es aussehen soll.

Zitat:wo kommt dann der Inhalt.
...nach wie vor in der Seite selbst. Nur sollen da möglichst keine Tabellen für das Layout genommen werden sondern Div Container, oder HTML Codes für Listen, Überschriften usw.

Guck Dir mal das einfache Beispiel an:
[HTML]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

<title>CSS-Beispiel</title>

<style type="text/css">
body, html {
background-color: #f7f7f7;
font-family: Verdana, Arial;
font-size: 12px;
color: #000000;
margin: 0;
padding: 0;
}
.header {
border-top: 2px dashed black;
border-bottom: 5px double red;
background-color: #ffcc00;
padding: 5px;
margin: 5px 0px 15px 0px;
}

.menue {
border-right: 1px dashed black;
background-color: #fdf8d9;
padding: 5px;
width: 160px;
float: left;
}

.menue a {
display: block;
background-color: #ffffff;
border-bottom: 1px solid #000000;
margin-bottom: 2px;
padding: 3px;
color: #000000;
}
.menue a:hover {
background-color: #339900;
border-bottom: 1px solid #000000;
margin-bottom: 2px;
padding: 3px;
color: #ffffff;
}

.content {
margin-left: 180px;
}

</style>

</head>
<body>
<div class="header">Der Kopf der Seite, evtl mit Logo oder Banner</div>
<div class="menue">
<a href="#">Beispiellink 1</a>
<a href="#">Beispiellink 1</a>
<a href="#">Beispiellink 1</a>
</div>

<div class="content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam faucibus elementum eros. In molestie sollicitudin diam. Sed ultrices rhoncus neque. Vestibulum sodales, tellus eu porta pulvinar, felis dui rutrum enim, vel dapibus sapien pede nec elit. Nullam ante urna, rhoncus vel, fringilla sit amet, tincidunt a, velit. Vivamus sit amet enim et tortor semper ultrices. Integer sit amet nisi. Etiam nisl. Mauris fermentum consequat mauris. Nulla purus tellus, posuere a, imperdiet eu, convallis et, augue. Sed semper, augue quis viverra sodales, lacus mauris interdum felis, id dictum neque nisi in neque.

<p>Ut porta, metus ut vulputate condimentum, lacus nunc viverra sem, ac pellentesque neque velit ac ligula. Curabitur augue nisl, hendrerit sit amet, laoreet non, volutpat id, metus. Fusce pulvinar augue nec turpis. Duis vel magna. Suspendisse potenti. Fusce auctor augue sit amet turpis. Aenean pharetra aliquet mi. Nam nisl. Proin tincidunt lectus. Vivamus vitae metus. Duis fringilla sodales nisl. Vivamus commodo ligula quis sapien.
</p>
<p>Donec vitae elit ut lorem rhoncus semper. Integer lectus elit, porttitor at, varius vel, ullamcorper eu, ligula. Proin at lorem. Aenean gravida convallis mauris. Sed ultricies. Fusce interdum turpis sit amet magna. In hac habitasse platea dictumst. Curabitur sit amet metus at magna pretium commodo. Morbi feugiat, nisl eu porta imperdiet, sem velit molestie diam, vitae pharetra velit sapien a augue. Fusce gravida. Aliquam erat volutpat. Phasellus ullamcorper orci ut massa. Quisque auctor elementum nisl. Sed libero metus, pulvinar non, aliquet vitae, ultricies sed, eros. Maecenas ante erat, gravida sed, volutpat at, varius in, turpis.
</p>

</div>


</body>
</html>[/HTML]

...dann nimmste mal das raus:

[HTML]<style type="text/css">
body, html {
background-color: #f7f7f7;
font-family: Verdana, Arial;
font-size: 12px;
color: #000000;
margin: 0;
padding: 0;
}
.header {
border-top: 2px dashed black;
border-bottom: 5px double red;
background-color: #ffcc00;
padding: 5px;
margin: 5px 0px 15px 0px;
}

.menue {
border-right: 1px dashed black;
background-color: #fdf8d9;
padding: 5px;
width: 160px;
float: left;
}

.menue a {
display: block;
background-color: #ffffff;
border-bottom: 1px solid #000000;
margin-bottom: 2px;
padding: 3px;
color: #000000;
}
.menue a:hover {
background-color: #339900;
border-bottom: 1px solid #000000;
margin-bottom: 2px;
padding: 3px;
color: #ffffff;
}

.content {
margin-left: 180px;
}

</style>[/HTML]

und schaust Dir die Seite an... :shock:

Cu Helmut
Zitieren
#3
Helmut schrieb:Hi,

...dann nimmste mal das raus:

[HTML]<style type="text/css">
body, html {
background-color: #f7f7f7;
font-family: Verdana, Arial;
font-size: 12px;
color: #000000;
margin: 0;
padding: 0;
}
.header {
border-top: 2px dashed black;
border-bottom: 5px double red;
background-color: #ffcc00;
padding: 5px;
margin: 5px 0px 15px 0px;
}

.menue {
border-right: 1px dashed black;
background-color: #fdf8d9;
padding: 5px;
width: 160px;
float: left;
}

.menue a {
display: block;
background-color: #ffffff;
border-bottom: 1px solid #000000;
margin-bottom: 2px;
padding: 3px;
color: #000000;
}
.menue a:hover {
background-color: #339900;
border-bottom: 1px solid #000000;
margin-bottom: 2px;
padding: 3px;
color: #ffffff;
}

.content {
margin-left: 180px;
}

</style>[/HTML]

und schaust Dir die Seite an... :shock:

Cu Helmut

Hallo Helmut,

und genau das verstehe ich nicht :|

Wenn ich diesen Teil lösche, dann wird mir nur der Text inkl. Links ohne Formatierung angezeigt. Soweit alles klar, aber jetzt kommst. Mal angenommen, die erste Seite von dir inkl. Formatierung ist meine index.php, wenn ich jetzt eine neue Seite z.B. News erstellen möchte, muss ich diese Formatierung noch mal eingeben?

Was genau bewirkt der Tag "div class="xxx" ?

Habe bitte geduld mit mir, bin noch ein Anfänger Rolleyes
Zitieren
#4
Hi,

Du musst nicht auf jeder Seite die ganzen CSS Deklarationen einfügen. die CSS Datei kannst Du auch seperat speichern als z.B. style.css und dann im Head der Datei mit [HTML]<link rel="stylesheet" type="text/css" href="style.css">[/HTML]
einbinden. Wenn Du dann auf deinen zigfuffzich Seiten bei einer Überschrift die Farbe ändern willst, editierst Du nur die CSS Datei, die Änderungen werden dann in alle Seiten übernommen.

Zitat:Was genau bewirkt der Tag "div class="xxx" ?
Ein <div></div> ist eine Art Container für Inhalte. Und hier gibt es auch schon Knackpunkte, bei einem einfachen Layout brauchst Du für die Gestaltung meist wenige, ist dein Layout sehr komplex kannst Du schnell eine der berüchtigten DIV-Suppen kochen. Das sind dann x ineinander geschachtelte Div Container. So sollte CSS Layout dann auch nicht aussehen.

Und nochwas, auch Tabellen sind beim Einsatz von CSS weiterhin erlaubt. Diese lassen sich ja auch mit CSS formatieren.

Mehr zum Thema solltest Du dir mit Hilfe von SELFHTML aneignen

Cu Helmut
Zitieren
#5
Helmut schrieb:Hi,
...
Mehr zum Thema solltest Du dir mit Hilfe von SELFHTML aneignen
...

Cu Helmut

Hi Helmut,

werde ich machen. Möchte immerhin genau so gut werden wie DuMrGreen

Hast Du Informatik studiert oder hast Du dir alles selbst angeeignet?
Zitieren
#6
...
Zitat:Hast Du Informatik studiert oder hast Du dir alles selbst angeeignet?
letzteres...

Cu Helmut
Zitieren
#7
Helmut schrieb:...

letzteres...

Cu Helmut

...nicht schlecht, Hut ab;-)
Wie lange machst Du das jetzt?
Zitieren
#8
Gabriel08 schrieb:Wie lange machst Du das jetzt?

@Helmut: Und?

Ciao Alex
Zitieren
#9
...
Zitat:@Helmut: Und?
...no, seit dem ich damit angefangen habe :tease:

War so ab '95 des alten Jahrtausends...

Cu Helmut
Zitieren