<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.pabloprieto.net/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Pablo Prieto - Blog - internet explorer</title>
  <link>http://blog.pabloprieto.net/index.php/</link>
  <description>&quot;Faire des sites web c'est pas facile tous les jours&quot;</description>
  <language>fr</language>
  <pubDate>Sun, 09 Nov 2008 05:45:06 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Les bugs d'IE7</title>
    <link>http://blog.pabloprieto.net/index.php/post/2006/11/06/Les-bugs-dIE7</link>
    <guid isPermaLink="false">urn:md5:3eb58903b823c942c44b09fbc2753882</guid>
    <pubDate>Mon, 06 Nov 2006 10:05:00 +0100</pubDate>
    <dc:creator>Pab.</dc:creator>
        <category>Conception HTML et CSS</category>
        <category>css</category><category>internet explorer</category>    
    <description>    Il n'aura pas fallu longtemps avant de découvrir qu'IE7 avait lui aussi quelques petits problèmes d'interprétation, notamment en matière de DOM et CSS... plusieurs sites recensent déjà les bugs spécifiques à cette version :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/&quot;&gt;http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://css-discuss.incutio.com/?page=IE7&quot;&gt;http://css-discuss.incutio.com/?page=IE7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.quirksmode.org/bugreports/archives/explorer_7_beta_2/index.html&quot;&gt;http://www.quirksmode.org/bugreports/archives/explorer_7_beta_2/index.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Ces quelques liens sont donc à garder sous le coude en cas de désaccord profond entre IE7 et les autres.&lt;br /&gt;&lt;br /&gt;Alors attention, IE7 reste néanmoins une grande avancée par rapport à son prédécesseur, et certain de ces bugs CSS listés dans cette page ne sont pas très critiques, c'est à dire qu'on a peu de chance de les croiser tous les jours (à la différence d'un peekaboo bug par exemple sous IE6). Bref si vous voulez mon avis, &lt;strong&gt;IE7 est un bon navigateur&lt;/strong&gt; même si il a ses limites, comme les autres ;)&lt;br /&gt;</description>
    
    
    
          <comments>http://blog.pabloprieto.net/index.php/post/2006/11/06/Les-bugs-dIE7#comment-form</comments>
      <wfw:comment>http://blog.pabloprieto.net/index.php/post/2006/11/06/Les-bugs-dIE7#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.pabloprieto.net/index.php/feed/rss2/comments/12</wfw:commentRss>
      </item>
    
  <item>
    <title>De l'art d'insérer une animation Flash</title>
    <link>http://blog.pabloprieto.net/index.php/post/2006/09/20/De-lart-dinserer-une-animation-Flash</link>
    <guid isPermaLink="false">urn:md5:e81f47ae5572f11545f8126f8c1eb720</guid>
    <pubDate>Wed, 20 Sep 2006 12:03:00 +0200</pubDate>
    <dc:creator>Pab.</dc:creator>
        <category>Conception HTML et CSS</category>
        <category>active content</category><category>flash</category><category>internet explorer</category><category>swfobject</category>    
    <description>&lt;p&gt;Détection du plugin, contenu alternatif, &quot;Active Content&quot;... vouloir simplement mais proprement insérer une animation Flash dans sa page relève aujourd'hui du parcours du combattant...&lt;/p&gt;    &lt;h3&gt;La méthode &quot;classique&quot;&lt;/h3&gt;


&lt;p&gt;Voici le code que nous propose Flash lorsque il génère une page html pour contenir notre animation&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;object classid=&amp;quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&amp;quot; codebase=&amp;quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&amp;quot; width=&amp;quot;550&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;
&amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;sameDomain&amp;quot; /&amp;gt;
&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;animation.swf&amp;quot; /&amp;gt;
&amp;lt;embed src=&amp;quot;animation.swf&amp;quot; width=&amp;quot;550&amp;quot; height=&amp;quot;400&amp;quot; allowScriptAccess=&amp;quot;sameDomain&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; pluginspage=&amp;quot;http://www.macromedia.com/go/getflashplayer&amp;quot; /&amp;gt;
&amp;lt;/object&amp;gt;
&lt;/pre&gt;


