online 1
gast (50)

/ Forum / Webseiten/HTML

Webseiten/HTMLWebseiten/HTML

Fragevon Arra vom 23.08.2020, 22:29 Options

CSS-Layout für den Internet Explorer

Hallo an alle.

Ich habe folgendes Problem:
Ein Freund von mir und ich sitzen an einer Webseite. Er übernimmt die PHP-Skripte, ich das Design und Layout. Wir haben uns, was die Funktionalität der Skripte anbelangt, immer an Firefox gehalten. Heute sahen wir uns unsere Vorschau im Internet Explorer an und erschraken. Ich baute für die Navigation links ein eigenes CSS-Layout mit Div-Boxen. Via JavaSkript gab ich einzelne Links Untermenüs mit einem "Slide-nach-unten"-Effekt, zum Aufklappen. Die "Unterlinks" sind im IE alle um etwa 5 Pixel nach unten verschoben, womit das komplette Layout nicht mehr hinaut.
Meine Frage - Wie kann ich was anpassen, damit im Firefox alles so beibehalten wird wie es ist, und im IE es keine fünf-Pixel-Lücken zwischen den Grafiken mehr gibt?

Mit freundlichen Grüßen
Arra


Antwort schreiben

Antwort 1 von DaPascha vom 23.08.2020, 22:44 Options

Ich kann dein Problem zwar gerade nicht ganz nachvollziehen, da weder das CSS-Skript noch eine visuelle Veranschaulichung vorhanden ist.
Versuche in alle betroffenen Bereiche den Außen- und Innenabstand zu entfernen.


margin: 0px;
padding: 0px;


Sollte dies zu keinem zufriedenstellenden Ergebnis führen, so kann ich nur mit mehr Informationen weiter helfen.

MfG Paul

Antwort 2 von Klassenkasper vom 23.08.2020, 22:47 Options

Aloha
Der Internet Explorer ist das schlimmste was es gibt in Sachen CSS Umsetzung. Die haben da soviele Bugs drin, dass du quasi ein eigenes Stylesheet schreiben darfst für den IE.
Mit dem IE 8 versucht Microsoft endlich die CSS Interpretation auf den Stand der Dinge zu bringen, was ihnen meines Erachtens nach nur bedingt gelungen ist. Aber das ist ein anderes Thema.

Die folgenden Seiten sind recht klasse und kann ich nur empfehlen: CSS4You
YAML.
Da kriegst du recht viele Tipps.
Hier findest du direkt einige Tipps zum Bugfixing für den IE:
YAML - CSS Anpassung für den IE

Gruß
Des Kasperle

Antwort 3 von Arra vom 23.08.2020, 23:00 Options

Okay, vielleicht sollte ich wirklich noch etwas dranhängen ... Ist zwar nicht das beste Beispiel, aber ein Grund dazuzulernen.

http://www.wow-dfl.de.vu/_vorschau/

Der Unterschied zwischen dem Firefox und dem IE liegt eigentlich nur bei den Untermenüs. Im obrigen Beispiel unter dem Link "Die Gilde".

