WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.
Posting tweet...
Voici un petit javascript permettant de corriger un bug d’Internet Explorer (qui a dit « Un de plus ! » ?) .
Il s’agit du cas où les options d’une liste à choix multiples d’un formulaire, sont trop longues pour rentrer dans la taille de cet élément select lorsqu’on a fixé sa taille en CSS. Dans un navigateur moderne, quand on visualise les choix disponibles, la taille de la liste est adaptée (la taille de l’élément parent select n’est pas modifiée). Dans ce cher IE, la liste garde la même taille que le select et on ne voit donc pas la totalité des options, n’ayant que les n premiers caractères affichés.
Les images valant mieux qu’un long discours, en voici deux pour illustrent ce problème. Ici, j’ai fixé la largeur à 300px :
Avec Firefox, Safari, Chrome, Opéra… :

Avec Internet Explorer toutes versions confondues :

Comme on peut le voir, avec IE, si les contenus des options sont long, ils sont tronqués, ce qui n’est pas très pratique.
Pour corriger ce problème un petit javascript qui ne sera executé que sous Internet Explorer.
Le principe est le suivant : On recherche tous les champs select (on peut être plus précis sur le sélecteur si besoin). On passe la largeur en auto le temps de récupérer la largeur nécessaire pour un affichage correct. Lors de l’ouverture de la liste, on applique cette largeur.
Pour ne pas modifier la mise en page, j’ai choisi de passer la liste en positionnement absolu lorsque sa taille est modifiée. C’est un choix qui pourrait avoir des conséquence sur votre mise en page. A vous de modifier ou de proposer une meilleure solution.
P.S : C’est à base de Mootools, mais adaptable à d’autres frameworks si besoin.
if(Browser.Engine.trident){
function adjustWidth(el,m){
el.setStyle('width',m+'px');
el.setStyle('position','absolute');
}
function reinitWidth(el,s,p){
el.setStyle('width',s);
el.setStyle('position',p);
}
$$('form select').each(function(cb){
var initsize = cb.getStyle('width'),initposition = cb.getStyle('position'),maxsize = 0;
cb.setStyle('width','auto');
maxsize=cb.offsetWidth;
cb.setStyle('width',initsize);
if (maxsize > initsize.substring(0,initsize.length-2)) {
cb.addEvent('mousedown',function(e){adjustWidth(cb,maxsize);});
window.document.addEvent('click', function(e) {if(e.target != cb) reinitWidth(cb,initsize,initposition);});
cb.addEvent('change',function(e){reinitWidth(cb,initsize,initposition);});
}
});
}
Récemment, j’ai du découper un design comportant de nombreux coins arrondis, de tout styles, avec ou sans bordures, couleur de fond etc…
J’ai donc cherché un script simple à mettre en place et très modulable et comme je n’ai pas trouvé quelque chose qui correspondait exactement à mes besoins, j’ai décidé de créer mon propre script.
Avant tout, je suis contient que le fait de devoir créer des éléments supplémentaires juste pour satisfaire un besoin de mise en page est une technique à proscrire car cela n’a aucun sens. Tout devrait pouvoir se faire directement dans le CSS. Oui mais voilà, le CSS 3 et sa gestion native des bords arrondis (-moz-border-radius et -webkit-border-radius pour Firefox et Safari) est loin d’être implanté sur tous les navigateurs et nous sommes, malheureusement, dans l’obligation de ruser.
Ce que je voulais :
Pour commencer, voici une démo du script en action et une deuxième avec un bouton pour lancer le script.
Le script s’appuie sur le framework Javascript Mootools. Lire la suite »
Comment optimiser l’utilisation de JavaScript en termes de compression, cache, vitesse de chargement sans pour autant se retrouver avec des fichiers illisibles car, sans indentation, sans espaces voire obfusqués. (plusieurs méthodes existent)
Garder un fichier lisible est, selon moi, indispensable pour maintenir son application à jour, la modifier, la corriger et cela d’autant plus lorsqu’on travaille en équipe.
Une des solutions est de garder une version non compressée mais cela sous-entend de jongler sans cesse entre plusieurs versions, ce qui n’est définitivement pas pratique.
La solution qui me semble la plus intéressante est la classe PHP Combine, simple à utiliser, fiable, gérant la combinaison, la compression, la mise en cache et les dates d’expiration.
Lire la suite »
La propriété raccourcie background est très utile. Elle permet de définir en une ligne toutes les propriétés d’arrière-plan d’un élément (background-color, background-image, background-repeat, background-attachment, et background-position)
Est-ce que l’ordre dans lequel on place les valeurs de cette propriété a une importance ?
Normalement non. Mais, des navigateurs obsolètes ou pointilleux, peuvent mal interpréter ces valeurs si elles ne respectent pas l’ordre indiqué par le W3C, soit :
background:color image repeat attachment position;
Au moment où j’écris ces lignes, Microsoft Internet Explorer 6.0 est utilisé par 22.05 % des utilisateurs (source : libstat.com – juin 2008). Ce pourcentage est en constance baisse mais reste malheureusement bien trop élevé pour qu’on ne puisse tenir de ce navigateur.
Le problème est de taille, le nombre d’incompatibilité et de fonctions non supportées rendent le travail de l’intégrateur long et fastidieux. Il faut sans cesse tout au long de la découpe prévoir et vérifier le bon rendu de la mise en page.
Voici donc quelques astuces et outil qui permettent de faciliter le travail de l’intégrateur, en attendant (très longtemps) que les versions obsolètes disparaissent : Lire la suite »