28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Voilà mon (gros) problème :

J'appelle un .js qui écrit du code HTML (document.write()) et qui importe une feuille de style CSS (soit avec <link rel="", avec <style... ou encore <style..> @import(... , mais toujours à l'aide de document.write().

Le problème c'est que sous IE, le style n'est pas appliqué au nouveau code écrit pas ce JS.
Je ne sais pas si je suis clair.
J'ai également essayé de rajouter dynamiquement (une fois le .js chargé) le <link rel="" dans la balise <head> du document principal mais ça ne change rien.

Le mieux étant d'ouvrir ce lien avec FF et avec IE pour voir la différence:

http://pronomails.com/ce/test-form.htm Smiley smile
Modifié par remi-fr (26 May 2009 - 10:26)
up Smiley smile

J'ai remarqué que si le CSS importé affecte un élément déjà déclaré (exemple: body, p, ou #header par exemple), il fonctionne, mais si le JS écrit un nouvel élément (exemple: #div_javascript) avec document.write() alors le CSS ne lui sera pas appliqué sous IE Smiley decu
Je devais avoir la tête ailleurs, en fait la dernière méthode que j'utilisais fonctionnais et je ne m'en étais pas rendu compte. Du coup mon 2eme post ce-dessus raconte un peu n'importe quoi ^^'

voilà la méthode:

function loadCSS() {
	css('http://pronomails.com/ce/form.css');
}

function css(url_css) {
	if (navigator.userAgent.indexOf('Chrome') != -1 || navigator.userAgent.indexOf('Safari') != -1) {
		document.write('<link href="'+url_css+'" type="text/css" rel="stylesheet" media="screen"/>');
	} else {
		var docc = document.getElementsByTagName('head').item(0);
		css_inc = document.createElement('link');
		css_inc.href = url_css;
		css_inc.type = 'text/css';
		css_inc.rel = 'stylesheet';
		docc.appendChild(css_inc);
	}
}


et ensuite en bas du fichier faire un window.onload = loadCss;

j'ai testé ta méthode qui fonctionne également bien Smiley cligne

du coup j'ai combiné les 2 ^^