zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Richtig clearen/floaten

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 10.06.2006, 14:20
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.06.2006
Beiträge: 78
oSonnYo befindet sich auf einem aufstrebenden Ast
Standard Richtig clearen/floaten

Hallo!
Ich habe ein kleines Problem.

Ich weiß was ich falsch gemacht habe , und wo der Fehler liegt, nur nicht, wie ich ihn richtig behebe.

Der Fehler ist beim clearen/floaten.

Ich habe den passenden Auszug aus HTML Seite:

Code:
<div id="right">
   <div class="text">
            <font class="ueberschrift">
                Willkommen 
            </font >
            <img src="pic/bild.jpg" width="188" height="284" align="left" border="0"> 
            <font>
               Willkommmen auf der Homepage, usw. Eine Tabelle:
            </font>
            <table>
              <TR>
                <TD>
                  Is ja auch egal, was hier steht
                </TD>
              </tr>
            </table>
     </div>
     <div class="text">
           und noch ein wenig text
      </div>
</div>
die passenden teile der CSS Datei:

Code:
div#right {
    margin-top:10px;
    width:80%;
    float:right;
    vertical-align:top;
  }

div.text {
    padding:10px;
    margin-bottom:2px;
    width:98%;
    vertical-align:top;
    background-color:#ededed;
  }
Was dabei rauskommt ist folgendes:

Ein Container der rechts positioniert ist, in dem zwei andere sind.
Doch der obere ist nur so groß wie der Text darin, der sich rechts neben dem Bild befindet. Das Bild lappt über den nächsten Container , anstatt das der erste vergrößert wird.

Wie cleare/floate ich jetzt richtig, damit das Bild den Container nur vergrößert, und nicht überlappt?

Und noch eine kleine Frage am Rande:
Wieso sehe ich immer ein Scrollbalken auf der Website wenn ich in dem Container "text" die Breite auf 100% einstelle?

Ich bin ein Neuling in CSS (kann man villeicht auch am Quellcode sehen), und mache eigentlich mehr php, usw und weniger Design )

Danke schonmal,
Sonny

Geändert von oSonnYo (10.06.2006 um 14:23 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 10.06.2006, 19:22
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von oSonnYo
Der Fehler ist beim clearen/floaten.
Jein, nicht ganz. Aber eins nach dem anderen.

Zitat:
Code:
            <font class="ueberschrift">
                Willkommen 
            </font >
Zunächst solltest Dir gleich von Anfang an angewöhnen sauberes HTML zu schreiben. <font> alleine (wie unten) ist überhaupt nicht sinnvoll, und nur für eine Klasse auch nicht besser. Wenn Du ein "beliebiges" Element verwenden willst gibt es <span> für Inline-Elemente, bzw <div> für Block-Elemente und eine Überschrift ist in der Regel ein Block-Element. Aber auch diese "bedeutungslosen" Elemente sind hier nicht richtig, denn für Überschriften gibt es extra <h1>, <h2>, etc. Da das deine "Hauptüberschrift" ist, wäre hier also <h1> richtig.

Versuche grundsätzlich "bedeutungsvolle" Elemente zu verwenden, die zu deiner Absicht passen: <hx> für Überschriften, <p> für Text-Absätze, <ul> für Listen, etc.

Zitat:
Code:
            <img src="pic/bild.jpg" width="188" height="284" align="left" border="0">
Hier ist die Quelle deines Problems, und es hat nichts mit CSS zu tun, sondern mit "einfachem", transitional HTML zu tun: align="left" hat - bei Bildern (!) - in HTML die selbe Bedeutung von float: left in CSS.

Erste Abhilfe: Nicht transsitional sondern strictes HTML verwenden, und regelmässig validieren, um nicht doch ausversehen transitional zu verwenden. Also das align (und das border) mit CSS ersetzen.

Zitat:
Code:
            <font>
               Willkommmen auf der Homepage, usw. Eine Tabelle:
            </font>
Siehe oben, Hier gehört <p> hin.

Zitat:
Code:
           <table>...</table>
        <!-- hier -->
     </div>
An der merkierten Stelle gehört das clearende Element hin. Wenn kein CSS eingesetzt werden würde wäre das <br clear="all">, aber mit CSS ein (leeres) <div> mit clear: left.

Oder du verwendest die "clearfix"-Methode wie im FAQ beschrieben auf die <div class="text"> an, dann wird kein zusätzliches Element benötigt.

Noch weitere Anmerkungen:

Zitat:
Code:
div#right {
    float: right;
    vertical-align:top;
  }
Diese Float hat mit deinem Problem also nichts zu tun.

vertical-align bringt hier nichts. Das ist nur bei Tabellenzellen oder Bildern eine Bedeutung.

Zitat:
Wieso sehe ich immer ein Scrollbalken auf der Website wenn ich in dem Container "text" die Breite auf 100% einstelle?
Lies Dir mal was zum Thema "CSS-Box-Model" durch. Bei CSS steht "width" für die Breite des Inhaltsbereiches. Die eigentliche Breite ergibt sich aus width+padding+border+margin, was in deinem Fall mehr als 100% ist (da width ja bereits 100% ist).

Eine Anmerkung zu "width: 100%": Da Block-Elemente (in der Regel) automatisch die gesammt zu Verfügung stehene Breite ausfüllen, ist "width: 100%" meiner Erfahrung nach selten oder überhaupt nicht nötig.

Zitat:
Ich bin ein Neuling in CSS (kann man villeicht auch am Quellcode sehen), und mache eigentlich mehr php, usw und weniger Design )
IMHO hat HTML/CSS-Schreiben wenig bis gar nichts mit "designen" zu tun. Es ist viel näher an Programmieren.

Robin

Geändert von RoToRa (10.06.2006 um 19:25 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 10.06.2006, 20:25
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.06.2006
Beiträge: 78
oSonnYo befindet sich auf einem aufstrebenden Ast
Standard

Wow! Vielen Dank für diese sehr gute Hilfe Ich werde es gleich mal ausprobieren, bin mir sicher, dass es klappen wird


PS:
Im Prinzip weiß ich das, nur das was bei rum kommt ist halt ein Design und kein "Programm" Das meinte ich damit
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Umlaute in MySQL Datenbank falsch, aber richtig auf Seite HaraldMenza Serveradministration und serverseitige Scripte 7 08.08.2013 15:34
Formular wird im IE 8 nicht richtig angezeigt Basti82 (X)HTML 14 12.05.2011 15:55
Grafik richtig positionieren?! Pumpkin CSS 7 13.06.2007 22:43
IE zeigt falsch, FF richtig - change - FF zeigts falsch, IE richtig nick CSS 6 19.08.2006 02:02
Nicht richtig dargestellt im Firefox thom75 CSS 8 11.07.2006 10:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:29 Uhr.