Alle Höhen, von Div-Boxen und Grafiken, betragen 25 Pixel. Alle Rahmen stehen auf 0, nur der IE bemerkt das nicht. Wenn ich weiß, was ihr an Informationen braucht, sagt bitte bescheid. Ich zerbreche mir heute schon den gesamten Tag den Kopf darüber. :(

Mit freundlichen Grüßen
Arra

Antwort 4 von Klassenkasper vom 23.08.2020, 23:11 Options

Der CSS Code wäre interessant.
Damit man sehen kann was du da überhaupt definiert hast.

Antwort 5 von Arra vom 23.08.2020, 23:15 Options

Ein vielen Dank im Voraus!
Der CSS-Code:

.navi_links {
background-color: transparent;
height: 25px;
width: 195px;
margin: 0px;
padding: 0px;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 0px;
border-left-width: 0px;
vertical-align: top;
}
.navi_unterlinks {
background-color: transparent;
height: 25px;
width: 195px;
overflow: hidden;
margin: 0px;
padding: 0px;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 0px;
border-left-width: 0px;
vertical-align: top;
}

Der Quellcode der index.php:

<div class=\"navi_unterlinks\" id=\"menu_gilde\" onclick=\"MM_effectBlind('menu_gilde', 1000, '25px', '100px', true)\"><img src=\"grafik/navigation/link_gilde.png\" name=\"link_gilde\" width=\"195\" height=\"25\" id=\"link_gilde\" onmouseover=\"MM_swapImage('link_gilde','','grafik/navigation/link_gilde_over.png',1)\" onmouseout=\"MM_swapImgRestore()\" /><br />
<a href=\"#\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('unterlink_entstehung','','grafik/navigation/unterlink_entstehung_over.png',1)\"><img src=\"grafik/navigation/unterlink_entstehung.png\" name=\"unterlink_entstehung\" width=\"195\" height=\"25\" border=\"0\" id=\"unterlink_entstehung\" /><br />
</a><a href=\"#\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('unterlink_richtlinien','','grafik/navigation/unterlink_richtlinien_over.png',1)\"><img src=\"grafik/navigation/unterlink_richtlinien.png\" name=\"unterlink_richtlinien\" width=\"195\" height=\"25\" border=\"0\" id=\"unterlink_richtlinien\" /><br />
</a><a href=\"#\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('unterlink_rangstruktur','','grafik/navigation/unterlink_rangstruktur_over.png',1)\"><img src=\"grafik/navigation/unterlink_rangstruktur.png\" name=\"unterlink_rangstruktur\" width=\"195\" height=\"25\" border=\"0\" id=\"unterlink_rangstruktur\" /></a></div>

Antwort 6 von Klassenkasper vom 23.08.2020, 23:32 Options

Uff, dein Quellcode aus der Index.php...da muss man erstmal durchsteigen*g*

Da sehe ich jetzt so grad keinen Fehler drin. Aber in deinem Stylesheet kannst du meines Wissens nach die ganzen Angaben für margin, padding und border alle rauswerfen. Da sowieso alle Angaben 0px sind kannst du sie auch weglassen.
Würde ich zumindest so machen.
Und dann nochmal nachschauen ob es sich gebessert hat :-)

Antwort 7 von DaPascha vom 23.08.2020, 23:34 Options

Haben die Bilder "unterlink_blabla.png" eine CSS-Definition? Falls nicht, versuche in den IMG-Tag folgendes mit rein zu bringen:
style="margin: 0px; padding: 0px;"

Wenn doch, dann die Margin- und Padding-Definition ergänzen.

Vielleicht sogar ganz allgemein:
img {
   margin: 0px;
   padding: 0px;
}
Das könnte den unerwarteten Abstand entfernen...

MfG Paul

Antwort 8 von DaPascha vom 23.08.2020, 23:37 Options

@Klassenkasper: IE hat seine eigenen Standartwerte, die nicht selten nicht 0 sind. Aus dem Grund ist es auf bei 0 Werten sinnvoll diese zu definieren.

Antwort 9 von Arra vom 23.08.2020, 23:48 Options

Also schonmal ein Danke an euch beide, für die Mühe. :)

1.) Nein, die Grafiken alle haben keine eigene CSS-Definition.
2.) Leider hat das einbringen von >style="margin: 0px; padding: 0px;"<
im <img>-Tag auch nichts gebracht ... :(

Ich habe wirklich keine einzige Idee, woher der IE die Abstand-Angabe hernimmt, aber da leider 80% - 90% aller Webuser den IE nutzen, bin ich gezwungen darauf Rücksicht zu nehmen.

Mit freundlichen Grüßen
Arra

Antwort 10 von Klassenkasper vom 24.08.2020, 00:01 Options

DaPascha, da hast du auch wieder recht. Dafür ist es natürlich sinnvoll die Werte zu definieren.

Arra, welche IE Version benutzt ihr grade für die Ansicht?
Wenn wir dieser Statistik Glauben schenken sind es nur 58,4% die den IE nutzen ;-)
Was nicht heißen soll das der Fehler deshalb so bleiben darf *g*