&lt;p&gt;On s'est donc depuis toujours contenté de ce code, pour la simple raison que ça fonctionne. Mais il pose un problème de taille&amp;nbsp;: il n'est pas du tout compatible XHTML 1.0 Strict, la faute à l'élément obsolète embed, crée par Netscape à la bonne époque.&lt;/p&gt;


&lt;h3&gt;La méthode &quot;Flash Satay&quot;&lt;/h3&gt;


&lt;p&gt;Pour palier à ce problème, Drew McLellan a publié en 2002 (déjà...) un article sur A List Apart intitulé &lt;a href=&quot;http://www.alistapart.com/articles/flashsatay/&quot; hreflang=&quot;en&quot;&gt;&quot;Flash Satay: Embedding Flash While Supporting Standards&quot;&lt;/a&gt;. Voici le code correspondant à sa méthode&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;animation.swf&amp;quot; width=&amp;quot;550&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;
&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;animation.swf&amp;quot; /&amp;gt;
Contenu alternatif
&amp;lt;/object&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Cette méthode repose donc sur l'utilisation exclusive de l'élément object, en conformité avec la norme XHTML Strict. Autre avantage, le contenu alternatif est inclus directement à l'intérieur de l'élément, dans le cas ou le navigateur se trouve incapable de lire l'animation.&lt;/p&gt;


&lt;p&gt;Génial donc... pas tout à fait malheureusement&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cette méthode empêche Internet Explorer de lire l'animation en chargement progressif, c'est à dire qu'il attend que celle-ci soit complètement chargée avant de pouvoir la lire, plutôt embêtant donc pour des animation &quot;lourdes&quot;.&lt;/li&gt;
&lt;li&gt;Le contenu alternatif n'est pas lu par JAWS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour le premier point, on peux bien contourner le problème en chargeant un premier Flash vide (donc léger) qui chargera ensuite l'animation principale avec la fonction loadMovie, mais appliquer ce principe à chaque fois est plutôt rébarbatif.&lt;/p&gt;


&lt;p&gt;Comme si ça ne suffisait pas, il faut depuis peu prendre en compte &lt;strong&gt;l'activation des contenus actifs&lt;/strong&gt; sous Internet Explorer. Kezako&amp;nbsp;? Suite à une sombre histoire de procès, le contenu actif (animations Flash, mais aussi applets Java, films Quicktime, etc...) ne sera pas interactif (il ne sera pas réceptif aux événements souris ou clavier, par exemple) tant que l'utilisateur n'aura pas cliqué une première fois pour activer le contrôle.&lt;/p&gt;


&lt;h3&gt;Passer par javascript&lt;/h3&gt;


&lt;p&gt;La seule solution pour contourner ce problème, et rendre les animations directement utilisables sous Internet Explorer, est de passer par du javascript pour insérer notre animation. Adobe a notamment proposé sa solution, &lt;a href=&quot;http://www.adobe.com/fr/devnet/activecontent/articles/devletter.html&quot; hreflang=&quot;fr&quot;&gt;disponible ici&lt;/a&gt;, Microsoft en propose &lt;a href=&quot;http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp&quot; hreflang=&quot;en&quot;&gt;une autre là&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;SWFObject&lt;/h3&gt;


&lt;p&gt;Au delà de ces solutions est apparue &lt;a href=&quot;http://blog.deconcept.com/swfobject/&quot; hreflang=&quot;en&quot;&gt;SWFObject&lt;/a&gt; (anciennement FlashObject, mais Adobe n'a pas aimé l'utilisation du terme &quot;Flash&quot;...) qui combine très bien les différentes solutions à tous ces problèmes&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C'est également une solution Javascript, donc ça règle le souci de l'Active content sous IE&lt;/li&gt;
&lt;li&gt;De ce fait, c'est compatible XHTML&lt;/li&gt;
&lt;li&gt;Le flash vient dynamiquement remplacer un bloc HTML que l'on détermine dans la page et détecte la version du plugin Flash. Si celui-ci n'est pas installé ou la version n'est pas suffisante, le contenu HTML reste affiché comme contenu alternatif.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Après quelques tests, c'est une solution fiable et la plus simple à utiliser. Le script principal fait une dizaine de ko, ce qui reste très raisonnable.&lt;/p&gt;


