• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Divs verändern die Position

Patrick Egli

Neues Mitglied
Hi

Ich wollte ein Div links vom Container einbauen. Allerdings verschieben sich danach einige Divs im Container. Warum? Das linke Div habe ich folgendermassen mit CSS programmiert:

Code:
float:left; 
margin-top:238px; 
margin-left:54.5px; 
width:150px; 
height:700px; 
background-image:url(Bilder/Port3.png); 
background-repeat:no-repeeat; 
background-position:center;

Die Divs die sich im Container verschieben habe ich folgendermassen in CSS programmiert:

Code:
float:left;
clear: left;
margin: 0px 1.25em 0px 0px;

Diese Divs brauche ich für die Texteinrückung.

Das Ganze funktionierte, als ich dem Container folgendes hinzugefügt habe:

Code:
position:absolute;

Allerdings war der Container darauf nicht mehr zentriert.

Weiss jemand was das Problem ist? War das richtig mit der absoluten Position vom Container, oder gibt es da noch eine andere Möglichkeit?

LG Patrick
 
Auf absolute Positionierung solltest Du verzichten. Dadurch nimmst Du die Elemente aus dem Fluss, wodurch auch kein float mehr wirkt.

Das Problem deiner Verschiebungen kann ich auf Grund des Quellcodes hier jedoch nicht ergründen. Es könnte am clear liegen, oder auch am Aufbau deines HTML-Codes. Zeig mehr von deinem Quellcode oder besser einen Link zur Seite.
 
Danke für die Antwort.

Hier ist die Seite: OrangeLifeBalanceCoaching

Ich habe den Container jetzt nicht mehr absolute genommen. Beim Bild im Container habe ich Divs gemacht, welche den Text einrücken sollten. Allerdings verschieben sich diese nach unten. Deshalb ist der Text nun über dem Bild.

Diese Divs verschieben sich:

Code:
<div class="flow" style="width:240px; height:100px;"></div>

Ich weiss nicht genau, ob der linke Teil des Bildes an der richtigen Position angegeben ist. Ich habe es mit margin gemacht. Ich hatte keine bessere Idee, wie ich den linken Teil des Bildes anfügen kann. Gibt es da eine bessere Möglichkeit?
 
Hallo,

Ich denke du hast im Aufbau der Seite einige Denkfehler gemacht.

Du hast bei deiner Seite, wie man auch an den weiteren Seiten erkennen kann ein einspaltiges zentriertes Layout.
Um das optimal umzusetzen nimmst das body-tag und gibst dem die passende Breite von 1000 Pixel und zentrierst dieses. Damit hast du dann dein Layout fertig.