Im Endeffekt gibt es zwischen navi_links und navi_unterlinks nur einen einzigen Unterschied:
overflow:hidden;
Da das Problem nur bei den Unterlinks auftritt, nimm einfach mal das overflow raus und teste es mal.
Ansonsten wüsste ich jetzt so auch nix mehr....

Antwort 11 von Arra vom 24.08.2020, 00:09 Options

Naja, würde ich ja gern, aber sobald "overflow:hidden;" raus ist, werden die Grafiken, die erst aufgeklappt werden sollen, unter dem Gesamtmenü unter der letzten Grafik fortgeführt, so dass sie also sichtbar sind, auch wenn der entsprechende Link zugeklappt ist.

Ich habe es auch schon mit einem extra "Internet Explorer"-CSS versucht, klappt auch nicht wirklich.
Schade, aber trotzdem Danke.

Mit freundlichen Grüßen
Arra

P.S.: Würde man das JavaScript im CSS, statt im Quellcode, angeben, hätte ich die Höhe des Aufklappeneffektes einfach für den IE ein paar Pixel größer gestaltet, damit die unterste Grafik im Slide-Menü wenigstens nicht abgeschnitten ist.

Antwort 12 von Klassenkasper vom 24.08.2020, 00:59 Options

Hmm, ich versteh nicht warum er die Grafiken unten anzeigt wenn das
overflow:hidden;
raus ist. Das sagt ja eigentlich nur aus das, wenn der Inhalt größer ist als der <div> selbst, dass er dann nicht angezeigt wird.
Warum er dann die Grafiken unten anzeigt ist mir schleierhaft. Das dürfte eigentlich nicht sein.
Kannst du bitte einmal den kompletten Quellcode zeigen für das obere und untere Menü?
Also alles ab <div class="navi_links">.......</div>.

Antwort 13 von DaPascha vom 24.08.2020, 01:20 Options

Vielleicht verursachen die Breaks hinter den Bildern den Abstand. Ist im Normalfall zwar blödsinnig, aber wir reden hier immerhin vom IE...

MfG Paul

Antwort 14 von Arra vom 24.08.2020, 02:57 Options

Quellcode der gesamten Navigation:

<td width="195" height="451" valign="top"><div id="menu" class="navigation">
            <div class="navi_links" id="navi_news"><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('link_news','','grafik/navigation/link_news_over.png',1)"><img src="grafik/navigation/link_news.png" name="link_news" width="195" height="25" border="0" id="link_news" /></a></div>
            <div class="navi_unterlinks" id="menu_gilde" onclick="MM_effectBlind('menu_gilde', 1000, '25px', '100px', true)"><img src="grafik/navigation/link_gilde.png" name="link_gilde" width="195" height="25" id="link_gilde" onmouseover="MM_swapImage('link_gilde','','grafik/navigation/link_gilde_over.png',1)" onmouseout="MM_swapImgRestore()" /><br />
              <a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('unterlink_entstehung','','grafik/navigation/unterlink_entstehung_over.png',1)"><img src="grafik/navigation/unterlink_entstehung.png" name="unterlink_entstehung" width="195" height="25" border="0" id="unterlink_entstehung" /><br />
              </a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('unterlink_richtlinien','','grafik/navigation/unterlink_richtlinien_over.png',1)"><img src="grafik/navigation/unterlink_richtlinien.png" name="unterlink_richtlinien" width="195" height="25" border="0" id="unterlink_richtlinien" /><br />
              </a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('unterlink_rangstruktur','','grafik/navigation/unterlink_rangstruktur_over.png',1)"><img src="grafik/navigation/unterlink_rangstruktur.png" name="unterlink_rangstruktur" width="195" height="25" border="0" id="unterlink_rangstruktur" /></a></div>
            <div class="navi_links" id="navi_mitglieder"><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('link_mitglieder','','grafik/navigation/link_mitglieder_over.png',1)"><img src="grafik/navigation/link_mitglieder.png" name="link_mitglieder" width="195" height="25" border="0" id="link_mitglieder" /></a></div>
            <div class="navi_links" id="navi_forum"><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('link_forum','','grafik/navigation/link_forum_over.png',1)"><img src="grafik/navigation/link_forum.png" name="link_forum" width="195" height="25" border="0" id="link_forum" /></a></div>
            </div></td>


