Stefan: prozentuale Breitenangabe

Hallo Leute,

hier das Problem:

<div style="width:80%;background-color:#ccc">
  <div style="width:100%">
   <div style="width:43%;background-color:red;height:100px;float:left;margin-left:3px;"></div>
   <div style="width:2px;background-color:blue;height:100px;float:left;"></div>
   <div style="width:13%;background-color:green;height:100px;float:left"></div>
  </div>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;clear:both"><tbody><tr>
   <td style="width:3px"></td>
   <td style="width:43%;background-color:black"></td>
   <td style="width:2px;background-color:yellow"></td>
   <td style="width:13%;background-color:blue"></td>
   <td>leer</td>
  </tr></tbody></table>
 </div>

Am besten kurz mal ausprobieren und ausführen.
Wenn man nun das Browserfenster verkleinert bzw. vergrößert, stellt man fest, dass die prozentuale Breitenangabe (um 1px) variiert, d.h. die obere nicht gleich der unteren ist. Wie kann ich das Problem lösen?

Gruß, Stefan

  1. hi Stefan,

    <div style="width:80%;background-color:#ccc">
      <div style="width:100%">
       <div style="width:43%;background-color:red;height:100px;float:left;margin-left:3px;"></div>
       <div style="width:2px;background-color:blue;height:100px;float:left;"></div>
       <div style="width:13%;background-color:green;height:100px;float:left"></div>
      </div>
      <table border="0" cellpadding="0" cellspacing="0" style="width:100%;clear:both"><tbody><tr>
       <td style="width:3px"></td>
       <td style="width:43%;background-color:black"></td>
       <td style="width:2px;background-color:yellow"></td>
       <td style="width:13%;background-color:blue"></td>
       <td>leer</td>
      </tr></tbody></table>
    </div>

    Am besten kurz mal ausprobieren und ausführen.

    Nö, keine zeit. :)

    Wenn man nun das Browserfenster verkleinert bzw. vergrößert, stellt man fest, dass die prozentuale Breitenangabe (um 1px) variiert, d.h. die obere nicht gleich der unteren ist. Wie kann ich das Problem lösen?

    Das innere div nimmt im default die volle breite ein, also die realen 100%, width: 100%; verhält sich da nicht so ideal.

    Also, im default mal probieren, also breiten angabe.

    Grüße aus H im R an Stefan,
    Primus Enginus

    1. Ich habe festgestellt, dass es an dem DIV und an der Tabelle liegt. Ist beides ein DIV oder beides eine Tabelle, so ergeben sich diese kleinen Differenzen nicht.

      1. Ich habe festgestellt, dass es an dem DIV und an der Tabelle liegt. Ist beides ein DIV oder beides eine Tabelle, so ergeben sich diese kleinen Differenzen nicht.

        padding, margin, border

        1. Ich habe festgestellt, dass es an dem DIV und an der Tabelle liegt. Ist beides ein DIV oder beides eine Tabelle, so ergeben sich diese kleinen Differenzen nicht.

          padding, margin, border

          Auch mit padding:0;margin:0;border:0 in allen Elementen tritt der Effekt auf.

          1. Auch mit padding:0;margin:0;border:0 in allen Elementen tritt der Effekt auf.

            Versuch mal das Reset CSS von Yahoo vor deinem CSS einzubinden. Ab und zu übersieht man was und das sollte eigentlich alle voreinstellungen im CSS zurücksetzen.

            http://yui.yahooapis.com/2.3.1/build/reset/reset-min.css

            1. Auch mit padding:0;margin:0;border:0 in allen Elementen tritt der Effekt auf.

              Versuch mal das Reset CSS von Yahoo vor deinem CSS einzubinden. Ab und zu übersieht man was und das sollte eigentlich alle voreinstellungen im CSS zurücksetzen.

              http://yui.yahooapis.com/2.3.1/build/reset/reset-min.css

              Danke für den Tipp, aber das hilft leider auch nicht.

              Ist doch ein seltsames Phänomen...
              wegen Beispielseite: einfach den Codeschnipsel aus meinem ersten Post in ein leeres HTML-File und ausführen. Dann das Browserfenster horizontal größer/kleiner ziehen, dann sieht man den Effekt, wenn man genau hinsieht.

              1. wegen Beispielseite: einfach den Codeschnipsel aus meinem ersten Post in ein leeres HTML-File und ausführen. Dann das Browserfenster horizontal größer/kleiner ziehen, dann sieht man den Effekt, wenn man genau hinsieht.

                sicher nicht, da es keinerlei aussage zu deinem code restlichen code macht - ggf liegt die falschdarstellnug nur an invalidem html

                1. wegen Beispielseite: einfach den Codeschnipsel aus meinem ersten Post in ein leeres HTML-File und ausführen. Dann das Browserfenster horizontal größer/kleiner ziehen, dann sieht man den Effekt, wenn man genau hinsieht.

                  sicher nicht, da es keinerlei aussage zu deinem code restlichen code macht - ggf liegt die falschdarstellnug nur an invalidem html

                  Das verstehe ich jetzt nicht ganz... der Effekt tritt bereits bei diesem Codebeispiel in einem leeren HTML-File auf, d.h. es wird nicht besser, wenn ich meinen tatsächlichen Code poste, da der kompliziert ist und ich gerade deshalb den Beispielcode gemacht habe, um zu sehen, ob das Problem allgemein ist => und das Problem ist allgemein.

                  1. Das verstehe ich jetzt nicht ganz... der Effekt tritt bereits bei diesem Codebeispiel in einem leeren HTML-File auf, d.h. es wird nicht besser, wenn ich meinen tatsächlichen Code poste, da der kompliziert ist und ich gerade deshalb den Beispielcode gemacht habe, um zu sehen, ob das Problem allgemein ist => und das Problem ist allgemein.

                    wenn du deinen geposteten code in ein leeres file packst, fehlt in erster linie der doctype - ohne diesen ist es nicht möglich, aussagen zu treffen ob was richtig oder falsch ist

                    xhtml 1.0 transitional
                    <img src="example.com/pseudo.png" alt="bild" />

                    html 4.01 transitional
                    <img src="example.com/pseudo.png" alt="bild">

                    umgekehrt ist es jeweils falsch und zwingt den browser in den quirks mode - die dort eingesetzt fehlerkorrektur ist meisten fern vom standard und kann alles mögliche machen

                    ohne validem code kannst du nie von korrekter darstellung ausgehen

          2. Auch mit padding:0;margin:0;border:0 in allen Elementen tritt der Effekt auf.

            zeig mal eine beispielseite her

  2. Hi,

    Wenn man nun das Browserfenster verkleinert bzw. vergrößert, stellt man fest, dass die prozentuale Breitenangabe (um 1px) variiert, d.h. die obere nicht gleich der unteren ist.

    Rundung ist einer der am haeufigsten zu machenden Kompromisse der Mathematik, wenn sie auf Ganzzahlen sich zu beschraenken gezwungen ist.

    MfG ChrisB