ChezSimay

Aller au contenu | Aller au menu | Aller à la recherche

samedi, mai 3 2008

les astuces de l'intégrateur : avoir toujours ses styles à jour même avec un site en production

Lorsque vous intégrer un site, la différence que vous avez par rapport aux développeurs c'est que vous travaillez sur des fichiers qui s'exécutent coté client. Et donc cela implique souvent de travailler sans le cache ou bien de vider le cache de son navigateur régulièrement, lorsque le site est en cours de développement cela ne pose pas de soucis. Par contre lorsque le site est en production, il arrive parfois que quelques erreurs d'intégration passent quand on met le site en production... Malheureusement on a pas la main sur le poste des utilisateurs, du coup si on met nos styles à jour, il est probable que ces derniers soient dans le cache du navigateur, et donc il ne profite pas des dernières modifications de styles jusqu'à ce que son cache se vide.

Il existe donc la possibilité de modifier l'appel à la feuille de style en lui passant un numéro de version par exemple, dans ce cas le nom du ficher à changé et du coup le client n'y voit que du feu car son navigateur va chercher la dernière version de la feuille de style :

<link rel="stylesheet" type="text/css" href="style/iesucks.css?v1" />

Billet librement inspiré de l'excellent article sur CSS-tricks

dimanche, février 3 2008

les bonnes pratiques de l'intégrateur : faire un ombrage full css

Dans cet article, nous allons voir comment réaliser des ombres entières réalisés en CSS. D'habitude la gestion de zone avec des ombres en CSS se réalisent avec des images de fond, ce qui implique forcement que la taille de la zone qui possède l'ombre est fixe (au moins sur un axe), et que chacune des zones du site qui possèdent une ombre et qui ont des tailles différentes ont des images de fond différentes.

Dans mon cas, il suffit d'avoir dans un calque positionné, deux calques, un pour le contenu et une autre pour l'ombre et le tour est joué. Voici le code HTML, on pourra remarque qu'il n'y a pas grand chose de compliqué...

<div id="conteneur">
	<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
	<div class="ombre">&nbsp;</div>
</div>

Et la feuille de style associée, ici il faut donc faire attention à ce que le calque conteneur ai un attribut de position (position:relatif; ou position:absolute;) afin que le calque qui possède l'ombrage soit étiré sous le contenu avec un positionnement en absolute en left, top, bottom et right. Attention, étant donné que l'ombrage est positionné de façon absolute et après le contenu de mon cadre, il faudra donner au contenu un positionnement relatif pour pouvoir lui associer un niveau d'ordre de calque (z-index). Ensuite, il faut juste appliquer des propriétés pour gérée une opacité réduite pour cet ombrage et le tour est joué.

#conteneur{
	background:#fff;
	width:350px;
	position:relative;
	border:1px soldi #555;
	margin:30px;
}
#conteneur p{
	padding:10px;
	margin:0;
	color:#555;
	background:#fff;
	position: relative;
	z-index:1;
}
.ombre{
	position: absolute;
	bottom:-5px;
	right:-5px;
	top:-5px;
	left:-5px;
	background:#000;
	filter : alpha(opacity=20);
	-moz-opacity : 0.2;
	opacity : 0.2; 
}

jeudi, janvier 17 2008

les bonnes pratiques de l'intégrateur : la cas des éléments flottants...

Lorsque vous positionnez un élément de façon flottante à l'aide de la propriété float:left|right;, cet élément sort du flux "normal" de la page, par conséquent il sort aussi de son élément parent le plus proche autrement dit son conteneur. Pour remédier à ce soucis la plupart d'entre vous ajoutent une balise à la fin du conteneur avec un style de type clear:both; De cette façon, l'élément conteneur arrive à savoir ou il se termine et donc l'élément flottant ne déborde plus du conteneur.

Voici un exemple typique du HTML utilisé dans ce genre de situations :

<div id="conteneur">
	<div id="flottant">&nbsp;</div>
	<p>&nbsp;</p>
	<hr class="pusher" />
</div>

et le code CSS :

#flottant{
 width:100px;
 height:100px;
 float:left;
}
.pusher{
 clear:both;
 visibility:hidden;
}

