5160 sujets

Le Bar du forum

Bonjour,

J'aimerais faire un retour sur cet article, notamment parce que certains points n'ont pas été traités et qu'il serait important de les considérer si l'on compte utiliser SVG.

Premièrement, peut-être un lien vers caniuse parce que certaines manière d'incorporer un SVG à sa page sont moins largement supportées dans les anciennes versions de certains navigateurs modernes (via la balise img entre autre).

Ensuite, il serait bon de noter que Firefox bogue si on change la taille d'un svg dont les dimensions sur la balise <svg> sont indiqués en pixels (c'est le cas sur tous les exemples de l'article). Voilà un exemple de ce bug: http://dabblet.com/gist/3751671 (c'est sensé être un triangle, mais pas sous Firefox Smiley langue )

Également, il est dit dans l'article qu'on ne peut pas utiliser de lien via la balise object. En fait, c'est totalement possible avec SVG en utilisant xlink. La méthode est sans aucun doute difficilement maintenable, mais c'est possible !

Et finalement, il faudrait réviser le code source fournit Smiley cligne . Présentement c'est inscrit:


<a href="#img_modernizr_js_remplacement_nojs">
   <noscript><img class="logo" src="logo.png" width="186" height="235" alt="Logo Geeks and the City" /></noscript>
</a>



if(Modernizr.svg) {
   $('#img_modernizr_js_remplacement_nojs .header a').html('<img class="logo" src="logo.svg" width="186" height="235" alt="Logo Geeks and the City"/>');
}
else {
   $('#img_modernizr_js_remplacement_nojs .header a').html('<img class="logo" src="logo.png" width="186" height="235" alt="Logo Geeks and the City">');
}


Donc, il semble y avoir un problème avec le `id` et le `href` et des éléments ésotérique sont apparut au sein du sélecteur jQuery (`.header a` ?). Finalement, les `id` n'était assignable qu'à un élément unique, j'aurais probablement opté pour une technique plus robuste considérant que plusieurs lecteurs du site n'ont pas encore un excellent niveau en javascript et qu'il faudrait considérer être un meilleur exemple pour nos débutants Smiley biggrin

Voilà !
C'est dans Firefox Windows uniquement. Smiley cligne

Vaxilart, il faudrait peut-être signaler ce bug à Mozilla non?
Vaxilart a écrit :
Bonjour,

J'aimerais faire un retour sur cet article, notamment parce que certains points n'ont pas été traités et qu'il serait important de les considérer si l'on compte utiliser SVG.


Yeah merci Smiley smile
Vaxilart a écrit :

Également, il est dit dans l'article qu'on ne peut pas utiliser de lien via la balise object. En fait, c'est totalement possible avec SVG en utilisant xlink. La méthode est sans aucun doute difficilement maintenable, mais c'est possible !

Il n'est pas dit qu'on peut pas mettre de lien avec object, ont peut, mais si on encapsule le lien autour de l'object dans le HTML il ne sera pas correctement cliquable sur le logo. J'avais vu qu'on pouvait ajouter du lien directement dans le code SVG (du coup la technique n'est pas uniquement pour object) mais comme tu le dis, ça manque de flexibilité.
L'idée de "base" quand j'ai écrit le tutoriel était de mettre un logo SVG généré par un designer dans Illustrator dans WordPress. Du coup je voulais quelque chose de "flexible" et éviter un lien dans le code SVG pour une raison très simple : je travaille en localhost, et les sites créés ne vont pas forcement finir sur mon site mais chez des clients dont j'ignore l'url pour le moment. Je rajoute ton lien dans l'article à titre d'info.

Vaxilart a écrit :

Et finalement, il faudrait réviser le code source fournit Smiley cligne . Présentement c'est inscrit:


&lt;a href=&quot;#img_modernizr_js_remplacement_nojs&quot;&gt;
   &lt;noscript&gt;&lt;img class=&quot;logo&quot; src=&quot;logo.png&quot; width=&quot;186&quot; height=&quot;235&quot; alt=&quot;Logo Geeks and the City&quot; /&gt;&lt;/noscript&gt;
&lt;/a&gt;



if(Modernizr.svg) {
   $('#img_modernizr_js_remplacement_nojs .header a').html('&lt;img class=&quot;logo&quot; src=&quot;logo.svg&quot; width=&quot;186&quot; height=&quot;235&quot; alt=&quot;Logo Geeks and the City&quot;/&gt;');
}
else {
   $('#img_modernizr_js_remplacement_nojs .header a').html('&lt;img class=&quot;logo&quot; src=&quot;logo.png&quot; width=&quot;186&quot; height=&quot;235&quot; alt=&quot;Logo Geeks and the City&quot;&gt;');
}


Donc, il semble y avoir un problème avec le `id` et le `href` et des éléments ésotérique sont apparut au sein du sélecteur jQuery (`.header a` ?). Finalement, les `id` n'était assignable qu'à un élément unique, j'aurais probablement opté pour une technique plus robuste considérant que plusieurs lecteurs du site n'ont pas encore un excellent niveau en javascript et qu'il faudrait considérer être un meilleur exemple pour nos débutants Smiley biggrin
Voilà !


