A la manière de Corbin, je me propose de tenir une liste de tutoriels CSS :
Peu à peu, ce post évoluera en fonction des tutoriaux intéressants et je m'efforcerai de les classer afin de mieux s'y retrouver :
On parle de css sur le forum francophone :
http://www.oscommerce-fr.info/forum/index.php?showtopic=18752&hl=
http://blog-osc-entraide.e-mosaique.com Projet de développement d'une solution Osc respectant les standards
Sommaire :
1 - Quelques définitions
2 - Liste des propriétés CSS
3 - Liste des sites traitant de CSS
4 - Quelques éditeurs CSS
5 - Quelques validateur d'accessibilité
Articles complémentaires :
Le sélecteur universel
Les 16 couleurs au nom prédéfini
Les polices de caractères
Majuscule et minuscule
Décorez vos titres
Différenciation des hyperliens internes et externes
Un bon nombre de sujets traités ici proviennent de l'excellent site d'alsacréations
http://blog.alsacreations.com/2004/12/08/100-methodologie-pour-resoudre-les-problemes-daffichage-en-css
1 - Quelques définitions :
CSS : Cascading Style Sheets ( Feuilles de style en cascade )
--------------------------------------------------------------------------------
Les feuilles de style en cascade représentent un type de langage HTML étendu qui donne un contrôle "absolu" sur l'apparence de vos pages web. Les CSS procurent une réelle rigueur typographique, un "look" et une maîtrise constante sur l'ensemble du site web. De ce fait on peut dire qu'elles donnent un pouvoir créatif à tous ceux qui n'en ont pas...Au départ du moins.
Une feuille de style en cascade est une liste de règles définies par le langage HTML.
Le terme en cascade se réfère à la manière dont les règles générales des CSS s'effacent devant les règles locales. Avec les CSS, vous pouvez définir des règles générales ou locales. Comme les règles locales l'emportent toujours sur les règles générales, on s'y réfère en tant que cascade.
Définition issue de http://www.media-box.net/
--------------------------------------------------------------------------------
2 - Liste des propriétés CSS
http://dicolive.media-box.net/docCSS/css.php?orderByType=1 et leur compatibilité avec les différents navigateurs
Vous retrouvez toutes ces propriétés sur http://www.media-box.net/
2 - 1 ) La structure des balises
il existe deux grands groupes principaux de balises : les balises de type "bloc" et les balises de type "en-ligne" (ou "inline")
Ne vous inquiétéz pas, je traduirais prochainement les infos ci-dessous
2 - 1 - 1 ) Les balises en ligne
les "en-ligne" se placent toujours l'un à côté de l'autre afin de rester dans le texte. Par exemple : le renforcement d'une partie de texte à l'aide de la balise <strong>
Constatation par l'exemple :
CODE |
<strong>Bienvenue</strong> et <em>cher visiteur</em> |
CODE |
<ul id="navlist"> <li><?php echo ' <a class="FooterPageLinks" href="' . tep_href_link(FILENAME_MENTIONSLEGALES) . '">' . HEADER_LINKS_MENTIONSLEGALES . '</a>';?></li> <li ><?php echo ' <a class="FooterPageLinks" href="' . tep_href_link(FILENAME_WEBMASTER) . '">' . HEADER_LINKS_WEBMASTER . '</a>';?></li> <li><?php echo ' <a class="FooterPageLinks" href="' . tep_href_link(FILENAME_LINKS) . '">' . HEADER_LINKS . '</a>';?></li> <li><?php echo '<a class="FooterPageLinks" href="' . tep_href_link(FILENAME_SCOLAIRE) . '">' . HEADER_LINKS_SCOLAIRE . '</a>';?></li> </ul> |
Le sélecteur universel
Pour appliquer exactement le même style à tous les éléments d'une page web, vous pouvez utiliser le sélecteur universel noté *.
* {
color: red;
font-family: verdana, sans-serif;
font-size: 100%;
font-weight: normal;
line-height: 1.4em;
}
Il sera donc logiquement à placer au début de votre feuille de style
http://www.yoyodesign.org/doc/w3c/css2/selector.html#universal-selector
Les 16 couleurs au nom prédéfini
black #000000
gray #808080
maroon #800000
red #FF0000
green #008000
lime #00FF00
olive #808000
yellow #FFFF00
navy #000080
blue #0000FF
purple #800080
fuchsia #FF00FF
teal #008080
aqua #00FFFF
silver #C0C0C0
white #FFFFFF
Toutes les autres couleurs devront être codées en hexadécimal
Pour facilement se retrouver dans toutes les couleurs sécurisées pour le web, http://www.pixelistan.com/pages/tutoshop_couleurs_hexa.htm vous propose un script pour créer une page web avec un tableau de toutes ces couleurs pour le web
J'ai légèrement adapté celui-ci pour que vous n'ayez finalement que ce code à placer dans une nouvelle page
En local, dans votre rep www/ créer un nouveau dossier que vous appelerez par exemple couleursweb
Créez alors www/couleursweb/index.html et copiez-y le code ci-dessous :
CODE |
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- Date de création: 26/02/2005 --> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title></title> <style type="text/css"> h1 { font-size: 2em; margin: 1.5em; border: 2px solid #ccc; background-color: #ffffa0; padding: 0.5em; } p { font-size: 1em; margin: 1.5em; font-weight: bold; } .tableauhexadecimal { font-size: 1.2em; margin-left: 6em; } </style> </head> <body> <h1>Palettes de couleurs pour le web</h1> <p>Retrouvez sur cette page les 512 valeurs hexadécimales</p> <p>Ce tableau est issu d'un tutoriel de <a href="http://www.pixelistan.com/pages/tutoshop_couleurs_hexa.htm">Pixelistan</a> <br />N'oubliez pas de placer # devant le code hexadécimal</p> <div class="tableauhexadecimal"> <script language="JavaScript1.1" type="text/javascript"> clr=new Array('00','20','40','60','80','a0','c0','ff'); for (i=0;i<8;i++) { document.write("<table border=0 cellpadding=15>"); for (j=0;j<8;j++) { document.write("<tr>"); for (k=0;k<8;k++) { document.write('<td bgcolor="#'+clr[i]+clr[j]+clr[k]+'">'); document.write('<tt><font color="#'+clr[7-i]+clr[7-j]+clr[7-k]+'"> '); document.write(clr[i]+clr[j]+clr[k]+' </font></tt></td>'); } document.write("</tr>"); } document.write("</table><br>"); } </script> <div> </body> </html> |
Les polices de caractères
Tailles relatives
Il est conseillé d'utiliser des tailles relatives (em)* au lieu de tailles fixes (px) pour les caractères.
Ne pas fixer de corps de base.
En effet, le corps de base étant déterminé par le visiteur dans les préférences de son navigateur
Fixer tous les autres corps en valeurs proportionnelles au corps de base (de préférence en cadratin - em).
Cette méthode a plusieurs avantages, notamment de s’adapter aux préférences (ou handicaps visuels) des visiteurs ; certains qualifient cette approche de la seule méthode conforme aux normes d’accessibilité.
Elle permet aussi de s’adapter à tout média (pas seulement l’écran d'ordinateur)
Tailles prédéfinies par le navigateur
Les feuilles de style offrent aussi deux autres possiblités dans la continuité de ce qu'on faisait en HTML classique :
Leur interprétation est laissée aux soins du navigateur du visiteur :
xx-small x-small small medium large x-large xx-large
Malheureusement, la taille par défaut du navigateur correspond plutôt à small («petit») pour Explorer et à medium («moyen») pour NN6 et Mozilla, ce qui veut dire qu'on risque de se décaler d'un cran dans cette hiérarchie de tailles en passant d'un navigateur à un autre. Par ailleurs, l'éventail des tailles est bien plus grand dans Explorer que dans NN6. Notre avis est qu'on s'expose à des variations trop grandes d'un visiteur à l'autre en définissant ainsi les tailles de police.
Tailles relatives
Tout comme dans le HTML classique et son codage par size="+1" ou size="-1", on peut aussi simplement demander des caractères plus grands ou plus petits que dans l'élément contenant (larger ou smaller dans le codage).
Définir plusieurs polices
il y a un risque pour que la police que vous utilisez soit absente de l'ordinateur de votre visiteur
L'astuce consiste simplement à ne pas indiquer une seule police mais au moins trois (une présente sur PC, une autre présente sur Mac et une présente sous Linux et de définir également un type de police :
body {
font-family : arial, helvetica, sans-serif;
}
ou
body {
font-family : 'times new roman', times, serif;
}
En procédant ainsi (appel de la police Windows puis la police équivalente pour Mac et enfin le type de police) vous limitez au maximum les problèmes. Le navigateur cherchera à utiliser la police Arial, si il ne la trouve pas il cherchera la police Helvetica et en cas de recherche infructueuse, il utilisera la police sérif par défaut.
Issu de l'excellent site http://acces-pour-tous.net/fichiers_communs/access.php?rub=polices
Majuscule et minuscule
Propriété text-transform
None : sans effet sur le texte
Lowercase : toutes les lettres de chaque mot seront en minuscules
Uppercase : toutes les lettres de chaque mot seront en majuscules
Capitalize : la première lettre de chaque mot sera en majuscule
Décorez vos titres :
Les titres peuvent êtres définies à l'aide des balises h1, h2, ..., h6
Pour donner un peu de style à vos titres, voici quelques propriétés :
dans votre stylesheet.css :
CODE |
h2 { line-height: 1em; background-color: #fff; padding-left: 2em; color: #769712; font: 1.2em "Trebuchet MS", Verdana, "Lucida Grande", Tahoma, Helvetica, Sans-Serif; font-weight: bold; padding-bottom: 0.7em; border-bottom : 1px solid #ccc; background: url(http://.../catalog/images/icontitre.gif) no-repeat left top; } |
Opacité - transparence des images sur Firefox
/* effet d'opacité sur les images */
img { filter:alpha(opacity=50);
-moz-opacity: 0.5;
opacity: 0.5; }
a:hover img {
filter:alpha(opacity=100);
-moz-opacity: 1.0;
opacity: 1.0;
}
Source : http://www.mandarindesign.com/opacity.html#opacitynoscripting
Pour n'appliquer une feuille de style que à IE, placer les lignes suivantes avant l'appel à la feuille de style classique :
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->
Celà permet ainsi de résoudre les problèmes d'affichage
Différenciation des hyperliens internes et externes
Objectif :
Prévenir clairement l'internaute des conditions dans lequel il va quitter le service en ligne qu'il visite.
Solutions techniques possibles :
Il est possible d'ajouter l'information dans le libellé du lien ou dans le titre du lien, dans le comportement du lien (ouverture dans une nouvelle fenêtre).
CODE |
<a href="http://www.openweb.eu.org" class="lienexterne">OpenWeb</a> .lienexterne:after { content:" (ce lien cible un site externe)" } |
je me permet d'ajouter ceci qui me semble plus qu'important !
QUOTE (Holly Bergevin et John Gallant) |
Habituellement, quand de nouveaux codeurs commencent à apprendre CSS, ils regardent le résultat de leurs efforts dans IE/Win, ce navigateur étant installé sur la plupart des ordinateurs. Étant novices en CSS, ils expérimentent jusqu'à trouver un code qui rend bien sous IE. Mais sans le savoir ils se forment à utiliser du code non standard pour y arriver. Puis, quand ils entendent parler d'autres navigateurs et téléchargent l'un ou l'autre, ils sont choqués de voir leurs belles créations mutilées. Naturellement, ils blâment ces navigateurs, convaincus de leur culpabilité, alors que la faute revient en fait à leur IE bien-aimé. Quand un patron leur dit qu'il doivent « faire marcher le site » dans tous les navigateurs modernes, ils tentent frénétiquement de corriger ces navigateurs alternatifs, sans savoir que IE est la source du problème. |
La liste (et les correspondances) pour tous les caractères spéciaux en HTML :
http://www.htmlgoodies.com/beyond/reference/article.php/3472611
Truc déjà cité par Mosaic mais avec une référence qui complète :
comment masquer une feuille de style à IE ou la masquer aux autres navigateurs :
les trucs et astuces sont là : http://www.blog-and-blues.org/articles/Les_syntaxes_de_commentaires_conditionnels_pour_IE_Windows
il y a plusieurs méthodes qui exploitent les failles du naviagteur Microsoft (elle sont nombreuses)
/* **********************************/
/* les differents selecteurs */
/* **********************************/
/* 1. s'applique à toutes les balises p */
p {
font:Arial, Helvetica, sans-serif small bold ;
color:blue;
}
/* **********************************/
/* 2. s'applique à toutes les balises div ayant comme classe "jaune" */
div.fd_jaune {
font:Arial, Helvetica, sans-serif small bold ;
font-variant: normal;
background-color: #FFCC00;
}
/* **********************************/
/* 3. s'applique à toutes les balises ayant comme classe "rouge" */
.rouge {
/* la propriété inherit indique la classe ici definie herite de la classe du parent */
font-variant: inherit;
font-weight: bold;
color: #CC0000;
}
/* **********************************/
/* selecteur universel */
* {
background-color:#cccccc;
}
/* **********************************/
/* selecteurs d'identifiant id */
#menu_bleu {
background-color:#0099FF;
color:#CCC;
}
/* **********************************/
/* selecteurs d'attributs */
/* igorés par IE */
/* concerne toutes les balises acronym ayant pour atribut tittle */
acronym[title] {
background-color:green;
}
*[title]{
letter-spacing:10px;
}
/* concerne toutes les balises h1 ayant pour atribut tittle et id */
h1[title][id] {
color:#000000;
background-color:#FFFFFF;
}
h1[title="titre 1"] {
text-align:center;
}
/* **********************************/
/* sélecteurs parent descendants */
/* igorés par IE */
div h2 {
border: double;
}
ul li {
background-color:black;
}
ul li ol li {
background-color:red;
}
/* **********************************/
/* sélecteurs d'elements adjacents */
/* s'applique au deuxieme élément ayant un lien de fratie */
/* s'il suit immediatement le premier */
div+h3{
font-size:large;
color:green;
}
/* *************************************/
/* les pseudo-classes
/* ************************************/
/* les liens */
/* link permet d'igorer les ancres nommées */
a:link {
color:#FF6600;
}
a:visited {
color:#000099;
}
a:hover {
background-color:#660000;
}
/* lors du clic */
a:active {
background-color:#FFFFFF;
}
/*******************************/
/* igorés par IE */
input:focus {
background-color:#0099FF;
color:#FFFFFF;
}
/* s'applique à la balise p uniquement si elle est le premier enfant */
p:first-child {
background-color:#FFFFFF;
}
/* si on veut appliquer un style suivant une langue : <p lang="fr">pseudo-classe lang</p>*/
p:lang(fr) {
background-color:#FFFF00;
color:#000000;
}
/* *************************************/
/* les pseudo elements
/* ************************************/
#pseudo_element {
color:#000000;
}
#pseudo_element:first-letter {
font-size:300%;
}
#pseudo_element:first-line {
color:#FF0000;
}
/* ajoute au debut ou à la fin les caractères définis dans le content */
/* igorés par IE */
#pseudo_element_2:before {
content:"<<";
font-weight:bold;
color:#000000
}
#pseudo_element_2:after {
content:">>";
font-weight:bold;
color:#000000;
}
/* !important */
/* s'il ya conflit entre 2 propriété !important prend la priorité */
/* la classe ci-dessous forcera tous les fonds en bleu */
/*///////////////////////////
* {
background-color:#CCCCFF !important;
}
//////////////////////////////*/
Je crois que l'éditeur cité dans le premier post en tant que Freeware est desormais payant pour la somme de 80 $.
Peut etre faut il editer le message ?
(N'hesitez pas a supprimer mon message en cas de besoin une fois qu'un moderateur / administrateur en aura pris connaissance)
Pas pour la version Lite comme Mosaic avait écrit.
Lien au milieu de la page
http://www.newsgator.com/Individuals/TopStyle/Default.aspx
Ah oui effectivement... je n'avais pas vu.
Et bien, peut etre que mon message servira a d'autres qui auraient loupé la version free a leur premier passage.
Merci pour ta réponse.
Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)