Du hast einen Kopfbereich, das ein Menü enthält und auf allen Seiten gleich bleibt. Dieses Menü kannst du oben positionieren mit fester Höhe von 237 Pixel(Höhe Hintergrundbild plus Höhe Menü.
Dem Header gibts du das Hiintergrundbild und positionierst es oben. Das Menü positionierst du unten vom Header mit einem Abstand von 192 Pixel nach oben, dass ist die Grösse des Hintergrundbildes. Das Menü benötigt kein Div, da du beim Element UL beginnst. Damit lässt es sich dann im CSS leichter referenzieren und spart einige Divs. Alle Divs im Menü rausnehmen, die gehören da nicht hin und sind überflüssig.

Der anschliessende Content-Bereich reicht bei vielen Seiten nicht bis zum Ende der Seite. Dem Contentbereich gibts du die Hintergrundfarbe und das Hintergundbild mit Position oben. Du kannst dem Content eine Mindesthöhe geben, notwendig ist das nicht. Der Content soll sich ja dynamisch in der Höhe anpassen.

Die weiteren Seiten ausser der Startseite bedürfen keiner weiteren Besprechung, das sie sehr einfach sind.
Kommen wir also zur Startseite.
Das Bild der Frau nimmst du als Ganzes, nicht teilen und machst den Hintergrund transparent. Du speicherst das Bild als PNG.

Du positionierst das Bild an entsprechender Stelle und schiebst es mit negativem Margin nach links über dein body hinaus.
Die Texteinrückungen machst du dann wie bei Stu beschrieben Stu Nicholls | CSSplay | Tracking your images

Dein CSS-Code ist etwas undurchsichtig, das solltest du klarer Gliedern. Und beim HTML-Code darfst du ruhig alle Elemente verwenden die vorhanden sind. Das macht den Code besser lesbar und auch besser formatierbar.
Es ist einfacher im CSS zu schreiben #content blockquote und dann zu formatieren und ist übersichtlicher, als die vielen IDs und Class-Anweisungen.

Dein HTML-Grundgerüst mit Menü am Beispiel der Seite Einzelcoaching (texte sind gekürzt)
:
HTML:
<!DOCTYPE html>
<html>    
    <head>        
        <meta charset="utf-8"> 
        <title>Aussagekraeftiger Seitentitel</title>        
        <link href="Style.css" rel="stylesheet" type="text/css">       
    </head>    
    <body>
        <div id="header">
              <ul id="menu">
                  <li><a href="Startseite.html">Startseite</a></li>
                  <li class="activatedPage"><a href="Einzelcoaching.html">Einzelcoaching</a></li>
                  <li><a href="Workshop.html">Workshop</a>
                        <ul>
                          <li><a href="IchBinEinmalig.html">Ich bin einmalig</a></li>
                          <li><a href="WirkungsvolleKommunikation.html">Wirkungsvolle Kommunikation</a></li>
                          <li><a href="ZieleUndVisionen.html">Ziele und Visionen</a></li>
                          <li><a href="HappyDay.html">Happy Day</a></li>
                          <br>
                          <li><a href="AnmeldungWorkshop.html"><b>Anmeldung</b></a></li>
                        </ul>
                  </li>
                  <li><a href="UeberMich.html">Über mich</a></li>
                  <li><a href="Kontakt.php">Kontakt</a></li>
                  <li><a href="Newsletter.html">Newsletter</a></li>
                  <li><a href="DasSagenKlienten.html">Das sagen Klienten</a></li>
            </ul>
        </div>
        <div id="content">
            <blockquote>Wir Menschen können im Leben viel bewegen;<br> 
                ein Coach zur Seite zu wissen gibt<br> 
                Kraft, Mut und Stärke für eine tiefe innere Zufriedenheit<br>
                <cite>Judith Egli<cite></blockquote>
                <h2>Einzel-Coaching</h2>
                <h3>Was ist Coaching?</h3>
                <p>Coaching ist ...lösungsorientiert.   </p>
                <h3>Das erwartet Sie bei mir:</h3>
                <p>1. Kostenloses Vorgespräch ... mir sehr wichtig.</p>
        </div>
    </body>
</html>

Schön klar gegliedert und ohne überflüssige BRs und divs.
 
Danke für diese sehr ausführliche Antwort.

Ich habe den Code teilweise abgeändert. Ich wollte mich nun wieder an die Texteinrückung wenden. Dazu schaute ich auf den im letzen Post gesendeten Link. Ich habe diese Texteinrückung auf meiner Seite ebenfalls gemacht. Allerdings wird das Bild an der falschen Position angezeigt. Weshalb?

Hier ist die Seite: OrangeLifeBalanceCoaching
 
Ich dachte eigentlich, dass du die Frau ausschneidest(ich glaube das nennt man in Fachkreisen freistellen) und dann den Hintergrund des Frauenbildes auf transparent setzt.
Aber so geht es auch. Du musst jetzt das Bild nach links schieben bis es passt und genauer arbeiten da alles in Deckung sein muss.
Die Einrückungen kannst du natürlich nicht so übernehmen, die sind ja auf das Bild aus dem Beispiel abgestimmt, du musst die dann per Hand anpassen.
Ist eine Menge Arbeit, aber geht nicht anders wenn du es so haben willst.

Noch ein paar Dinge die ich machen würde:
1. den Kopfbereich im HTML-Code wie folgt aböndern:
HTML:
<!DOCTYPE html> <html>         <head>                 <meta charset="utf-8">
Du kannst dann die Schrägstriche vor den spitzen Klammern weglassen und wenn du den Code im UTF-8 Format abspeicherst kann du auch die Umlaute deiner Tastatur verwenden.

Die CSS-Datei ist auch wenig unübersichtlich. Es gilt die Vererbungsregel, das heisst jedes Elterenelement gibt alle Eigenschaften, wenn nicht anders definiert auf die nachfolgenden Elemente weiter.
Das kannst du dir bei der Schrift zunutze machen.
Definiere nur einmal die Schrift im Body-Tag im CSS und die ganze Seite verwendet fortan diese Schrift.
Zudem würde ich am Anfang alle padding und margin auf 0 Wert setzen, damit du eine einheitliches Bild in allen Browsern hast. Sonst hast du manchmal Abstände drin, die irritieren können.

Also folgendes an den Anfang des CSS schreiben:

HTML:
* {margin:0; padding:0;}
body {font:Georgia, "Times New Roman", Times, serif;}
Du kannst dann schon mal alle weiteren Schriften rausnehmen.

Das Menü würde ich auch unbedingt ändern. Nicht das Aussehen an sich, das würde ich so lassen. Es ist unübersichtlich geschrieben als Code und im CSS sind einige Angaben doppelt.
 
Zurück
Oben