&lt;p&gt;Bien sur on continue de passer par du Javascript, seul moyen d'éviter l'activation sous IE. Si celui-ci est désactivé, alors le contenu alternatif s'affichera même si l'internaute dispose de Flash. Mais on est bien aujourd'hui obligé de faire ce choix.&lt;/p&gt;


&lt;p&gt;SWFObject est &lt;a href=&quot;http://blog.deconcept.com/swfobject/&quot; hreflang=&quot;en&quot;&gt;displonible ici&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.pabloprieto.net/index.php/post/2006/09/20/De-lart-dinserer-une-animation-Flash#comment-form</comments>
      <wfw:comment>http://blog.pabloprieto.net/index.php/post/2006/09/20/De-lart-dinserer-une-animation-Flash#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.pabloprieto.net/index.php/feed/rss2/comments/9</wfw:commentRss>
      </item>
    
  <item>
    <title>Les nouveautés d'IE7</title>
    <link>http://blog.pabloprieto.net/index.php/post/2006/08/23/Les-nouveautes-dIE7</link>
    <guid isPermaLink="false">urn:md5:b32356d85f25a2cc78537e9a9fb2f01b</guid>
    <pubDate>Wed, 23 Aug 2006 18:15:00 +0200</pubDate>
    <dc:creator>Pab.</dc:creator>
        <category>Conception HTML et CSS</category>
        <category>internet explorer</category>    
    <description>    &lt;p&gt;Finalement, la IE team de chez Microsoft vient de publier &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2006/08/22/712830.aspx&quot; hreflang=&quot;en&quot;&gt;la liste complète&lt;/a&gt; des améliorations et corrections du prochain IE7. Ils reconnaissent eux-même qu'il reste pas mal de boulot mais la longueur de la liste fait tout de même plaisir ;)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.pabloprieto.net/index.php/post/2006/08/23/Les-nouveautes-dIE7#comment-form</comments>
      <wfw:comment>http://blog.pabloprieto.net/index.php/post/2006/08/23/Les-nouveautes-dIE7#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.pabloprieto.net/index.php/feed/rss2/comments/8</wfw:commentRss>
      </item>
    
  <item>
    <title>IE6 et PNG, je t'aime moi non plus</title>
    <link>http://blog.pabloprieto.net/index.php/post/2006/08/07/IE6-et-PNG-je-taime-moi-non-plus</link>
    <guid isPermaLink="false">urn:md5:741dceef9a1fb0012abc00d2362408da</guid>
    <pubDate>Mon, 07 Aug 2006 09:54:00 +0200</pubDate>
    <dc:creator>Pab.</dc:creator>
        <category>Conception HTML et CSS</category>
        <category>css</category><category>internet explorer</category><category>png</category>    
    <description>&lt;p&gt;Malgré le bug d'IE6 empêchant l'affichage des PNG transparents (32 bits) il existe quelques solutions de contournement. Je vais essayer de rassembler dans ce billet les différents techniques utilisées, en insistant sur leur fiabilité dans la pratique, si vous décidez de les utiliser dans le cadre d'un projet professionnel.&lt;/p&gt;    &lt;h3&gt;Cas d'un PNG dans une CSS (en image de fond)&lt;/h3&gt;


&lt;p&gt;Cette technique fonctionne à 2 conditions&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;le bloc recevant l'image de fond doit être positionné &lt;strong&gt;en absolute&lt;/strong&gt; ou avoir &lt;strong&gt;ses propriétés width ou height fixées&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;l'image ne peut être &lt;strong&gt;ni répétée ni positionnée&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Voici un bloc auquel nous allons appliquer un png en image de fond&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;div id=&amp;quot;test&amp;quot;&amp;gt;	
	&amp;lt;ul&amp;gt;
		&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Item 1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
		&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Item 2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
		&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Item 3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;/ul&amp;gt;		
&amp;lt;/div&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Voici ensuite le code CSS&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#test{
	width:400px;
	background: url(&amp;quot;fond.png&amp;quot;) no-repeat  0 0;
}
&lt;/pre&gt;


