<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Retour à La Source • Tag: XHTML • RSS</title>
		<link>http://www.ab-d.fr/tag/XHTML/</link>
		<description>Retour à La Source • Tag: XHTML • RSS</description>
		<copyright>http://www.ab-d.fr/tag/XHTML/ (c) 2010</copyright>
		<language>fr</language>
		<pubDate>Sat, 31 Jul 2010 15:02:16 +0100</pubDate>
		<generator>Retour à La Source • Tag: XHTML • RSS • version 1.0</generator>
		<webMaster>noreply@ab-d.fr ( Benoit Asselin )</webMaster>
		<image>
			<url>http://www.ab-d.fr/images/rss.gif</url>
			<title>Retour à La Source • Tag: XHTML • RSS</title>
			<link>http://www.ab-d.fr/tag/XHTML/</link>
			<width>90</width>
			<height>30</height>
		</image>

		<item>
			<title>Internet Explorer 8, la nouvelle croix du développeur web ( EmulateIE7 )</title>
			<link>http://www.ab-d.fr/date/2009-03-24/</link>
			<pubDate>Tue, 24 Mar 2009 19:00:00 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[Internet Explorer]]></category>
			<category><![CDATA[XHTML]]></category>
			<description><![CDATA[<p>
Peut-être comme moi, vous venez de découvrir Internet Explorer 8 et que ce dernier est un " peu " plus compatible que Internet Explorer 7... Toutefois, certaines pages fonctionnent mal vu la quantité de patch CSS appliqués pour fixer les soucis de IE7, IE6, etc...
</p>

<p>
Microsoft a donc pensé à tout ! Il nous a sorti une balise META qui permet d'indiquer à Internet Explorer 8 la version du moteur graphique à utiliser. Pour forcer un rendu IE7 et non IE8, il suffit d'injecter la META ci-dessous :
</p>

<pre>
&lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /&gt;
</pre>

<p>
<em>Chose assez amusante, on pourrait croire que le site officiel de Microsoft est parfaitement compatible Internet Explorer 8, et qu'il n'a pas du tout besoin de cette META... et bien il n'en est rien, leur code source contient aussi la dite balise ! " Vive Microsoft ! "</em>
</p>
<p>
<em>Pendant ce temps, on doit toujours faire attention à Internet Explorer 6, utilisé par environ 1/4 des surfeurs du Web... Heureusement, ce chiffre baisse de mois en mois.</em>
</p>

<p>
Documentation MSDN :<br />
&bull; http://msdn.microsoft.com/en-us/library/cc817574.aspx
</p>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2009-03-24%2F&title=Internet+Explorer+8%2C+la+nouvelle+croix+du+d%C3%A9veloppeur+web+%28+EmulateIE7+%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2009-03-24/</guid>
		</item>

		<item>
			<title>Cahiers de vacances pour vos méninges ( quiz, php, css, actionscript... )</title>
			<link>http://www.ab-d.fr/date/2008-07-28/</link>
			<pubDate>Mon, 28 Jul 2008 09:09:09 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[XHTML]]></category>
			<category><![CDATA[CSS]]></category>
			<category><![CDATA[ActionScript]]></category>
			<category><![CDATA[Detente]]></category>
			<description><![CDATA[<p>
Les vacances sont là,<br />
Les plages sont pleines de monde,<br />
Les glaces fondent trop vite,<br />
Les bières sont chaudes... <em>( vous sentez le stress monter ? )</em><br />
Et y faut faire les cahiers de vacances de vos chers petits, <em>( encore et toujours )</em><br />
Mais vous, avez-vous pensez aux vôtres ?<br />
Heureusement, votre humble serviteur, Oui ! <em>( en bon tortionnaire que je suis ;-)</em>
</p>  

<p>
Voici une liste de liens avec des petits Quiz sur vos langages de programmation préférées.
</p>

<p>&nbsp;</p>

<ul>
<li>&bull; <a href="http://www.oneplusyou.com/bb/html_quiz" onclick="window.open(this.href); return false;">Quiz HTML</a></li>
<li>&bull; <a href="http://www.oneplusyou.com/bb/css_quiz" onclick="window.open(this.href); return false;">Quiz CSS</a></li>
<li>&bull; <a href="http://www.oneplusyou.com/bb/view2/colors" onclick="window.open(this.href); return false;">Quiz Couleurs <em>( un peu en marge du Quiz CSS )</em></a></li>
<li>&bull; <a href="http://www.w3schools.com/PHP/php_quiz.asp" onclick="window.open(this.href); return false;">Quiz PHP</a></li>
<li>&bull; <a href="http://www.learningactionscript3.com/quizzes/" onclick="window.open(this.href); return false;">Quiz ActionScript</a></li>

<li>&nbsp;</li>
<li>&bull; <a href="http://quiz.alsacreations.com/" onclick="window.open(this.href); return false;">Encore des Quiz sur le XHTML, CSS, JS, PHP</a></li>

<li>&bull; <a href="http://www.01net.com/quizz/quizz.php?idquizz=50" onclick="window.open(this.href); return false;">Et enfin, juste pour le plaisir : Parlez-vous geek ?</a></li>

</ul>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-07-28%2F&title=Cahiers+de+vacances+pour+vos+m%C3%A9ninges+%28+quiz%2C+php%2C+css%2C+actionscript...+%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-07-28/</guid>
		</item>

		<item>
			<title>Firefox 3 et input type=file Nouvelle Formule ! ( upload, path, nsIDOMFile )</title>
			<link>http://www.ab-d.fr/date/2008-07-12/</link>
			<pubDate>Sat, 12 Jul 2008 08:40:04 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[Firefox]]></category>
			<category><![CDATA[Javascript]]></category>
			<category><![CDATA[XHTML]]></category>
			<category><![CDATA[DOM]]></category>
			<description><![CDATA[<p>
De bon matin, je me lève, j'arrive sur une de mes applications en ligne, et là horreur ! cette dernière ne fonctionne plus sous Mozilla Firefox 3... Après analyse des petits messages d'erreurs, je me rends à l'évidence le formulaire <code>&lt;input type="file" /&gt;</code> ne se comporte plus de la même façon...
</p>

<p>
Les développeurs de Firefox 3 ont corrigé une petite faille de sécurité : Lorsque vous cliquez sur le bouton <strong>Parcourir</strong> le <code>value</code> de votre zone <code>input type="file"</code> contenait le nom du fichier ainsi que son chemin sur le disque dur, et bien aujourd'hui cela n'est plus, vous n'aurez plus que le nom du fichier.<br />
<em>D'ailleurs, Opera Browser se comporte aussi de la sorte, pour le moment Microsoft Internet Explorer et Apple Safari retournent toujours le chemin complet du fichier.</em>
</p>

<p>
Une très bonne nouvelle s'accompagne de ce petit changement, vous pouvez à présent accéder aux données du fichier sélectionné par l'utilisateur en Javascript sans poster le formulaire grâce à l'objet <code>FileList</code>. 
</p>

<p>
Un exemple vaut mieux qu'un long discours, voici une page qui vous permettra d'essayer cette nouvelle fonctionnalité (<em>qui je le rappelle, ne fonctionne que sur Mozilla Firefox 3</em>) :
</p>

<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
	&lt;title&gt;input type=file &amp; Firefox 3&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
	
&lt;h1&gt;input type=file &amp; Firefox 3&lt;/h1&gt;
	
&lt;script type="text/javascript"&gt;
// &lt;![CDATA[

function inputFileOnChange() {
	var v_console = '';
	v_console += 'value: ' + document.getElementById('fichier').value;
	v_console += '&lt;br \/&gt;';
	
	if(document.getElementById('fichier')<strong>.files</strong>) {
		// Support: nsIDOMFile, nsIDOMFileList
		v_console += 'files.length: ' + document.getElementById('fichier')<strong>.files.length</strong>;
		v_console += '&lt;br \/&gt;';
		
		v_console += 'fileName: ' + document.getElementById('fichier')<strong>.files.item(0).fileName</strong>;
		v_console += '&lt;br \/&gt;';
		
		v_console += 'fileSize: ' + document.getElementById('fichier')<strong>.files.item(0).fileSize</strong>;
		v_console += '&lt;br \/&gt;';
		
		v_console += 'data: ' + document.getElementById('fichier')<strong>.files.item(0).getAsDataURL()</strong>;
//		v_console += 'data: ' + document.getElementById('fichier')<strong>.files.item(0).getAsBinary()</strong>;
//		v_console += 'data: ' + document.getElementById('fichier')<strong>.files.item(0).getAsText()</strong>;
		v_console += '&lt;br \/&gt;';
	};
	
	document.getElementById('console').innerHTML = v_console;
};

// ]]&gt;
&lt;/script&gt;
	
&lt;div&gt;
	&lt;input type="file" name="fichier" id="fichier" onchange="inputFileOnChange();" /&gt;
	&lt;br /&gt;&lt;br /&gt;
	&lt;code id="console"&gt;...console...&lt;/code&gt;
&lt;/div&gt;
	
&lt;/body&gt;
&lt;/html&gt;

</pre>

<p>Documentation officielle :<br />
&bull; <a href="http://developer.mozilla.org/en/docs/nsIDOMFile">http://developer.mozilla.org/en/docs/nsIDOMFile</a><br />
&bull; <a href="http://developer.mozilla.org/en/docs/nsIDOMFileList">http://developer.mozilla.org/en/docs/nsIDOMFileList</a><br />
&bull; <a href="http://www.w3.org/TR/file-upload/">http://www.w3.org/TR/file-upload/</a><br />
</p>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-07-12%2F&title=Firefox+3+et+input+type%3Dfile+Nouvelle+Formule+%21+%28+upload%2C+path%2C+nsIDOMFile+%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-07-12/</guid>
		</item>

		<item>
			<title>Désactiver la saisie semi-automatique dans un input text ( autocomplete )</title>
			<link>http://www.ab-d.fr/date/2008-06-14/</link>
			<pubDate>Sat, 14 Jun 2008 00:07:08 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[Javascript]]></category>
			<category><![CDATA[XHTML]]></category>
			<description><![CDATA[<p>
Votre site comporte peut être des formulaires avec des zones <code>&lt;input type="text" /&gt;</code>, mais le navigateur soucieux d'assister l'utilisateur, pollue vos formulaires avec de la saisie semi-automatique...
</p>
<p>
Comment remédier à ce problème et surtout comment désactiver cette saisie semi-automatique ? Il "suffit" d'utiliser l'attribut <code>autocomplete</code>.
</p>
<pre>
&lt;input type="text" name="zone_texte" value="" autocomplete="off" /&gt;
</pre>
<p>
J'ai pu testé avec succès cet attribut sur les différents navigateurs du moment : Microsoft Internet Explorer, Mozilla Firefox, et Apple Safari (webkit). Toutefois, cet attribut <code>autocomplete</code> écrit de manière brute dans le code source de votre page n'est ni valide en HTML, ni valide en XHTML. Pour fixer ce petit soucis, vous pouvez initialiser l'attribut avec du Javascript au moyen de la méthode <code>setAttribute</code>.
</p>

<p>
Voici un exemple de code Javascript qui désactivera totalement la saisie semi-automatique dans vos formulaires HTML :
</p>
<pre>
&lt;script type="text/javascript"&gt;

window.onload = function() {
	for(var i = 0, l = document.getElementsByTagName('input').length; i &lt; l; i++) {
		if(document.getElementsByTagName('input').item(i).type == 'text') {
			document.getElementsByTagName('input').item(i).setAttribute('autocomplete', 'off');
		};
	};
};

&lt;script&gt;

</pre>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-06-14%2F&title=D%C3%A9sactiver+la+saisie+semi-automatique+dans+un+input+text+%28+autocomplete+%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-06-14/</guid>
		</item>

		<item>
			<title>Créer / convertir des adresses de sites internet HTTP en liens cliquables</title>
			<link>http://www.ab-d.fr/date/2008-03-23/</link>
			<pubDate>Sun, 23 Mar 2008 04:03:02 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[PHP]]></category>
			<category><![CDATA[Regex]]></category>
			<category><![CDATA[XHTML]]></category>
			<description><![CDATA[<p>
La fonction ci-dessous vous permet par l'intérmédiaire des expressions régulières de convertir automatiquement les adresses de sites internet <code>http://www.ab-d.fr/</code> en lien actif avec la balise <code>&lt;a href="http://www.ab-d.fr/"  onclick="window.open(this.href); return false;"&gt;http://www.ab-d.fr/&lt;/a&gt;</code>.
</p>
<p>
Accessoirement, la fonction convertit aussi les adresses emails... libre à vous de rajouter d'autres fonctionnalités de remplacement grâce à la fonction <code>preg_replace()</code>.</p>
<pre>
function texte2url($texte) {
	$patterns[0] = '/(https?:\/\/\S+)/i';
	$replacements[0] = '&lt;a href="&#x24;1" onclick="window.open(this.href); return false;"&gt;&#x24;1&lt;/a&gt;';
	
	$patterns[1] = '/(\S+@\S+\.\S+)/i';
	$replacements[1] = '&lt;a href="mailto:&#x24;1"&gt;&#x24;1&lt;/a&gt;';
	
	return preg_replace($patterns, $replacements, $texte);
}

</pre>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-03-23%2F&title=Cr%C3%A9er+%2F+convertir+des+adresses+de+sites+internet+HTTP+en+liens+cliquables"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-03-23/</guid>
		</item>

		<item>
			<title>$_SERVER['PHP_SELF'] et injection de code HTML (création site internet)</title>
			<link>http://www.ab-d.fr/date/2008-03-02/</link>
			<pubDate>Sun, 02 Mar 2008 04:24:24 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[PHP]]></category>
			<category><![CDATA[XHTML]]></category>
			<category><![CDATA[Securite]]></category>
			<description><![CDATA[<p>
Cette faille de sécurité n'est pas nouvelle en soit, mais il est parfois bon de faire un petit rappel. De manière générale, ne faites jamais confiance aux variables <code>$_SERVER</code>, <code>$_COOKIE</code>, mais aussi, <code>$_GET</code>, <code>$_POST</code>, <code>$_REQUEST</code>, <code>$_FILES</code>...
</p>
<p>
Exemple de faille avec <code>&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;</code> dans la page php suivante :
</p>
<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd"&gt;

&lt;html lang="fr"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
	&lt;title&gt;$_SERVER['PHP_SELF']&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" action="post"&gt;
		&lt;fieldset&gt;
			&lt;legend&gt;Ma FORM&lt;/legend&gt;
			&lt;p&gt;&lt;input type="submit"&gt;&lt;/p&gt;
		&lt;/fieldset&gt;
	&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>

<p>Si vous appelez la page ci-dessus avec le lien suivant :</p>
<pre>http://www.monsite.com/page.php/"&gt;&lt;script&gt;alert('Injection!');&lt;/script&gt;</pre>
<p>vous verrez une belle fenêtre de dialogue Javascript "Injection!" ...</p>

<p>Pour remédier à cette faille de sécurité, pensez à toujours sécuriser vos variables avec une fonction du type <code>htmlentities()</code>.</p>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-03-02%2F&title=%24_SERVER%5B%27PHP_SELF%27%5D+et+injection+de+code+HTML+%28cr%C3%A9ation+site+internet%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-03-02/</guid>
		</item>

		<item>
			<title>Rendre ''position: fixed'' compatible Internet Explorer 6 (CSS, expression)</title>
			<link>http://www.ab-d.fr/date/2008-02-11/</link>
			<pubDate>Mon, 11 Feb 2008 18:50:05 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[CSS]]></category>
			<category><![CDATA[Internet Explorer]]></category>
			<category><![CDATA[XHTML]]></category>
			<description><![CDATA[<p>Ce code a pour but de rendre compatible le fameux <code>position : fixed</code> sur Internet Explorer 6 à l'aide de la propriété <code>expression()</code> propre à ce dernier. Cette propriété permet de recalculer dynamiquement le contenu de l'expression <code>expression(...)</code> durant la manipulation de la page, en l'occurrence lors d'un évènement <code>window.onscroll</code>, sans code Javascript additionnel.</p>


<p><br />Page <strong>page-position.html</strong></p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"&gt;
&lt;head&gt;
	&lt;title&gt;Rendre "position: fixed" compatible Microsoft Internet Explorer 6&lt;/title&gt;
	
	
	<em>&lt;!-- Code CSS pour Firefox, Safari, Opera, Internet Explorer 7... --&gt;</em>
	
	&lt;style type="text/css" media="screen"&gt;
		
	#fixed {
		position: fixed;
		left: 0; top: 0; right: 0;
		width: 100%;
		padding: 10px; background: gray;
	}
	
	&lt;/style&gt;
	
	
	<em>&lt;!-- Code CSS pour Internet Explorer 6 --&gt;</em>
	<strong>
	&lt;!--[if lte IE 6]&gt;
	&lt;style type="text/css" media="screen"&gt;
	
	#fixed {
		position: absolute;
		top: expression((document.documentElement.scrollTop || document.body.scrollTop) + this.offsetHeight - this.offsetHeight);
	}
	
	&lt;/style&gt;
	&lt;![endif]--&gt;
	</strong>
	
&lt;/head&gt;

&lt;body&gt;
	
	&lt;div id="fixed"&gt;DIV en position: fixed;&lt;/div&gt;
	
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	&lt;p&gt;Contenu du site internet ...&lt;/p&gt;
	
&lt;/body&gt;

&lt;/html&gt;

</pre>

<p>
<em>UPDATE : Il est important de copier l'intégralité du code avec les balises commentaires propres à Internet Explorer, sinon le fix ne fonctionnera pas !</em>
</p>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-02-11%2F&title=Rendre+%27%27position%3A+fixed%27%27+compatible+Internet+Explorer+6+%28CSS%2C+expression%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-02-11/</guid>
		</item>

		<item>
			<title>Comment créer une variable CSS - Cascading Style Sheets ?</title>
			<link>http://www.ab-d.fr/date/2008-02-06/</link>
			<pubDate>Wed, 06 Feb 2008 18:43:34 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[CSS]]></category>
			<category><![CDATA[PHP]]></category>
			<category><![CDATA[XHTML]]></category>
			<description><![CDATA[<p>
La solution consiste n'ont pas à créer une variable CSS, mais à utiliser PHP pour créer des variables dans le code CSS.
Pour ce faire, nous allons utiliser l'écriture simplifiée de <br />
<code>&lt;?php echo $variable_css; ?&gt;</code> &nbsp; en &nbsp; <code>&lt;?= $variable_css ?&gt;</code> .
</p>

<p><br />Page <strong>page.html</strong></p>
<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"/&gt;
	
	&lt;title&gt;Variable CSS - Cascading Style Sheets&lt;/title&gt;
	&lt;link rel="stylesheet" type="text/css" href="style.php" /&gt;
&lt;/head&gt;

&lt;body&gt;


&lt;h1&gt;Variable CSS - Cascading Style Sheets&lt;/h1&gt;

&lt;p class="color-1"&gt;Bloc de couleur n&deg;1 - Variable CSS Cascading Style Sheets&lt;/p&gt;

&lt;p class="color-2"&gt;Bloc de couleur n&deg;2 - Variable CSS Cascading Style Sheets&lt;/p&gt;

&lt;p class="color-3"&gt;Bloc de couleur n&deg;3 - Variable CSS Cascading Style Sheets&lt;/p&gt;


&lt;/body&gt;

&lt;/html&gt;
</pre>

<p><br />Page <strong>style.php</strong> et non <del>style.css</del></p>
<pre>
&lt;?php
header('Content-Type: text/css');

$color_0 = '#000000';
$color_1 = '#ff0000';
$color_2 = '#ff3300';
$color_3 = '#ff6600';

?&gt;

* { font-family: sans-serif; }

h1 {
	padding: 5px;
	color: &lt;?= $color_0 ?&gt;;
	border: 5px solid &lt;?= $color_2 ?&gt;;
	background-color: &lt;?= $color_3 ?&gt;;
}

p.color-1 { color: &lt;?= $color_1 ?&gt;; }
p.color-2 { color: &lt;?= $color_2 ?&gt;; font-weight: bold; }
p.color-3 { color: &lt;?= $color_3 ?&gt;; font-style: italic; }

</pre>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-02-06%2F&title=Comment+cr%C3%A9er+une+variable+CSS+-+Cascading+Style+Sheets+%3F"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-02-06/</guid>
		</item>

		<item>
			<title>Comment rendre l'attribut target=&quot;_blank&quot; valide en XHTML ?</title>
			<link>http://www.ab-d.fr/date/2007-07-26/</link>
			<pubDate>Thu, 26 Jul 2007 00:00:00 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[XHTML]]></category>
			<category><![CDATA[Javascript]]></category>
			<description><![CDATA[<p>Voici une autre manière d'écrire l'attribut "target" et valide pour la norme XHTML.</p>

<pre>
&lt;a href=&quot;http://www.ab-d.fr/&quot; onclick=&quot;window.open(this.href); return false;&quot;&gt;
</pre>
<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2007-07-26%2F&title=Comment+rendre+l%27attribut+target%3D%22_blank%22+valide+en+XHTML+%3F"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/XHTML/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2007-07-26/</guid>
		</item>

	</channel>
</rss>
