tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von spicelab
  • 1 Beitrag von spicelab
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
338
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Elandril Elandril ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    11
    Hallo,

    vor kurzem ist eine Freundin von mir auf mich zugekommen, sie würde eine Homepage brauchen. Und da ich ja Informatik studiere kann ich ja sicher so etwas. Naja, wie eben das Weltbild des normalen Volkes so ist.

    Jedenfalls habe ich jetzt tatsächlich eine α-Version hinbekommen. Das Ganze wird auch im Opera exakt so dargestellt, wie ich mir das gedacht habe.

    Oben eben eine Zeile mit Überschrift und Trennlinie. Darunter dann links ein Menü, rechts eine vertikale Liste mit Bildern und in der Mitte eben den Inhalt der Seite. Darunter dann noch eine einfache Zeile mit Credits usw.

    Die ganze Seite ist 1100 x 800 Pixel groß und ich hab sie vorher in einem Grafikprogramm entworfen und aus dem dann eben die Schnippsel weiter verwendet (Macht man heute u.U. nicht mehr, aber für meine und insbesondere für die Zwecke der Freundin reicht das wohl erst mal).

    Das hier wäre mal der HTML-Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
    <body>
     
        <!-- Hintergrundbild -->
        <img id = "bg_img" src = "pic_frags/background.png">
     
        <div id = "ersatzBody">
        
            <div id = "headDiv">
            </div>
            
            <!-- Menü Elemente hier einfügen -->
            <div id = "menuDiv">
            
                <div id = "menu">
                    <p><a id = "link" href = "alpha.htm">Über Mich</a></p>
                    <p><a id = "link" href = "alpha.htm">Englisch</a></p>
                    <p><a id = "link" href = "alpha.htm">Taekwondo</a></p>
                    <p><a id = "link" href = "alpha.htm">Downloads</a></p>
                </div>
            
            </div>
            
            <!-- Bilder zwischen upper_sep und lower_sep einfügen -- Empfehlung: maximal 5 Bilder -->
            <div id = "picturesDiv">
            
                <img id = "upper_sep" width = "174" height = "18" src = "pic_frags/upper_pic_sep.png"></img>
                
                <div id = "picBG">
                    <a href = "alpha.htm"><img id = "pic" src = "pic_frags/testbild.png"></img></a>
                </div>
                
                <div id = "picBG">
                    <a href = "alpha.htm"><img id = "pic" src = "pic_frags/testbild.png"></img></a>
                </div>
                
                <div id = "picBG">
                    <a href = "alpha.htm"><img id = "pic" width = "132" height = "101" src = "pic_frags/testbild.png"></img></a>
                </div>
                
                <img id = "lower_sep" width = "174" height = "10" src = "pic_frags/lower_pic_sep.png"></img>
     
            </div>
            
            <!-- Inhalt hier einfügen -->
            <div id = "contentDiv">
            
            </div>
            
            <div id = "creditsDiv">
            </div>
        
        </div>
     
    </body>


    Und der Zugehörige CSS-Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    
    /* Hintergrundbild */
    #bg_img
    {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 0;
        z-index: 1;
    }
     
    #ersatzBody
    {
        position: relative;
        left: 50%;
        margin-left: -550px;
        z-index: 2;
        width: 1100px;
        height: 800px;
    }
     
     
    /* Überschrift */
    #headDiv
    {
        background: url(pic_frags/titel.png);
        width: 1100;
        height: 112;
    }
     
     
    /* Menü */
    #menuDiv
    {
        background: url(pic_frags/menu_border.png);
        width: 180;
        height: 323;
        float: left;
    }
     
    #menu
    {
        text-align: center;
        
        position: relative;
        left: 4px;
        top: 55px;
    }
     
    #menu p
    {
        line-height: 2;
    }
     
    #link
    {
        color: black;
        font-family: tahoma, sans-serif;
        font-weight: bold;
        text-decoration: none;
        padding-top: 2px;
        padding-bottom: 2px;
    }
     
    #link:visited
    {
        color: black;
    }
     
    #link:hover
    {
        border-top-style: solid;
        border-top-width: 1px;
        border-bottom-width: 1px;
        border-bottom-style:solid;
        border-color: black;
    }
     
     
    /* Inhalt */
    #contentDiv
    {
        background: url(pic_frags/content_border.png);
        width: 746;
        height: 663;
    }
     
     
    /* Bilder links */
    #picturesDiv
    {
        width: 174;
        height: 18;
        float: right;
    }
     
    #picBG
    {
        width: 174;
        height: 107;
        
        background: url(pic_frags/picBG.png);
    }
     
    #pic
    {
        position: relative;
        top: 3px;
        left: 14px;
    }
     
    /* Credits */
    #creditsDiv
    {
        background: url(pic_frags/credits.png);
        width: 1100;
        height: 25;
        clear: both;
    }

    Wie schon erwähnt, im Opera sieht es exakt so aus, wie in meiner Vorlage.

    Stichprobenartig habe ich aber gerade eben ein paar andere Browser getestet (Internet Explorer 9, Firefox 6, Safari WasauchimmermitLionausgeliefertwird)

    Dabei sind mir dann einige Fehler aufgefallen, bei denen ich nicht mehr wirklich eine Idee habe, wodurch sie verursacht werden und weswegen ich jetzt nun hier anfragen wollte.

    Zunächst mal der IE:

    Hier finden sich auf den ersten Blick 3 Darstellungsfehler
    • Die Bilder auf der Linken Seite wurden von mir im Opera so positioniert, dass sie mehr oder weniger im Farbverlauf des Hintergrundbildes positioniert wurden, jedenfalls sind die auf eine etwas unschöne Art und Weise verschoben, allerdings im großen und ganzen nichts, womit sich nicht zur Not leben lassen könnte. Vermute aber auch, dass es mit Problem 2 zusammen hängt.

    • Das Menü links wurde mit float: left; und die Bilder mit float: right entsprechend positioniert. Dazwischen soll dann ein weiteres <div> den Inhalt der Seite beinhalten. Im Internet Explorer sitzt dieses Content-Div allerdings unter den beiden float-Elementen aber noch vor den "Credits".

    • In den ersten Zeilen der CSS habe ich ja ein "Hintergrundbild" so eingebunden, dass es das Browserfenster flächendeckend füllt, was auch im Opera und Firefox / Safari wunderbar funktioniert. Nur im IE bleibt auf der rechten Seite ein hässlicher weißer Streifen, mit dem sich dann nicht mehr sooo gut leben lässt.

    Safari und Firefox teilen sich im Prinzip die Probleme und da ist es auch schnell erledigt:
    • Wie Punkt zwei beim Internet Explorer oben haben die beiden Browser auch Probleme mit der Positionierung des mittleren Inhaltskontainers nur mit dem Unterschied, dass er bei den beiden Browsern hinter dem Menü auf der linken Seite verschwindet und nicht in der Mitte angeordnet wird.

    Vielleicht hätte ja jemand eine Idee, wie ich das beheben kann.

    Vielen Dank jedenfalls schon jetzt und im Anhang noch einige Grafiken, evtl. zur besseren Darstellung des Problems
    Angehängte Dateien Angehängte Dateien
     

  2. #2
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Beim ersten Überflug deines Stylesheets fällt direkt auf, dass im überwiegenden Teil der width- und height-Regeln die Maßeinheit px fehlt!

    Wenn Opera diesen Fehler ignoriert, liegt hier die Vermutung nahe, dass das HTML-Doc den Browsern mit einem falschen oder ohne <!DOCTYPE> im "Quirks Mode" übergeben wird, was z.B. für IE (Version unerheblich) fatale Folgen hat, denn er verhält sich nun wie IE5 / IE6.

    Korrekt wäre hier aber der "Standards Mode", womit sich (in Verbindung mit den ergänzten Maßeinheiten) die Darstellungsfehler in den genannten Browsern von selbst lösen dürften.

    Siehe hierzu auch Der »DOCTYPE-Switch« und seine Auswirkungen.

    Achja, im HTML-Code würde ich zudem alle gesetzten Leerzeichen vor und nach dem Attribut-Gleichheitszeichen entfernen.
    Geändert von spicelab (27.08.11 um 05:42 Uhr) Grund: Ergänzung
    Elandril bedankt sich. 

  3. #3
    Elandril Elandril ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    11
    Danke, Spicelab

    Ich habe jetzt einmal die px entsprechend eingefügt, was allerdings keine Auswirkung hatte (vermute an der Stelle jetzt einfach mal, dass px Standard ist)

    Habe dann

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> (*)
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd">

    an den Anfang der htm kopiert und jetzt erhalte ich zumindest einmal einen einheitlichen Anzeigefehler (Siehe png).

    Ich denke mal, man könnte diese <div> einfach entsprechend nach rechts schieben, aber was wäre denn "best practice", um das zu bewerkstelligen?

    Jedenfalls Danke soweit!
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Probleme mit den Positionen von <div>-Spalten in Browsern-fehler.png  
     

  4. #4
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Zitat Zitat von Elandril Beitrag anzeigen
    Ich habe jetzt einmal die px entsprechend eingefügt, was allerdings keine Auswirkung hatte (vermute an der Stelle jetzt einfach mal, dass px Standard ist)
    Nein, dies gilt lediglich für HTML-Attributswerte, wie z.B. width="200" (= 200px).

    Zitat Zitat von Elandril Beitrag anzeigen
    Habe dann

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> (*)
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd">

    an den Anfang der htm kopiert und jetzt erhalte ich zumindest einmal einen einheitlichen Anzeigefehler (Siehe png).
    Das sind 3 <!DOCTYPE>-Tags zuviel! Oder meinst du den mit (*) gekennzeichneten?

    Und wo versteckt sich dort der Anzeigefehler?!
    Geändert von spicelab (27.08.11 um 06:19 Uhr)
     

  5. #5
    Elandril Elandril ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    11
    Nein das is nur das Paket, das da auf der Seite unter "Full Standard" stand. Wenn natürlich einer davon reicht, um so besser.

    Zum Anzeigefehler habe ich das png oben mit angehängt. Der große blaue Rahmen soll da nämlich in der Mitte positioniert sein (hab das von dieser Seite: http://www.zdnet.de/magazin/39120950...itenlayout.htm)
     

  6. #6
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Zitat Zitat von Elandril Beitrag anzeigen
    Nein das is nur das Paket, das da auf der Seite unter "Full Standard" stand. Wenn natürlich einer davon reicht, um so besser.
    Es gibt nur einen wählbaren Dokumenttyp für das Webdokument bzw. einen <!DOCTYPE>-Tag in dessen HTML-Dokumentbaum

    Zitat Zitat von Elandril Beitrag anzeigen
    Der große blaue Rahmen soll da nämlich in der Mitte positioniert sein
    Ah so...

    Deinem HTML-Code zufolge wird aus
    Code css:
    1
    2
    3
    4
    5
    6
    
    #contentDiv
    {
        background: url(pic_frags/content_border.png);
        width: 746px;
        height: 663px;
    }

    dieses
    Code css:
    1
    2
    3
    4
    5
    6
    
    #contentDiv
    {
        background:url(pic_frags/content_border.png);
        margin:0 174px 0 180px; /* Abstände zu den beiden äußeren Spaltenblöcken */
        height:663px;
    }
    Geändert von spicelab (27.08.11 um 14:38 Uhr) Grund: Tipp-Ex
    Elandril bedankt sich. 

  7. #7
    Elandril Elandril ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    11
    Alles klar, jetzt passt die Sache!

    Vielen Dank!
     

  8. #8
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Gern geschehen

    Hab da noch einen Hinweis nachzureichen, denn wie ich gerade (bewußt) wahrgenommen hab, deklarierst du ID-Bezeichner mehrfach im HTML-Dokument. Dies ist so aber nicht regelkonform (valide), da sie darin eindeutig sein müssen.

    In deinem Fall wandelst du im CSS diese beiden Bezeichner (#link und #pic) in sog. Klassen-Namen um, indem du das "#"-Zeichen durch einen Punkt ersetzt (.link und .pic), und tauscht im HTML das Attribut id= gegen class= aus.

    Diese Bezeichner, gleich ob ID oder Klasse, können hier aber gänzlich entfallen, wenn dafür im CSS die nachfolgend genannten Selektoren für Nachfahren definiert werden - so gelten die CSS-Regel dann ebenfalls dokumentweit ausschließlich für diese Elemente.

    Code css:
    1
    2
    3
    4
    5
    
    #menuDiv #menu a:link { ... }
    #menuDiv #menu a:visited { ... }
    #menuDiv #menu a:hover { ... }
     
    #picturesDiv #picBG img { ... }
    Geändert von spicelab (27.08.11 um 15:01 Uhr)
     

  9. #9
    Elandril Elandril ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    11
    Hallo, danke nochmal.

    Das mit den ids habe ich heute nachmittag geändert. War ein vorläufiges Konstrukt, bis das mit der Positionierung gepasst hat
     

Ähnliche Themen

  1. Layout-Probleme mit versch. Browsern
    Von marcoX im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 19.04.06, 08:55
  2. Mehere Probleme mit verschiedenen Browsern
    Von Domsi im Forum HTML & XHTML
    Antworten: 10
    Letzter Beitrag: 11.04.05, 17:41
  3. Antworten: 2
    Letzter Beitrag: 26.02.05, 14:40
  4. probleme mit height in browsern
    Von Transmitter im Forum CSS
    Antworten: 4
    Letzter Beitrag: 25.05.03, 18:42
  5. Probleme mit Framegröße in allen Browsern
    Von |--zZz--| im Forum HTML-Editoren
    Antworten: 2
    Letzter Beitrag: 16.05.01, 20:22

Stichworte