&lt;p&gt;Pour IE, grâce aux &lt;a href=&quot;http://www.blog-and-blues.org/articles/Les_syntaxes_de_commentaires_conditionnels_pour_IE_Windows&quot; hreflang=&quot;fr&quot;&gt;commentaires conditionnels&lt;/a&gt;, nous allons ensuite annuler l'image de fond et appliquer la propriété &lt;code&gt;filter&lt;/code&gt; à la place&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;!--[if lt IE 7]&amp;gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;
#test{
	background-image: none;
	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fond.png', sizingMethod='crop');
}
&amp;lt;/style&amp;gt;		
&amp;lt;![endif]--&amp;gt;
&lt;/pre&gt;


&lt;p&gt;la propriété sizingMethod peut recevoir comme valeur 'image', 'scale' ou 'crop'. La valeur 'scale' ajuste les dimensions de l'image à la taille du bloc, pour plus de détail je vous invite à consulter &lt;a href=&quot;http://msdn.microsoft.com/workshop/author/filter/reference/filters/alphaimageloader.asp&quot; hreflang=&quot;en&quot;&gt;la doc officielle chez Microsoft&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Bizarrement, l'url de l'image dans la propriété filter &lt;strong&gt;doit être relative à la page html&lt;/strong&gt;, et non à la feuille de style, pensez-y si les 2 fichiers ne sont pas au même niveau.&lt;/p&gt;


&lt;h4&gt;Un problème de liens...&lt;/h4&gt;


&lt;p&gt;Vous allez maintenant vous rendre compte que les liens à l'intérieur de notre bloc ne fonctionnent pas... plutôt bloquant.&lt;/p&gt;


&lt;p&gt;Pour y remédier, il faut alors rajouter la propriété &lt;code&gt;position:relative&lt;/code&gt; aux liens&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;!--[if lt IE 7]&amp;gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;
#test{
	background-image: none;
	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fond.png', sizingMethod='crop');
}	
#test a{
	position:relative;
}
&amp;lt;/style&amp;gt;		
&amp;lt;![endif]--&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Et voilà, les liens redeviennent cliquables.&lt;/p&gt;



&lt;h3&gt;Cas d'une image dans le corps de page&lt;/h3&gt;


&lt;p&gt;Ici une seule condition&amp;nbsp;: les attributs width et height de l'image doivent être fixés.&lt;/p&gt;


&lt;p&gt;Le principe consiste à remplacer l'image par un gif transparent et lui appliquer en fond le png grâce à l'attribut filter ci-dessus. Ce comportement peut être automatisé grâce à un fichier htc (à télécharger en annexe). On applique simplement ce comportement aux images, avec la propriété CSS behavior&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
img{
	behavior: url(&amp;quot;png.htc&amp;quot;);
}
&lt;/pre&gt;


&lt;p&gt;pour affiner la chose, on peut choisir de l'utiliser dans une classe&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
img.png{
	behavior: url(&amp;quot;png.htc&amp;quot;);
}
&lt;/pre&gt;

&lt;pre&gt;
&amp;lt;img src=&amp;quot;image.png&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot; alt=&amp;quot;&amp;quot; class=&amp;quot;png&amp;quot; /&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Placez de préférence les fichiers png.htc et blank.gif au même endroit que votre page html. Ici encore, l'url du fichier htc doit être relative à la page html, et non à la feuille de style.&lt;/p&gt;


&lt;p&gt;Bien évidement, &lt;code&gt;behavior&lt;/code&gt; et &lt;code&gt;filter&lt;/code&gt; ne sont pas des propriétés valides. Encore une fois utilisez les commentaires conditionnels ;)&lt;/p&gt;


&lt;p&gt;Pour conclure, je vous conseille de rester prudent avec ces techniques sur des projets sensibles (et des clients pointilleux... ;) ), et prenez le temps de tester &quot;en conditions réelles&quot; avant de vous prononcer sur la faisabilité.&lt;/p&gt;</description>
    
          <enclosure url="http://blog.pabloprieto.net/public/iepng_burnyourbrowser.zip"
      length="6868" type="application/zip" />
    
    
          <comments>http://blog.pabloprieto.net/index.php/post/2006/08/07/IE6-et-PNG-je-taime-moi-non-plus#comment-form</comments>
      <wfw:comment>http://blog.pabloprieto.net/index.php/post/2006/08/07/IE6-et-PNG-je-taime-moi-non-plus#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.pabloprieto.net/index.php/feed/rss2/comments/2</wfw:commentRss>
      </item>
    
</channel>
</rss>