Blog

No public Twitter messages.

6 der häufigsten IE Bugs und wie man sie behebt

Internet Explorer - Der Fluch eines jeden Webentwicklers. Bis zu 60% der Entwicklung kann durch die Bugs des Internet Explorers zu nichte gemacht werden. In diesem Tutorial zeige ich euch einige der häufigsten Internet Explorer Bugs sowie du diese Fehler umgehen kannst. Lasst uns starten

Zentrieren eines Layouts

Das zentrieren eines Elements ist warscheinlich etwas, dass jeder Webentwickler zu tun hat. Die einfachste und am meisten verbreiste Lösung ist wohl margin:auto; für das entsprechende Element. Diese Methode zentriert das Element, unabhängig von der Auflösung oder der Browser Breite.

#container{
	border: solid 1px #000;
	background: #777;
	width: 400px;
	height: 160px;
	margin: 30px 0 0 30px;
}
#element{
	background: #95CFEF;
	border: solid 1px #36F;
	width: 300px;
	height: 100px;
	margin: 30px auto;
}

Das Ergebniss was man erwartet:

Aber was der Internet Explorer ausgibt ist:

Das ist ein Fehler des Internet Explorer 6. Allerdings ist er zum Glück leicht zu beheben.

Der Fix

Der einfachste und sicherste Weg, ist dem Element ein text-align:center; zu geben. Das darauf folgende Element erhält dann ein text-align:left; um den Text natürlich wieder korrekt anzuzeigen.

#container{
	border: solid 1px #000;
	background: #777;
	width: 400px;
	height: 160px;
	margin: 30px 0 0 30px;
	text-align: center;
}
#element{
	background: #95CFEF;
	border: solid 1px #36F;
	width: 300px;
	height: 100px;
	margin: 30px 0;
    	text-align: left;
}

Treppeneffekt

Normalerweise setzt jeder Webentwickler eine Navigation mit einer Liste um. Man erstellt eine Liste und darin ein paar Links. Normalerweise klappt es auch, doch der IE sieht das wohl anders.

    
ul {
    list-style: none;
}
ul li a {
   	display: block;
   	width: 130px;
	height: 30px;
   	text-align: center;
   	color: #fff;
   	float: left;
	background: #95CFEF;
	border: solid 1px #36F;
	margin: 30px 5px;
}

Ein standard-komformer Browser macht es zum Beispiel so:

Und der IE Screenshot:

Nicht sehr erfreut, wenn ihr mich fragt. Glücklicherweise gibt es auch hier einen 2 Fix`s.

Fix1

Der einfachste Weg ist, anstatt dem Anker Tag dem Listen Element ein float:left; zu geben.

ul li {
	float: left;
}

Fix2

Der zweite Weg ist, dem Listenelement ein display:inline zu geben. Neben der Behebung dieses Fehlers, behebt es auch den doppel margin Bug.

ul li {
	display: inline
}

Doppel margin bei floated Elementen

Dies ist wohl einer der ersten Fehler, die ein Webentwickler beheben sollte, sofern die Seite für den Internet Explorer 6 optimiert werden muss.

#element{
	background: #95CFEF;
	width: 300px;
	height: 100px;
	float: left;
	margin: 30px 0 0 30px;
	border: solid 1px #36F;
}

Das Ergebniss was man erwartet:

Aber was der Internet Explorer 6 ausgibt ist:

Der Fix

Für diesen speziellen Bug, muss man den zu floatenden Element ein display:inline; geben. Unser bisheriger Code ändert sich zu:

#element{
	background: #95CFEF;
	width: 300px;
	height: 100px;
	float: left;
	margin: 30px 0 0 30px;
	border: solid 1px #36F;
   	display: inline;
}

Auto Overflow und relativ positionierte Elemente.

Dieser Fehler passiert, wenn man in einem overflow:auto; Element ein weiteres Element plaziert, mit der Eigenschaft position: relative;. Lasst es mich anhand des Codes demonstrieren:

#element{
	background: #95CFEF;
	border: solid 1px #36F;
	width: 300px;
	height: 150px;	
	margin: 30px 0;
	overflow: auto;
}
#anotherelement{
	background: #555;
	width: 150px;
	height: 175px;	
	position: relative;
	margin: 30px;
}

Die erwartete Ausgabe:

Die IE Ausgabe:

Der Fix

Der einfachste Weg ist, dass Eltern Element auch relativ zu positionieren:

#element{
	background: #95CFEF;
	border: solid 1px #36F;
	width: 300px;
	height: 150px;	
	margin: 30px 0;
	overflow: auto;
    	position: relative;
}

Eine mindest Höhe sowie Breite setzen

Der Internet Explorer ignoriert komplett die min-height Eigenschaft.

Der Fix

Dieser Fix ist von Dustin Diaz. Er benutzt die !importent Nachricht, damit es funktioniert:

#element {
  min-height:150px;
  height:auto !important;
  height:150px;
}

Abstand zwischen Listen Elementen

Der IE6 fügt einen vertikalen Abstand ein, wo garkeiner ist. Schauen wir es uns einmal an:


ul {
	margin:0; 
	padding:0; 
	list-style:none;
}
li a {
	background: #95CFEF;
	display: block;
}

Wie es ausshen sollte:

Was der IE uns ausgibt:

Fix1

Der einfachste Fix ist, dem Anker Tag eine feste Breite zuzuweisen.

li a {
	background: #95CFEF;
	display: block;
    	width: 200px;
}

Fix 2

Die zweite Methode ist, dass Anker Tag links zu floaten und es danach ebenfalls links zu clearen.

li a {
	background: #95CFEF;
	float: left;
    	clear: left;
}

Fix 3

Die dritte Methode ist, dass zu schliessende Listen Element ein display:inline; zu geben. Das behebet ebenfalls den double margin bug wie oben beschrieben:

li {
	display: inline;
}



rss feed

Hat dir der Artikel gefallen? Dann abbonniere doch meinen kostenlosen RSS Feed.

Christopher Dosin - Hi, mein Name ist Christopher Dosin und ich komme aus Wuppertal nähe Düsseldorf. Seit meinem 14. Lebenjahr beschäftige ich mich mit dem Thema Internet und Webseiten. Meine erste Webseite war eine Beepworld Homepage. Derzeit bin ich selbstständig und habe meinen Fokus auf das Open Source CMS Joomla! gelegt.

10 Comments


  1. Bloggerschmidt (6 comments)
    Feb 17, 2025

    Danke für die gute Zusammenstellung. Auch eine gute Seite zu CSS Hacks ist diese hier: http://itr.im/10c


    • Christopher Dosin (83 comments)
      Feb 17, 2025

      Wow die Seite kannte ich noch garnicht, werde ich mir auf jedenfall mal durchlesen.

      Und deine neue Seite gefällt mir sehr gut ;)
      Wirklich sehr schön gemacht.


  2. Dolores Moser (1 comments)
    Mrz 04, 2010

    Hallo, vielen Dank für deine hilfreichen Tipps, und erst noch auf DEUTSCH :–)) gefällt mir SEHR!!!
    Mein Tipp zum OPEN SOURCE CMS schau dir mal TYPOlight an, gefällt mir EXTREM viel besser als Joomla… und hat eine wahnsinnig nette & hilfsbereite forum-community (auch auf deutsch ;-) http://www.typolight.org/


    • Christopher Dosin (83 comments)
      Mrz 04, 2010

      Danke für dein Kommentar :)
      Typolight habe ich mir bereits angeschaut, es sieht auf jedenfall sehr vielversprechend aus. Vor allem der sehr gute Quellcode sagt mir auch sehr zu. Allerdings gibt es im moment noch sehr wenige Extensions für Typolight, sodass ich vorerst bei Joomla bleiben werde :)
      Vorteil bei Typolight ist natürlich auch die enorme Rechteverteilung im Gegensatz zu Joomla. Allerdings wird mit der kommenden 1.6 Version Joomla dort ebenfalls mithalten können :)


      • der.Ede (1 comments)
        Mrz 08, 2010

        Rechteverteilung, Rechteverteilung, Rechteverteilung!

        Überall hört man nur noch Rechte hier und Rechte da. Wie wäre es mal wieder mit freien Gedanken weg vom Registrierungszwang? Klar gibt es einige Seite wo dies sehr sinvoll ist aber die meisten Seiten haben doch nur eine Registrierung damit sie angeben können wie viele User (die zu 99% inaktiv sind) bei Ihnen registriert sind. Ich sehe keinen Grund von Joomla auf TYPOLight zu wechseln denn EXTREM besser (wie von Dolores angesprochen) finde ich das CMS nicht. Und auch wir haben nette & hilfreiche Communitys (siehe auch: http://www.joomla-downloads.de) ;)

        MfG


        • Christopher Dosin (83 comments)
          Mrz 08, 2010

          Hey der.Ede,

          kann es sein, dass du meinen Beitrag verwechselt hast? :)
          Hier gehts doch um IE Bugs und nicht um irgendeine Rechteverteilung :)


  3. duck (2 comments)
    Mrz 22, 2010

    danke für die Übersicht. Für so was habe ich noch einen alte iX Zeitschrift liegen. ;-)
    Brauche i jetzt nicht mehr.


  4. crapfruit (2 comments)
    Mai 02, 2010

    also das mit dem min-height ist echt ne nette lösung
    - die ich bis jetzt leider noch gar nicht kannte…
    DANKE


  5. NoGoJoomla (2 comments)
    Sep 10, 2024

    1. Optisch sehr nette Seite, auch wenn es Joomla ist.
    2. Ich kann mich dem Kommentar von Dolores Moser nur anschließen: Ein Blick auf TypoLight ist alleine schon aufgrund der in Joomla in der Vergangenheit aufgefallenen Sicherheitslücken gerechtfertigt.
    Sicherheitsbewusste Agenturen weigern sich mittlerweile, Joomla auf einem dedizierten Server einzusetzen. Da ist TypoLight (mittlerweile Contao) oder Drupal definitiv die bessere Wahl. Und für Drupal gibt es Unmengen an Plugins.
    Joomla ist zum Spielen da. Für Business-Seiten oder im Enterprise-Bereich wird der Einsatz dieses WCMS tunlichst vermieden.

    Greetz :)


    • NoGoJoomla (2 comments)
      Sep 10, 2024

      Kleine Korrektur von mir zu Punkt 1: Kleiner Verschreiber, ich meinte hier natürlich WordPress. Punkt 2 bezieht sich hingegen auf Joomla.

Leave a Reply

*

Geld verdienen mit Links

teliad - Der Marktplatz für Textlinks Backlinkseller

Recent Tweets

    No public Twitter messages.