CSS-Code für Klasse .navigation:

.navigation {
	background-color: transparent;
	width: 195px;
	height: 451px;
	margin: 0px;
	padding: 0px;
	vertical-align: top;
	border-top-width: 0px;
	border-right-width: 0px;
	border-bottom-width: 0px;
	border-left-width: 0px;
}

Antwort 15 von Arra vom 24.08.2020, 02:59 Options

@DaPascha:

Ja oder? Aus lauter Verzweiflung habe ich auch schon daran gedacht. Gibt es eine Möglichkeit, oder Breaks die Grafiken untereinander an der richten Stelle anzeigen zu lassen?

Mit freundlichen Grüßen
Arra

Antwort 16 von DaPascha vom 24.08.2020, 03:06 Options

Also, prinzipiel kann man die Breaks genau so übers CSS formatieren.

Wenn du aber dem DIV eine feste Breite gibst, und zwar die Breite, die die Bilder haben, sollten die eigentlich dann unter einander angezeigt werden.
Sollte dies doch nicht der Fall sein dann integriere die folgende CSS-Anweisung in die BIlder:
float: none;

Dies bewirkt, dass keine Elemente oder Inhalt weder vor noch nach dem BIld in der Zeile zugelassen werden.
Folge: Das nächste Bild wird unter dem Bild angezeigt.

Antwort 17 von katy vom 24.08.2020, 09:54 Options

Hallo Arra,

ohne jetzt speziell in deinem Code herumgewühlt zu haben 2 kleine Lösungsvorschläge:
  1. Bitte validiere deinen Code. Mit 77 Fehlern auf der Startseite muss jeder Browser ein bisschen raten.
  2. Mit der Leerzeile am Anfang versetzt du den Browser in den Quirksmodus, eine Art "Ratemodus", in dem jeder Browser das CSS anders interpretieren darf. Entferne diese Leerzeile und die Browser sollten standardkonform arbeiten. Das könnte aber auch heißen, das der FF irgendwas plötzlich anders - nämlich standardkonform - interpretiert. Beim IE sind die Unterschiede aber größer.


@DaPascha:
Wenn du hinter jedem Bild einen Umbruch haben willst, ist das einfachste und sinnvollste aus den Bildern Blockelemente zu machen:
img {
display:block;
}


einen schönen Sonntag wünscht
katy

Antwort 18 von Arra vom 24.08.2020, 16:42 Options

Danke für die weitere Mithilfe.

Also ich habe jetzt DaPascha's und katy's Rat befolgt, die Leerzeile entfernt, den "img"-Tag hinzugefügt und die <br>s rausgenommen. All das hat nur eine Sache verändert - Unter Firefox sehen die aufgeklappten Unterpunkte nun ebenso verbuggt aus, wie im IE. :)

Mit freundlichen Grüßen
Arra

Antwort 19 von katy vom 24.08.2020, 23:20 Options

Hallo Arra,

vielleicht solltest du erst einmal meinen 1ten Rat befolgen und die vielen Fehler im Quellcode beseitigen.

Dass evtl. auch der FF im standardkonformen Modus etwas anders auf deinen Quellcode reagiert hatte ich doch erwähnt.

katy

Antwort 20 von DaPascha vom 25.08.2020, 00:56 Options

Na scheint doch geklappt zu haben, oder?

@Katy: Danke für'n Tipp mit dem Validator, um die Uhrzeit denkt man nicht mehr an solch einfache Sachen^^

MfG Paul

Ähnliche Themen

CSS-Layout html-code generiert bekommen???
peterhans  18.02.2007 - 71 Hits - 2 Antworten

Layout für Links über css
websurfer  08.08.2007 - 48 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026