Pour en savoir un peu plus, Openweb en parle bien mieux que moi : Initiation au positionnement CSS : 2.position float. Malheureusement, cet élément positionné en dernière position donne parfois un résultat assez désagréable au niveau de l'apparence (quelques pixels en trop en bas de votre bloc conteneur qui en colle plus aux éléments auxquels il devrait). Attention, vous avez peut être remarqué aussi que l'utilisation abusive de clear engendre des soucis d'affichages assez bizarres sur IE donc n'oublions pas le dicton ; trop de clear tue le clear

Afin d'éviter, ces petits désagréments dut à l'ajout de cette balise à la fin du conteneur et de ses styles, nous allons utiliser d'autres styles afin d'avoir l'effet voulu, en fait sur l'élément conteneur, il suffit d'ajouter overflow:auto; (et zoom:1;, mais cette propriété n'est utile que pour IE). Du coup, avec cette propriété, on a plus besoin d'ajouter une balise à la fin du conteneur.

Voici un exemple du HTML utilisé pour avoir le même type d'affichage :

<div id="conteneur">
	<div id="flottant">&nbsp;</div>
	<p>&nbsp;</p>
</div>

et le code CSS :

#conteneur{
 overflow:auto;
 zoom:1;
}
#flottant{
 width:100px;
 height:100px;
 float:left;
}

EDIT : Attention, cette méthode à quelques restriction notamment si vous voulez positionner un élément de façon absolute à l'intérieur du conteneur, Si cet élément sort complètement ou bien en partie du conteneur, on va avoir un soucis au niveau de l'affichage. Ce soucis est du à l'utilisation de la propriété overflow:auto; qui gère tout ce qui doit s'affiche en dehors du conteneur. Une page d'exemples vaut bien un long discours : voir la page d'exemple sur les éléments flottants

dimanche, décembre 16 2007

retour sur trois jours de formations avec Temesis

Cette fin de semaine dernière, j'ai eu l'occasion de suivre 3 jours de formation sur la qualité et la conformité des sites XHTML/CSS par Fabrice Bonny de la société Temesis. C'est assez marrant de se retrouver en formation alors que ça a été mon rôle pendant une année et demi!

Donc au programme de la formation, les standards, l'accessibilité et un peu d'organisation dans mes projet! D'un point de vue purement technique, je fait des CSS et du XHTML tout les jours donc je maitrisais déjà une bonne partie du sujet. Mais durant ces trois jours, j'ai appris (et surtout enfin compris le pourquoi du comment) le bug du haslayout d'Internet Explorer et la solution magique du zoom:1;. Désormais, je n'utiliserai plus non plus, les hacks CSS (tellement rapide à mettre en œuvre, mais qui posent beaucoup de soucis par la suite)... Bref, cette formation coté code à été vraiment bénéfique pour moi! Du coté accessibilité, Fabrice Bonny m'a aidé à me donner un peu ma propre opinion car, il est vrai qu'auparavant, j'était assez peu critiquevis à vis de tout ce que je pouvait lire sur le web, maintenant je le serais un peu plus. Notamment en ce qui concerne les critères accessiweb (loin de moi l'idée de critiquer braillenet pour leur travail sur l'accessibilité numérique), mais prenons l'exemple du point 10.3 Avec les feuilles de style désactivées, l’ordre d’apparition de l’information est-il respecté par rapport à l’ordre d’apparition initialement défini ? avec lequel je ne suis pas forcement d'accord, enfin bon c'est un autre débat (d'ailleurs il n'est pas très difficile de trouver ça sur internet)

Peut être un regret, ne pas avoir les mains dans le code afin d'essayer d'intégrer cette satanée charte que nous a fait notre graphiste (mais, je comprend que c'est assez difficile de faire ça à 8 ou 10)

Sur ces bonnes nouvelles, bonnes fêtes a tous!

jeudi, juillet 26 2007

Mon CSS summer refresh

Et bien comme je vous le disait, je profite du concours CSS Summer Refresh d'Alsacréations pour faire une petite refonte de ce blog ainsi que de son trop plein d'activité. Donc hop voici un nouveau design, plus simple, plus clair, plus plus...Bon pour tous vous dire j'aurais aimé faire un peu mieux, mais bon, la je suis presque au top de mes performances de graphiste.J'en ai profité pour passer à la dernière release de Dotclear.

Lire la suite...

- page 1 de 2