Euh, j'ai pas tout compris là désolé. Quel est le souci exacte avec les ID ? Je précise que le #img_modernizr_js_remplacement_nojs lien du a est simplement une ancre, pour la démo (et pas mettre une fake url, tant qu'à mettre un lien qu'il soit utile). La démo étant en une seule page le lien permet de pouvoir facilement renvoyer à des endroits du tutoriel. Rien à voir avec l'id de la div qui le contient, qui elle doit être unique.
C'est peut-être un peu confus du coup, tout le code de la démo est en un seul fichier ^^ Il faut partir du principe que chaque démo est un exemple à part encapsulé dans la div .test (d'où les plusieurs headers sur la page).
La partie .header a est peut-être un poil redondant effectivement mais là encore elle sert là aussi "juste" à la démo. Si je ne mets pas le .header, le script va me remplacer tous les logo.svg qui se trouvent dans une balise a, donc ceux dans la partie de syntaxe highlighting. J'aurai peut-être du faire un fichier par démo Smiley ohwell

Par contre je ne suis pas d'accord sur le fait qu'il ne faille pas utiliser d'ID, si l'idée n'est de remplacer que le logo du header, un ID permet de ne cible que celui là. Si il y a bien un truc qui sera unique, c'est un logo. Si on veut pousser à remplacer tous les SVGs par un équivalent PNG, là oui les IDs manquent de flexibilité.
Patidou a écrit :
C'est dans Firefox Windows uniquement. Smiley cligne


Oui et j'ai testé sous Firefox Windows. J'ai bien un triangle.
Patidou a écrit :
Vaxilart, il faudrait peut-être signaler ce bug à Mozilla non?


Oui oui, c'est fait, c'est le bug que j'ai posté plus haut. Le titre n'est pas très révélateur, j'avais moi-même ouvert un autre bug sur le sujet, mais il a été marqué comme une duplication de celui là.

jb_gfx a écrit :
Oui et j'ai testé sous Firefox Windows. J'ai bien un triangle.


Change la taille de la fenêtre de ton navigateur. Selon le ratio, parfois le triangle sors bien, mais lors du resize c'est immanquable. (Version 15 de Firefox ici, mais le bug initial a été posté pour une version antérieur, alors ça doit être présent partout)

InpIxelItrust a écrit :
Par contre je ne suis pas d'accord sur le fait qu'il ne faille pas utiliser d'ID, si l'idée n'est de remplacer que le logo du header, un ID permet de ne cible que celui là


Tu as raison là dessus, mais le problème est que trop souvent (si tu regarde parfois la partie du forum consacré à javascript), tu verras des utilisateurs répéter le même bout de code sans arrête avec des IDs différent faute de mieux. Alors, en soit oui, le code fonctionne et peut paraître suffisant, mais c'est loin d'être une bonne pratique à montrer.

Mais à ce niveau, c'est une opinion.
Vaxilart a écrit :

Change la taille de la fenêtre de ton navigateur. Selon le ratio, parfois le triangle sors bien, mais lors du resize c'est immanquable. (Version 15 de Firefox ici, mais le bug initial a été posté pour une version antérieur, alors ça doit être présent partout)


Désolé mais je suis en France, je parle français.
jb_gfx a écrit :
Désolé mais je suis en France, je parle français.


Et parce que je viens d'ailleurs je ne parle pas un français convenable selon toi..?
Non, c'était une boutade (la phrase vient d'un sketch d'Omar et Fred) pour dire que j'avais rien compris.
Modifié par jb_gfx (22 Sep 2012 - 19:01)
Patidou a écrit :
C'est dans Firefox Windows uniquement. Smiley cligne

Vaxilart, il faudrait peut-être signaler ce bug à Mozilla non?


Je constate au moins une différence entre FireFox et Opera, pas seulement sous Windows. Sous Ubuntu, FireFox ne m’affiche pas la même chose selon la taille de la fenêtre. Sous Opera, j’ai la même chose quelque soit la taille de la fenêtre.

Sous Opera, je vois un rectangle vert avec un triangle blanc en bas à droite, dont la base, orientée vers le haut à gauche, est floutée. J’ai la même chose avec FireFox quand la fenêtre est agrandie, mais quand je réduis la taille de sa fenêtre, j’ai un bord net à la place.

Je n’ai pas suivi non-plus, alors peut-être que je dis une bêtise aussi.
Modifié par hibou57 (24 Sep 2012 - 02:22)
@hibou57 C'est bien ça le bug, il ne devrait pas y avoir de section "flou" sur l'image. Si tu modifie le code pour mettre 100% sur les attributs `height` et `width`, tu verras que le "flou" n'apparait plus (peu importe la résolution).
J'arrive à reproduire le bug Firefox une fois sur deux sur ton exemple, yeah ^^ par contre pas sur le mien, je n'arrive pas à le reproduire, peut-être car la taille de l'image est fixe. Il faudrait que je test sur du pourcentage. Enlever la taille en px dans le SVG "corrige" (si on peut appeler ça comme ça) le bug Firefox ?
a écrit :
Enlever la taille en px dans le SVG "corrige" (si on peut appeler ça comme ça) le bug Firefox ?


On pourrait dire ça ! Si la taille du svg ne sera pas fixe (pour du responsive web design par exemple), alors il faut s'assurer pour Firefox windows, de ne pas déclarer une taille en pixel sur la balise <svg>.