<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blackotine &#187; em</title>
	<atom:link href="http://www.blackotine.fr/tag/em/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blackotine.fr</link>
	<description>Blog d&#039;un intégrateur et développeur Web</description>
	<lastBuildDate>Tue, 24 May 2011 22:50:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Modifier la taille du texte avec CSS,  Javascript et les cookies</title>
		<link>http://www.blackotine.fr/javascript/modifier-la-taille-du-texte-avec-css-javascript-et-les-cookies</link>
		<comments>http://www.blackotine.fr/javascript/modifier-la-taille-du-texte-avec-css-javascript-et-les-cookies#comments</comments>
		<pubDate>Wed, 14 May 2008 02:11:04 +0000</pubDate>
		<dc:creator>nico</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[em]]></category>
		<category><![CDATA[pixels]]></category>
		<category><![CDATA[taille]]></category>
		<category><![CDATA[texte]]></category>

		<guid isPermaLink="false">http://www.blackotine.fr/?p=7</guid>
		<description><![CDATA[Préambule Un bouton permettant de modifier la taille du texte d&#8217;une page semble à première vue sans intérêt car il s&#8217;agit d&#8217;une fonctionnalité classique de tous les navigateurs De plus, comment une personne ayant un handicap visuel, et qui pourrait donc trouver ce bouton utile, peut elle localiser facilement celui-ci ? Sans compter, que ces [...]]]></description>
			<content:encoded><![CDATA[<h3>Préambule</h3>
<p>Un bouton permettant de modifier la taille du texte d&#8217;une page semble à première vue sans intérêt car il s&#8217;agit d&#8217;une fonctionnalité classique de tous les navigateurs</p>
<p>De plus, comment une personne ayant un handicap visuel, et qui pourrait donc trouver ce bouton utile, peut elle localiser facilement celui-ci ? Sans compter, que ces personnes naviguent tout le temps avec un affichage adapté à leur handicap et qu&#8217;il n&#8217;attendent pas que les sites proposent de tels gadgets mais que , par exemple, toutes les tailles de polices soient exprimées de façon relative, en &laquo;&nbsp;em&nbsp;&raquo;.<br />
<span id="more-7"></span><br />
Voilà mon avis, mais toujours est-il que des clients peuvent (malgré nos recommandations) trouver cette fonction &laquo;&nbsp;intéressante&nbsp;&raquo; et demande à ce qu&#8217;elle soit intégré au site.</p>
<h3>Choix de la technique</h3>
<p>Deux solutions à ma connaissance :</p>
<ul>
<li>Créer des feuilles de styles avec différentes tailles de polices (feuilles de style alternatives)</li>
<li>Spécifier des tailles de polices relatives et modifier uniquement celle du conteneur</li>
</ul>
<p>Ces deux solutions utilisent Javascript et CSS et on peut envisager d&#8217;ajouter la &laquo;&nbsp;sauvegarde&nbsp;&raquo; du choix de la taille avec les Cookies.</p>
<p>J&#8217;ai choisi la deuxième solution qui me semble plus souple car aucune feuille de style supplémentaire ne sera créée.</p>
<p>Par contre si Javascript n&#8217;est pas activé, il ne se passe rien. SI les cookies sont désactivés on perd la taille choisie. Ces deux points ne me semble pas bloquants, ces deux boutons n&#8217;étant que des doublons des fonctionnalité du navigateur.</p>
<h3>Les unités relatives</h3>
<p>Si toutes vos unités sont fixes et que vous débutez avec les unités relatives en &laquo;&nbsp;em&nbsp;&raquo;, je vous conseille cet aticle : <a href="http://www.pompage.net/pompe/definir-des-tailles-de-polices-en-CSS/">Définir des tailles de police dynamiques cohérentes avec CSS</a>.</p>
<h3>Le code</h3>
<p>Code javascript :</p>
<pre class="brush: javascript">function fontSize(action) {
  var nb = .1;
  var conteneur = &#039;article&#039;;
  if (action==&#039;+&#039;) {
	if (eval(document.getElementById(conteneur).style.fontSize.substring(0,document.getElementById(conteneur).style.fontSize.lastIndexOf(&#039;em&#039;)))&amp;amp;lt;2) {
    document.getElementById(conteneur).style.fontSize = eval(document.getElementById(conteneur).style.fontSize.substring(0,document.getElementById(conteneur).style.fontSize.lastIndexOf(&#039;em&#039;))) + nb + &#039;em&#039;;
    }
  } else if (eval(document.getElementById(conteneur).style.fontSize.substring(0,document.getElementById(conteneur).style.fontSize.lastIndexOf(&#039;em&#039;)))&amp;amp;gt;1) {
    document.getElementById(conteneur).style.fontSize = eval(document.getElementById(conteneur).style.fontSize.substring(0,document.getElementById(conteneur).style.fontSize.lastIndexOf(&#039;em&#039;))) - nb + &#039;em&#039;;
  }
  EcrireCookie(&amp;quot;fontsize&amp;quot;,eval(document.getElementById(conteneur).style.fontSize.substring(0,document.getElementById(conteneur).style.fontSize.lastIndexOf(&#039;em&#039;))));
}
function EcrireCookie(nom, valeur) {
  var argv=EcrireCookie.arguments;
  var argc=EcrireCookie.arguments.length;
  var expires=(argc &amp;amp;gt; 2) ? argv[2] : null;
  var path=(argc &amp;amp;gt; 3) ? argv[3] : null;
  var domain=(argc &amp;amp;gt; 4) ? argv[4] : null;
  var secure=(argc &amp;amp;gt; 5) ? argv[5] : false;
  document.cookie=nom+&amp;quot;=&amp;quot;+escape(valeur)+
  ((expires==null) ? &amp;quot;&amp;quot; : (&amp;quot;; expires=&amp;quot;+expires.toGMTString()))+
  ((path==null) ? &amp;quot;&amp;quot; : (&amp;quot;; path=&amp;quot;+path))+
  ((domain==null) ? &amp;quot;&amp;quot; : (&amp;quot;; domain=&amp;quot;+domain))+
  ((secure==true) ? &amp;quot;; secure&amp;quot; : &amp;quot;&amp;quot;);
}</pre>
<p>Il y a deux variables modifiables dans cette fonction :<br />
- L&#8217;identifiant du conteneur : <em>conteneur</em><br />
c&#8217;est la taille de police de cet élément qui va être modifié, ces éléments enfants étant exprimé en &laquo;&nbsp;em&nbsp;&raquo;, ils le seront aussi.<br />
- le nombre <em>nb</em> de &laquo;&nbsp;em&nbsp;&raquo; à ajouter ou diminuer à chaque clic.</p>
<p>Code html :</p>
<pre class="brush: html">&amp;lt;a title=&amp;quot;Augmenter la taille du texte&amp;quot; onclick=&amp;quot;fontSize(&#039;+&#039;);return false;&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;Abc +&amp;lt;/a&amp;gt;
&amp;lt;a title=&amp;quot;Diminuer la taille du texte&amp;quot; onclick=&amp;quot;fontSize(&#039;-&#039;);return false;&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;abc -&amp;lt;/a&amp;gt;</pre>
<p>J&#8217;ai limité la taille maximum à 2em et la taille minimum à 1em.</p>
<a href='http://twitter.com/share?url=http%3A%2F%2Fwww.blackotine.fr%2F%3Fp%3D7&count=horizontal&related=&text=Modifier%20la%20taille%20du%20texte%20avec%20CSS%2C%20%20Javascript%20et%20les%20cookies' class='twitter-share-button' data-text='Modifier la taille du texte avec CSS,  Javascript et les cookies' data-url='http://www.blackotine.fr/?p=7' data-counturl='http://www.blackotine.fr/javascript/modifier-la-taille-du-texte-avec-css-javascript-et-les-cookies' data-count='horizontal' data-via='scarpopo'></a>]]></content:encoded>
			<wfw:commentRss>http://www.blackotine.fr/javascript/modifier-la-taille-du-texte-avec-css-javascript-et-les-cookies/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

