tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
1102
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sprint Sprint ist offline Mitglied Platin
    Registriert seit
    Apr 2004
    Ort
    Die heimliche Hauptstadt des Bieres
    Beiträge
    579
    Hallo zusammen,

    der IE treibt mich mal wieder zum Wahnsinn. Der Designer meinte mal wieder, einen zweifarbigen Hintergrund bauen zu müssen. Mit zwei entsprechend eingefärbten Blöcken und einem überlagerten Bild funktioniert das eigentlich. Wenn da nicht der IE wäre, bei dem 2 x 50% > 100% sind. Wenn die beiden Blöcke je 50% haben, kann er die nicht nebeneinander stellen, sondern nur dann, wenn sie z.B. 49% haben. Damit kann man noch leben, auch wenn es mal wieder typisch ist.
    Das als Vorgeschichte, warum der Kopfbereich so merkwürdig aufgebaut ist. Der eigentliche Content Bereich soll nun aber wiederum den Kopfbereich überlagern. auch das funktioniert in jedem normalen Browser (siehe Screenshot), außer dem IE. Die Überlagerung kriegt er ja noch hin, aber weder ist der Bereich zentriert, noch stimmen die darin eingebetteten Teile (siehe 2. Screenshot). Vielleicht habe ich es auch mal wieder viel zu kompliziert gemacht, aber irgendwie bin ich im Moment völlig ratlos, wo das Problem liegt.
    Code css:
    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
    
    #wrapout { 
        background-image: url(../images/top.png); 
        background-repeat: no-repeat; background-position: center top; 
        position: absolute; width: 100%; height: 100%; margin-top: -255px; 
    }
    #wrapin { position: relative; width: 950px; margin-right: auto; margin-left: auto; height: auto; }
    #btl { background-color: #2d2d2d; position: relative; width: 49%; height: 255px; float: left; }
    #btr { background-color: #272727; position: relative; width: 49%; height: 255px; float: right; }
    #btop { background-color: #191919; position: relative; width: 100%; height: 40px; }
    #header { color: #333; font-size: 1.2em; background-color: #ececec; 
        position: relative; width: 878px; height: 167px; 
        float: none; padding: 15px 30px 8px; border: solid 6px white; 
    }
    #headtext { width: 476px; height: 167px; float: left; }
    #headbutton { width: 180px; height: 167px; float: left; }
    #domain { font-size: 2.5em; line-height: 3em; position: relative; left: 40px; width: auto; height: 40px; float: none; margin-bottom: 40px; }
    #show { position: relative; top: 1px; width: 222px; height: 167px; float: right; }
    pre { display:none }
    .pics { position: relative; width: 222px; height: 160px; z-index: 5; margin: 0; padding: 0; }
    .pics img { position: relative; top: 0; left: 0; margin: 0; padding: 0; width: 222px; height: 160px; z-index: 5; }
    #socialwrap { margin-right: auto; margin-left: auto; position: relative; width: 950px; height: 32px; }
    #socialwrap img { position: relative; top: 4px; float: right; margin-right: 40px; }
     
    #cont { background-color: #272727; 
        position: relative; width: 938px; height: auto; z-index: 20; 
        border-left: 6px solid white; border-bottom: 6px solid white; border-right: 6px solid white; 
        -webkit-border-top-left-radius: 0px; 
        -webkit-border-top-right-radius: 0px; 
        -webkit-border-bottom-left-radius: 6px; 
        -webkit-border-bottom-right-radius: 6px; 
        -moz-border-radius-topleft: 0px; 
        -moz-border-radius-topright: 0px; 
        -moz-border-radius-bottomleft: 6px; 
        -moz-border-radius-bottomright: 6px; 
    }
     
    #menubox { background-color: #dedede; 
        position: relative; width: 938px; height: 38px; z-index: 50; 
        float: none; padding: 6px; 
        -webkit-border-top-left-radius: 6px; 
        -webkit-border-top-right-radius: 6px; 
        -webkit-border-bottom-left-radius: 0px; 
        -webkit-border-bottom-right-radius: 0px; 
        -moz-border-radius-topleft: 6px; 
        -moz-border-radius-topright: 6px; 
        -moz-border-radius-bottomleft: 0px; 
        -moz-border-radius-bottomright: 0px; 
    }
    HTML-Code:
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    		<title>kleinanzeigen.de</title>
    		<meta name="description" content="" />
    		<meta name="keywords" content="" />
    		<link href="css/css.css" rel="stylesheet" />
    		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">></script>
    		<script type="text/javascript" src="http://malsup.github.com/chili-1.7.pack.js"></script>
    		<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.2.72.js"></script>
    		<script type="text/javascript">
    			$.fn.cycle.defaults.speed   = 900;
    			$.fn.cycle.defaults.timeout = 4000;
    			$(function() {
    			    // run the code in the markup!
    			    $('#show pre code').each(function() {
    			        eval($(this).text());
    			    });
    			});
    		</script>
    	</head>
    	<body>
    		<div id="btop">
    			<div id="socialwrap">
    				<div class="social"><img src="images/twittericon.png" alt="" height="32" width="32" /></div>
    				<div class="social"><img src="images/rssicon.png" alt="" height="32" width="32" /></div>
    			</div>
    		</div>
    		<div id="btl"></div>
    		<div id="btr"></div>
    		<div class="clear"></div>
    		<div id="wrapout">
    			<div id="wrapin">
    				<div id="domain">Kleinanzeigen.de</div>
    				<div id="menubox">
    				</div>
    				<div id="header">
    					<div id="headtext">
    						<h1>Hier ist ein bißchen bla bla</h1>
    						und das hier ist noch etwas mehr bla bla.
    					</div>
    					<div id="headbutton">
    						<div class="button orange" style="width: 80px;">Registrieren</div>
    						<div class="button blue" style="width: 80px;">Anmelden</div>
    					</div>
    					<div id="show">
    						<div id="fade" class="pics">
    							<img src="images/anim1.jpg" width="222" height="167" alt="" />
    							<img src="images/anim2.jpg" width="222" height="167" alt="" />
    							<img src="images/anim3.jpg" width="222" height="167" alt="" />
    						</div>
    							<pre><code class="mix">$('#fade').cycle();</code></pre>
    					</div>
    				</div>
    				<div id="cont">...</div>
    				<div class="clear"></div>
    			</div>
    			<div id="footer">&copy; kleinanzeigen.de</div>
    		</div>
    	</body>
    </html>
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Zerschossenes Layout bei IE 7 und 8-browser.jpg   Zerschossenes Layout bei IE 7 und 8-ie.jpg  

     
    Think Different.

  2. #2
    Maik Tutorials.de Gastzugang
    Moin,

    wenn ich in deinem (X)HTML-Code die fehlende Doctype-Deklaration ergänze, damit das Dokument den Browsern im standardkonformen Modus übergeben wird, und sie nicht in den "Quirks Mode" schalten, zerschiessen IE7 u. IE8 das Layout in keinster Weise.

    Lediglich für IE7 wäre deinen CSS-Auszügen zufolge (CSS-Regel der Klasse .clear fehlt hier), scheinbar noch eine Anpassung der margin-top-Regel für #wrapout erforderlich, da er diesen DIV-Block im Viewport zu weit unten ausrichtet.

    mfg Maik
     

  3. #3
    Sprint Sprint ist offline Mitglied Platin
    Registriert seit
    Apr 2004
    Ort
    Die heimliche Hauptstadt des Bieres
    Beiträge
    579
    Mahlzeit,

    die doctype Deklaration war drin und ist nur beim Kopieren irgendwie verloren gegangen. War aber auch nur eine auf das wichtigste gekürzte Version, Im Original ist auch die .clear Klasse drin.
    Dann liegt es doch wieder mal an der IE-Collection, die da so mies arbeitet. Na dann werde ich erst einmal so weitermachen und hoffen, daß er IE das dann auch irgendwie auf die Reihe bekommt bzw. ich irgendwo dann testen kann. Oder kennst du noch eine andere / bessere Möglichkeit, um mehrere IEs parallel zu nutzen?
     
    Think Different.

  4. #4
    Maik Tutorials.de Gastzugang
    Ich hab mir mittels "VirtualBox" zusätzlich zwei virtuelle Maschinen eingerichtet, um in meiner Testumgebung auf die drei "Vollversionen" (6, 7, 8) zurückgreifen zu können, denn auch die "Standalone"-Versionen des IE6 und IE7 sind nur bedingt / beschränkt tauglich.

    Dass die erwähnte fehlende Klasse in deinem lokalen CSS existiert, war mir schon klar, und hab sie vorhin beim Testen im Stylesheet mit clear:both aufgenommen. Wollte es hier nur erwähnt haben

    mfg Maik
     

  5. #5
    Sprint Sprint ist offline Mitglied Platin
    Registriert seit
    Apr 2004
    Ort
    Die heimliche Hauptstadt des Bieres
    Beiträge
    579
    Moin,

    nach Stunden völliger Verwirrung hab ich den Fehler gefunden. Ich hatte in der html Datei noch am Anfang eine kleine php Zeile und die hat das so verschoben wie auf dem Bild zu sehen.
     
    Think Different.

  6. #6
    Maik Tutorials.de Gastzugang
    Moin,

    laß mich raten, dieser PHP-Code wurde aus irgendeinem Grund nicht geparst, womit er vor der Doctype-Deklaration erhalten blieb:

    PHP-Code:
    <?php  // PHP-Code  ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    ...

    Mit Ausnahme eines möglichen XML-Prologs vor dem Doctype, der die Zeichenkodierung für das XHTML-Dokument angibt:

    HTML-Code:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    ...

    schaltet der IE7 und IE8 umgehend in den "Quirks Mode", wenn davor jegliche Formen von Zeichenfolgen existieren (z.B.: HTML-Kommentar, BOM mit "", nicht-geparster PHP-Code, u.v.m.). Ihre Vorgänger IE5/6 verhalten sich da genauso, und zusätzlich auch noch bei der XML-Deklaration. Diesen Bug haben die IE-Entwickler seinerzeit teilweise im IE7 behoben, sodass IE7 u. IE8 weiterhin in den "Quirks Mode" schalten würden, wenn vor der XML-Deklaration, oder zwischen ihr und der Doctype-Deklaration ein HTML-Kommentar steht.

    Wozu die IE-Familie in diesem Darstellungsmodus gegenüber den anderen Browsern dann noch imstande ist, oder halt eben nicht mehr, um den offiziellen CSS-Spezifikationen zu folgen, und beispielsweise das W3C-Boxmodell korrekt zu interpretieren, hast du ja von ihnen eindrucksvoll demonstriert bekommen.

    Für die Zukunft empfehle ich dir, im IE8 das integrierte Entwicklertool zu nutzen (Aufruf per "F12"), das dich u.a. über den Dokumentmodus informiert, in dem sich IE8 aktuell befindet ("Quirksmode", "IE7-Standards" oder "IE8-Standards"). Damit sollte dir eine stundenlange Recherche nach der Fehlerursache erspart bleiben, denn wenn er im "Quirksmode" läuft, ist dies ein unmißverständlicher Hinweis, dass da zu Beginn des (X)HTML-Codes mit der Doctype-Deklaration etwas nicht stimmt.

    mfg Maik
     

  7. #7
    Sprint Sprint ist offline Mitglied Platin
    Registriert seit
    Apr 2004
    Ort
    Die heimliche Hauptstadt des Bieres
    Beiträge
    579
    Nun ja, eine .html Seite wird nun mal nicht auf php Anteile untersucht. Die hatte ich umbenannt, um lokal die Seite direkt im Browser ansehen zu können. Wenn die .php lautet, stellt er ja nur den Quelltext dar. Ich hatte ja vorher noch die Seite validieren lassen und ganz stolz darauf, daß sie auf Anhieb durch kam.
     
    Think Different.

  8. #8
    Maik Tutorials.de Gastzugang
    Zitat Zitat von Sprint Beitrag anzeigen
    Nun ja, eine .html Seite wird nun mal nicht auf php Anteile untersucht.
    Das kann man so pauschal nicht sagen, denn es hängt davon ab, ob sie in der herkömmlichen (Windows-)Betriebssystemumgebung, oder über das "Hypertext Transfer Protocol" (http://...) aufgerufen wird, und ob der Webserver so konfiguriert ist, dass die angeforderten HTML-Dokumente zunächst an den PHP-Interpreter geschickt werden, bevor der Client sie zu Gesicht bekommt

    Diese Zeile hab ich dafür in einer .htaccess-Datei auf dem Apache-Server hinterlegt:
    Code :
    1
    
    AddType application/x-httpd-php .htm .html


    mfg Maik
     

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 03.07.09, 12:31
  2. Komplexes Tabellen Layout zu CSS Layout
    Von Danielku15 im Forum CSS
    Antworten: 10
    Letzter Beitrag: 10.07.08, 23:55
  3. Layout
    Von dadom110 im Forum CSS
    Antworten: 4
    Letzter Beitrag: 04.04.08, 15:35
  4. SafeGuard Easy und zerschossenes Win XP
    Von frickenhaus im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 25.12.04, 18:51
  5. Frame Layout oder Table Layout?
    Von steff aka sId im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 09.03.04, 15:01