Stylesheet funktioniert nicht in Chrome/Safari funktioniert aber im Internet Explorer

TL;DR

Ich habe gelesen durch viele Fragen auf Stack Overflow über dieses Thema und ich habe versucht, befolgen Sie die Ratschläge. Immer noch, mein CSS-stylesheet funktioniert nicht in Chrome/Safari, aber es kann in Internet Explorer arbeiten.

Die einzige seltsame Sache, die ich sehen kann, über meinem Szenario ist mein server wieder alle Dateien als vom Typ application/octet-stream. Ich kann nicht ändern, dieser Aspekt des Servers. Gibt es etwas, was ich tun kann, zu interpretieren, meine CSS-Datei als stylesheet, in Chrome/Safari und IE?


Ich habe ein embedded web-server-Projekt, an dem ich arbeite. Ich habe sehr begrenzte Kontrolle über die server-software und die Fähigkeit, die Seite-level-Einstellungen. Alles was ich tun kann, ist das erstellen von statischen HTML -, CSS-und Bild-Dateien, die kompiliert werden, die in der server-Anwendung.

Als solche werden alle Dateien, die zurückgegeben werden aus der embedded-server deklariert application/octet-stream im HTTP header. Dies erzeugt Warnungen in Chrome aber keine Fehler.

Anfangs hatte ich ein problem beim laden dieser Stylesheets in Chrome/Safari, aber es würde funktionieren im IE. Nach dem durchlesen ein paar Fragen auf Stack Overflow, ich fand, dass ich brauchte, um meine stylesheet-Deklaration von:

<link rel="stylesheet" href="/styles/index.css">

:

<link rel="stylesheet" type="text/css" href="/styles/index.css">

Wenn ich diese änderung vorgenommen Chrome & Safari immer noch Fehler beim verarbeiten der CSS-Datei, aber der IE auch angefangen zu ignorieren das stylesheet.

Seltsam, wenn ich nicht erklären DOCTYPE auf meine HTML-Dokument, das ich kann sich mit stylesheets zu arbeiten, in allen meinen Browsern. Dies ist jedoch keine wünschenswerte Lösung.

Meine Vermutung ist, diese Frage hat etwas zu tun mit der HTTP header-Erklärung und, dass es nicht mit Typ deklariert link element.

Was kann ich tun, um diese stylesheet-arbeiten in Chrome, Safari und IE während der folgenden guten web-Entwicklung-codes-der-Praxis (d.h. mit doctypes auf meine HTML-Dateien und nicht die Einbettung der Stil-code in den HTML-Header?)

Um der Klarheit Willen, die entsprechenden CSS - /HTML-code ist unten dargestellt.

index.css

html {height:100%}
body {margin:0;min-height:100%;position:relative}
iframe {width:100%;height:100%;border:none}

.hdr {min-width:765px;overflow:auto}
.logo1 {float:left;margin:4px}
.logo2 {float:right;margin:4px}
.menu {position:absolute;top:70px;left:0px;bottom:0px;width:175px}
.content {position:absolute;top:70px;left:175px;bottom:0px;right:0px;}

index.htm

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" href="/styles/index.css"> <!-- Removed the type declaration so that  this would at least work in IE9 //-->
</head>
<body lang="en-us">
<div class="hdr"><img class="logo1" src="/images/logo1.png" alt="Logo #1"><img class="logo2" src="/images/logo2.png" alt="Logo #2"></div>
<div class="menu"><iframe name="menu" src="/menu.shtm"></iframe></div>
<div class="content"><iframe name="main" src="/home.htm"></iframe></div>
</body>

FYI, dies ist ein neues Projekt, das entwickelt wird aus einer bestehenden. Das ursprüngliche Projekt nicht erklären, ein DOCTYPE auf der HTML-Dateien. Deshalb, Seite alle Daten geladen und im browser ausgeführt, im quirks-Modus. Außerdem index.htm Bestand ursprünglich aus mehreren frames innerhalb einer frameset.

Ich bin versucht, zu aktualisieren diese Anwendung korrekt und up-to-date Methoden für die Entwicklung von web-Seiten. Ich kann diese Anwendung zu arbeiten, aber ich habe das Gefühl, dass dies bei einem Opfer der Zukunft-browser-Kompatibilität, wenn ich darauf angewiesen, dass der browser im quirks-Modus und framesets.

Habe ich versucht, schließen Sie das link-tag, aber das hilft nicht. Technisch gesehen, dies sollte kein Problem sein da dieses Dokument erklärt, wie ein HTML5-Dokument, anstatt XHTML.

Seltsam, 1. mal, dass der IE etwas gutes zu tun und mit anderen Browsern nicht
Schließen Sie Ihre meta-und link-tags mit /> Sie die derzeit geöffnet sind. (Kann auch das gleiche tun mit <img>, obwohl, die keinen Einfluss auf die Frage
Ja, ich bin nicht ohne Probleme mit meinen Bildern, aber ich werde versuchen Ihren Vorschlag.
Nein, es hat nicht geholfen. @insertusernamehere, ich wollte es versuchen, nur um sicher zu sein, aber deshalb habe ich es weggelassen.
Wo ist deine CSS-Datei liegt? Ist es im root? Da /styles/index.css Aussehen wird, in das root-Verzeichnis, in Chrom, basierend auf meine Experimente. (ZB. auf meinem Windows-Rechner, es war auf der Suche nach C:\styles\index.css.) Einmal steckte ich die CSS-Datei da, es funktionierte.

InformationsquelleAutor RLH | 2012-11-12

Schreibe einen Kommentar