Question

Est-il possible d'appeler une feuille de style, et que si elle n'est pas disponible, appelez une feuille de style à un autre endroit?

Quelque chose comme ceci:

<link rel="Stylesheet" type="text/css" href="http://cdn.somewhere.com/css/style.css" />
<link rel="Stylesheet" type="text/css" href="local/style.css" />

Mais uniquement appeler le deuxième si le premier n'est pas disponible? Je ne veux pas faire 2 appels s'il est inutile. Merci.

EDIT: Ceci est parce que je remarqué au travail, mon CDN est bloqué, donc pas de styles apparaissent, mais le site ne. Je suppose beaucoup d'endroits peuvent avoir le même bloc (pare-feu bloquant les applications web). Donc, je voudrais saisir le code CSS de la copie locale.

Était-ce utile?

La solution

Il est impossible dans le balisage HTML pur. Cependant, vous pouvez le faire côté serveur avec un simple script, par exemple (Pseudocode):

if first style does not exist:
    output <link> to second sheet
else
    output <link> to primary sheet

En réalité, cependant, vos feuilles de style sont susceptibles d'être mis en cache par le navigateur, il est donc de mettre à peine un fardeau pour l'utilisateur final. Vous pouvez simplement commander les s de sorte que les « secondes » des charges de feuille de style en premier lieu, et les charges primaires de deuxième feuille. Cela provoquerait la feuille primaire pour remplacer quoi que ce soit dans la feuille secondaire ... mais si la feuille primaire n'était pas disponible, la feuille secondaire fonctionne encore comme prévu.

Autres conseils

JavaScript / AJAX est fortement pas recommandé en raison de son comportement imprévisible (je ne parle pas de la compatibilité multi-navigateur, mais certains utilisateurs désactivé cette option.)

Si je vous, je vérifier l'existence du premier CSS donné côté serveur et insérez le href en conséquence.

Gardez à l'esprit que si vous avez vraiment utiliser ce genre de mécanisme pour assurer que, vous dites que vos serveurs ne sont pas fiables.

n, parce que les éléments de lien lui-même sont statiques ( « muette »). Donc, vous devez soit JavaScript, Greasemonkey (sur Firefox, mais c'est JavaScript, aussi) ou si vous avez vraiment de demander les deux.

L'ordre doit être différent, cependant, IIRC: La même règle CSS remplace une précédente. Donc, vous devez inclure le fichier local, d'abord, puis charger l'externe. Si l'externe n'est pas disponible, votre copie locale sera utilisée.

Si vous placez le fichier CSS sur le disque dur local, ce sera pas cher.

Cela dit, le navigateur ne sera pas toujours télécharger le fichier. Il va d'abord vérifier si la copie dans son cache est toujours en cours et si elle est, il ne sera pas télécharger à nouveau le fichier.

Vous pouvez par défaut utiliser le « local.css » et utiliser javascript (en utilisant ajax) pour charger le nouveau. Si la demande peut charger le nouveau fichier css ok ça va, sinon, vous suffit de changer quoi que ce soit.

Ehmm ... Vous coudl utilisez ceci:

Je ne sais pas si le alternate stylesheet est chargé lorsque le premier échoue, mais vous pouvez essayer, sinon vous, lisez ceci: A List Apart Tutoriel pour modification des feuilles de style

Ceci peut être réalisé par JavaScript. Code devrait être comme ceci:

if( loadcss(first.css) == false) loadcss(second.css);

où loadcss est fonction vérifie si css est chargé ou non

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top