Skip navigation.

exploreopera

| Help

Sign up | Help

photo

Groumphy au quotidien

Posts tagged with "css"

Coloration syntaxique

, , , ...

Alors que je recherchais quelques petites fonctions en javascript (que j'aurais mieux fait de faire moi-même) je suis tombé sur un script sympathique de coloration syntaxique multiple (prenant en compte autant le Javascript, le CSS, etc...).

Comment utiliser cette "librairie" ? Tout simplement en insérant le code suivant dans l'en-tête :
<link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter.css"></link>
<script language="javascript" src="js/nom_du_langage.js"></script>
<!-- nom_du_language.js doit être remplacé par un élément existant et correspondant au language désirée, 
exemple pour le CSS : shBrushCss.js -->


Par la suite il suffit de nommer le conteneur du code avec le nom code (name="code") et d'indiquer dans la classe de l'élement conteneur le style de language (class="css") et c'est tout !
Donnant en résumé ceci :
<pre name="code" class="c-sharp">
 // Début du code... etc...
</pre>


Simple non ?

Il existe en plus de nombreuses options et une évolution certaine !
Du point de vue accessibilité, cela ne pose aucun problème. Que demander de plus ?

CSS : personnalisation des liens

, , , ...

Un autre très bon article sur les feuilles de styles en cascade (CSS), qui pourrait se résumer de la manière suivante :

a[href $='.ext'] { padding-left: 22px; background: transparent url(img/ext.png) no-repeat center left;}


Evidement nous pensons à remplacer .ext par le type d'extension que nous souhaitons et ext.png par l'image que l'on désire !

Nous pouvons faire de même avec les protocoles de la manière suivante :
a[href ^="protocole:"]  { padding-left: 22px; background: transparent url(img/protocole.png) no-repeat center left;}


Et dans la logique des choses on remplace protocole: par l'adéquat (exemple : mailto:, https:, etc..) voir même des protocoles de messageries instantanées (aim:, msnim, etc.).

C'est évidement une « solution » très web 2.0 qui nous permet de peaufiner aussi l'effet suivant :
a[hreflang]:after { content: "\A0("attr(hreflang)")"; }

Tailles des polices en CSS

, , , ...

Un excellent article concernant les tailles des polices définies par une feuille de style m'ouvre la synthétisation comme suit :

  • remettre tout au carré (à cause de Internet Explorer bien entendu) :
    html { font-size: 100% }

  • définir la taille de la police que l'on désire (en pixel) :
    /* remplacer balise par la/les balise(s) correspondante(s) */
    balise { 
    /* remplacer le X par la taille de la police en pixel que vous souhaitez */
    /* et Liste_de_polices par la liste des polices que vous utilisez */
    font: Xem/1em Liste_de_polices;}
    



Cette "astuce" est malheureusement indispensable si l'on désire avoir "une taille précise définie sur une unité de pixel et que la page soit accessible par tous, et principalement dans le but de pouvoir agrandir la police définie en pixel"...

Selon un repérage de Franck Paul.





Teasing : tic-tac... tic-tac... (et visible sur le blog)

Reset CSS

, , , ...

Lorsque l'on commence une feuille de style pour un site, pour un widget, une application, nous faisons bien souvent une réinitalisation (ou RESET), remise à zéro etc. de tout ce qui est margin.
Ce qui donne approximativement ceci :
/* Remise à zéro des marges et renseignements linguistiques pour les hyperliens */
* { margin: 0; padding: 0; border: 0; }

(Un peu plus d'explication sur Alsacreations.com)
Ce qui donne parfois quelques discussions sur le forum aussi...

Toutefois le gourou Eric Meyer nous simplifie la chose en sortant son ultime Reset CSS :
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, 
acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline; }
/* remember to define focus styles! */
:focus {outline: 0; }
body { line-height: 1; color: black; background: white; }
ol, ul { list-style: none; }
/* tables still need 'cellspacing="0"' in the markup */
table { border-collapse: separate; border-spacing: 0; }
caption, th, td { text-align: left; font-weight: normal; }
blockquote:before, blockquote:after, q:before, q:after { content: ""; }
blockquote, q { quotes: "" ""; }


Cela nous simplifiera la tâche par la suite... Tous les éléments sont remis à "zéro" et répondrons correctement au rendus qu'on leur donne.

(Billet tiré sur le blogmark de Franck Paul)

STIB, quelques nouveautés

, , , ...

Il est beau, il est chaud... Il sent le propre et le sable. Je ne parle pas d'un légionnaire, mais bien du nouveau site de la STIB (http://www.stib.be), la société des transports bruxellois.

Alors qu'on se souvient de l'horrible (et je cache mes mots) design précédent, du codage des plus infect, du « popup de validation » et bien d'autres choses tel que le problème de l'exécutable, l’incompatibilité de certains scripts et autres bizarrerie de codage ; beaucoup de ces choses ont disparues.

Toutes ces anciennetés ont fait place à un design agréable, une navigation simple et étendue… En premier plan que du bon.
Malheureusement je retrouve encore quelques incompatibilités au niveau de l’exécutable de recherche d’itinéraire (« magnifique » popup « Recherche en cours, désirez-vous continuer ? » etc.), quelques soucis sur le Javascript, un codage très propre mais encore non validable (quelques erreurs vraiment simple) mais aussi des mentions légales assez… Bizarre (c’est toujours le mot correct !) :
  • l’interdiction expresse de réaliser un lien vers le site en soit, cela pourrait se comprendre dans l’option où les pages étaient calculées mais ici ce ne peut être le cas pour aucun lien ! (d’où le fait que j’ai indiqué le site et non réalisé un lien) ;


Je regrette : la validation, le manque d'accessibilité, de contenu alternatif, un exécutable compatible avec les navigateurs alternatifs (Opera notament !)... Mais c'est "pratiquement" du benin.

On retiendra bien entendu les plus qui sont maintenant de véritable acquis : les plans du réseau urbain de jour ou de nuit (Noctis), une belle section très claire sur l’achat en ligne et une interactivité accrue ! Que du bonheur...

En bref, beaucoup de positif, quelques inchangés (dommage !) et une belle découverte… A suivre !

Election du 10 juin

, , , ...

Le test des sites internets
A l'image de Frédéric de Villamil qui avait analysé les différents sites des candidats aux présidentielles 2007, je fais identiquement pour les partis belges (les principaux) qui se présenterons en liste des élections du 10 juin prochain.

Le résultat est plutôt... Surprenant, car aucun site ne peut se vanter d'être parfait. Seule le CD&V sort légèrement du lot !

Voici le résultat :

MR (http://www.mr.be/ ) :
  1. Développement : tableaux
  2. Doctype : XHTML 1.0 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

PS (http://www.ps.be/) :
  1. Développement : div
  2. Doctype : HTML 4.0 Transitional
  3. Content Type : aucun
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

Groen (http://www.groen.be/)
  1. Développement : frames + tableaus
  2. Doctype : HTML 4.01 Frameset
  3. Content Type : aucun (sur le Frameset)
  4. Code valide : non
  5. CSS valide : pas de CSS
  6. Accessibilité : non

SPIRIT (http://www.spirit.be/)
  1. Développement : tableaux
  2. Doctype : aucun
  3. Content Type : aucun
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

Ecolo (http://www.ecolo.be/)
  1. Développement : tableaux
  2. Doctype : HTML 4.01 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : oui priorité 1

CDH (http://www.lecdh.be/)
  1. Développement : div + tableaux
  2. Doctype : XHTML 1.0 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

SP.A (http://www.s-p-a.be)
  1. Développement : div
  2. Doctype : XHTML 1.0 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

CD&V (http://www.cdenv.be/)
  1. Développement : div
  2. Doctype : XHTML 1.0 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

FN (http://www.frontnational.be)
  1. Développement : tableau
  2. Doctype : HTML 4.01 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : non
  6. Accessibilité : non

VB (http://www.vlaamsbelang.be/)
  1. Développement : tableau
  2. Doctype : HTML 4.01 Transitional
  3. Content Type : text/html
  4. Code valide : non
  5. CSS valide : oui
  6. Accessibilité : non


Je n'ai fait aucun lien vers les partis et c'est volontaire...

Teasing

, , , ...

Blog and blues se réveille !

Read more...

CSS

, , , ...

Cela se perd vite !

Read more...

l'add-on CSS

, , , ...

Lu dans la presse...

Read more...

Javascript non intrusif

, , , ...

Utiliser la puissance du DOM pour ses scripts

Read more...

Un peu de tout !

, , , ...

Ce qui se dit sur la toile !

Read more...

Envie de jouer CSS ?

, , , ...

Alsacreations nous met en ligne des Quizz

Read more...

Changer la taille de la police (ou texte) par Javascript

, , , ...

Comme vu (encore) précédement, il existait de très beau script pouvant faire changer de feuille de style par javascript.

Passons maintenant à une autre méthode : le changement de la taille de la police ou du texte par un Javascript.

Malheureusement, ce n'est pas directement possible avec une quelconque manière de le faire (nativement). De fait, une personne nommée Dustin Diaz a créé une nouvelle fonctionnalité : getElementsByClass().
Cette fonctionnalité permet de travailler sur une classe précise et uniquement celle-ci. Ce qui est plutôt pratique car si nous disposons d'une mise en page précise et que nous ne souhaitons pas voir déformée par un agrandissement global de la page (nous augmenterons donc que la taille de la police d'un conteneur spécifique par exemple).

// Création : Dustin Diaz
//Site : http://www.dustindiaz.com/getelementsbyclass
function getElementsByClass(searchClass, node, tag) { 
var classElements = new Array(); 
if ( node == null ) 
node = document; 
if ( tag == null ) 
tag = '*'; 
var els = node.getElementsByTagName(tag); 
var elsLen = els.length; 
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); 
for (i = 0, j = 0; i < elsLen; i++) { 
if ( pattern.test(els[i].className) ) { 
classElements[j] = els[i]; 
j++; 
} 
} 
return classElements; 
} 


Encore une fois, si vous êtes un lecteur fidèle sur les articles concernant le Javascript, j'insiste pour dire que le Javascript est un langage interprété par le navigateur. L'internaute a le choix ou non d'utiliser cette technologie. A utiliser avec parcimonie donc.
Pour l'accessibilité directe, rien ne vaut de passer par l'interface du navigateur (le plus souvent Ctrl + Molette de la souris ou Menu Affichage et choisir les différentes tailles...).


Il est bien entendu possible (et plus aisé) d'agrandir la police de toute une page... Cela peut se faire tout aussi bien par Javascript. Point besoin d'utiliser la fonction décrite ci-dessus mais utilisons simplement une autre feuille de style (Cf. article précédent) ou une ligne de Javascript (utilisation de document.getElementByTag sur la balise Body par exemple).

Mais pourquoi faire simple lorsqu'il est plus aisé de faire complèxe.
Complèxe ne serait pas le bon mot vu que quelques personnes se sont déjà penchées sur le sujet et qu'il ne nous reste plus qu'à utiliser simplement et de manière pratique ce qu'elles ont développé. Nous pouvons même l'améliorer.

Une méthode que j'apprécie plus particulièrement et qui utilise justement getElementsByClass() est celle faite par Le Journal du Developpeur (Xavier Borderie).
Elle permet de fait à spécifier une classe sur laquelle est portée la fonction ainsi que la taille.
        // Xavier Borderie
function tailleFonte(classe, taille) { 
cibles = getElementsByClass(classe); 
for (i = 0; i < cibles.length; i++) { 
        cibles[i].style.fontSize = taille; 
        } 
    } 


Maintenant que nous avons nos deux fonctions, il ne nous reste plus qu'a faire le (x)HTML et la CSS...

Du coté CSS :
  h1 {
font-family: "Times New Roman", Times, serif;
font-size: medium;
font-weight: bold;
font-variant: small-caps;
color: #0099FF;
background-color: #CCCCCC;
width: 100%;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF;
}
  #conteneur {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: small;
color: #FFFFFF;
background-color: #0099FF;
width: 100%;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #0033FF;
  }
  #conteneur #entete {
  
  }
  
  #conteneur #corps {
font-size: x-small;
  }
  #conteneur #corps #zonetest {
font-size: small;
  }
  .serif {
font-family: serif; 
font-size: x-small; }
  li {
display: inline;
  }
  li:before { 
content: "|";
  }
  li:after {
content: "|";
  }


Du coté HTML :
<div id="conteneur">

<div id="entete">
<h1>Changer la taille de police par Javascript</h1>
</div>

<div id="corps">
<p>Augmenter ou diminuer la taille de la police</p>
<ul>
<li><a href="javascript:tailleFonte('serif', 'small');">Augmenter la taille</a></li>
<li><a href="javascript:tailleFonte('serif', 'x-small');">Diminuer la taille</a></li>
</ul>
<div id="zonetest">
<p id="nickname" title="monnickname" class="serif">Mon nickname est Groumphy</p>
</div>

</div>

</div>


Evidence même... Une classe, une taille avec les inconvéniants et avantages que j'ai cité ci-dessus.

StyleSwitcher : changer le css à la volée via un javascript

, , , ...

Bien souvent les solutions pour adapter les styles sont composée de PHP, ASP etc. Heureusement, il a été développé il y a quelques temps une solution en JavaScript.

Excepté erreur de ma part, le premier à avoir tenté l'expérience fut l'excellent site A List Apart. Il a donc donné un article précis et conci. Passons le en revue.

Pour changer le style, il faut que le navigateur du client puisse interpréter les fonctions. Evidement il faudra que le Javascript soit activé. De fait, l'utilisation de la balise NoScript n'est pas à oublier.

En second temps, il faut lier les feuilles de styles de la manière suivante :
<link title="css1" rel="stylesheet" type="text/css" href="css1.css" media="screen">
<link title="css2" rel="alternate stylesheet" href="css2.css" type="text/css" media="screen">


Que se passe t'il ici ?
Nous donnons simplement une feuille de style générale et par défaut (la css1.css). Nous attribuons aussi un style secondaire (la css2.css) ; et c'est tout !

Dans la continuité, il nous faut créer une fonction en Javascript. La fonction sera principalement orientée vers la reconnaissance des balises en Javascript via getElementByTagName.
Bien entendu cette reconnaissance sera liée avec l'élément Link que nous utilisons pour lier les feuilles de styles.

Voici donc LA fonction (oui oui, vous avez bien lu la majuscule) qui a été bien concue :
function setActiveStyleSheet(title) {
   var i, a, main;
   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     if(a.getAttribute("rel").indexOf("style") != -1
        && a.getAttribute("title")) {
       a.disabled = true;
       if(a.getAttribute("title") == title) a.disabled = false;
     }
   }
}


Le plus dur est fait.
Il nous faut simplement maintenant voir pour lancer la fonction sur un simple appel.
Le site A List Apart donne l'exemple de faire l'appel de la fonction setActiveStyleSheet sur un élément onClick.

D'un avis personnel, je préfère l'appel de la fonction via "un bon vieux lien" dans lequel on précise un appel Javascript.
Faisons le point sur cela :
<a href="javascript:setActiveStyleSheet('css1')">Style 1</a>
<a href="javascript:setActiveStyleSheet('css2')">Style 2</a>


il nous suffit maintenant d'inclure ces liens dans une liste non ordonnée que nous placerons par exemple en Inline pour le Display.
Dans la continuité, nous pouvons bien entendu utiliser des pseudo-classes :before et :after pour agrémenter une présentation (par exemple avec un Content: " | "; ).

Par la suite, il faut simplement stocker le choix de l'utilisateur courant dans un cookies et le tour est joué ; en effet, la fonction ici n'est pas "permanente", elle n'a pas d'élément pour lire une information qu'elle a déjà été exécutée ou autre et ne sait pas le style choisis a la prochaine visite de la page.

La Les questions que l'on pourrais se poser est la sont les suivantes :
Est-ce que ce genre de fonction existe aussi pour des feuilles de styles implémentées en dur dans la page ?
Est-ce qu'il existe un moyen de faire varier la balise utilisée, par exemple sur un Import ?


J'essayerais de trouver une fonction similaire dans les prochains jours afin de vérifier cela... A défaut, je ferais quelques tests pour vérifier en changeant principalement le getElementByTagName etc.

A suivre donc...

Faire une barre de navigation en CSS

, , , ...

Les frames sont révolues et j'en suis heureux. Malheureusement on voit encore trop souvent l'utilisation incorrecte il va de sois de ce système de navigation.

Pourtant il existe des moyens tout à fait simple de construire une barre de navigation sans utiliser les frames et qui serait disponible sur tout le site et ce par un moyen tout à fait simple : l'utilisation de modèle ou l'inclusion du fichier contenant la barre de navigation[1].

De fait, passons en revue ce moyen extrémement simple de créer une barre de navigation. Pour ce faire nous utiliserons simplement le positionnement relatif ou absolu (selon le cas) dans les CSS ainsi que les attributions de marge. Cela semble aisé non ? Cela l'est tout autant.

Parfais.

Créons d'emblée une page simple avec quelques mise en forme :
  1. faire un conteneur ;
  2. dans ce conteneur, créer une liste non numérotée contenue dans un Div en sois et ayant l'alignement Inline ;
  3. créer un entête,
  4. créer un corps,
  5. créer un pied,


Dans la continuité, passons aux particularité. Nous allons faire défiler la barre de navigation avec le site en cas de défilement. Pour ce faire, nous n'avons nullement besoin de l'extraire du flux (avec le type de positionnement Absolute).
Disposons maintenant de séparateur dans la barre de navigation avec les classes Before et After. Attention, comme d'habitude ce n'est pas compris par I.E. (il faut encore trouver une astuce...).
Maintenant il nous faut agir sur l'entete car si ce dernier se situe tout à fait au dessus, il peut évidement être confondu et la barre ne ressortira pas. Placons-y une marge de quelques dizaine de pixels.

Nous obtenons approximativement ceci :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Barre de navigation</title>
<style type="text/css" title="css1" media="screen">
<!--
* {
margin: 0;
padding: 0;
border: 0;
}
#conteneur {
font-family: Arial, Helvetica, sans-serif;
color: #333333;
background-color: #FFFFFF;
width: 760px;
}
#entete h1 {
font-size: large;
font-weight: bold;
background-color: #CCCCCC;
letter-spacing: 0.2em;
word-spacing: 0.3em;
width: 100%;
text-indent: 0.3em;
}
#entete {
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #333333;
margin-top: 50px;
}
#entete p {
font-family: "Times New Roman", Times, serif;
font-size: large;
font-style: italic;
text-indent: 1em;
letter-spacing: 0.2em;
word-spacing: 0.3em;
}
#corps {
padding: 10px;
width: 90%;
}
#pied {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: small;
color: #999999;
height: 70px;
width: 100%;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #333333;
text-align: center;
}
#corps p {
margin-top: 5px;
margin-bottom: 10px;
}
#barre {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: small;
text-align: center;
color: #CCCCCC;
height: 35px;
width: 100%;
margin-bottom: 10px;
border-bottom-width: 1px;
border-bottom-style: double;
border-bottom-color: #333333;
position: relative;
top: 0px;
}
#barre li { 
display: inline;
}
#barre li:after {
content: " | ";
}
#barre ul li a {
text-decoration: none;
color: #333333;
}
#barre ul li a:hover {
text-decoration: underline;
color: #990000;
}
#barre ul li .avant:before {
content: " | ";
}
-->
</style>
</head>

<body>
<div id="conteneur">
<div id="barre">
<ul>
<li><span class="avant"><a href="#">Accueil</a></span></li>
    <li><a href="#">Lien 1</a></li>
    <li><a href="#">Lien 2</a></li>
    <li><a href="#">Lien 3</a></li>
</ul>
</div>
<div id="entete">
<h1>Titre du site</h1>
<p>Sous-titre du site</p>
</div>
<div id="corps">
<p>Ici vient le reste du corps du site... </p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
    <p>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. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
    <p>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>
    <p>Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. 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.</p>
    <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
    <p>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. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
    <p>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>
    <p>Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. 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.</p>
    <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.</p>
    <p>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
    <p>Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus.</p>
    <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>
<div id="pied">
<p>Les informations dans le pied de la page</p>
</div>
</div>
</body>
</html>


Comme vous pouvez le constater, ceci n'est pas difficile. Il vous appartient aussi de jouer maintenant sur le positionnement de cette barre. Si je la change de place et que la dispose sur le coté. Pour ce faire, supprimons simplement la marge de l'entete, placons un Float de valeur Right et disposons d'une hauteur précise en pourcent, ainsi qu'une largeur précise en pixels (nous inversions donc les valeurs d'expression).

N'oublions pas non plus de changer la valeur Top, d'y ajouter un margin total et le padding adéquat. Si vous avez suivis les instructions jusqu'ici vous devriez obtenir un résultat probant mais avec le texte du corps collé a la barre (sur laquelle j'ai rajouté par facilité une couleur de fond).

Comme vous pouvez le constater, c'est facile. Maintenant vous désirez faire rester en place la barre ? Ou encore le pied de page ?
Le principe est le même. Restons simple. Etablissons une page similaire et utilisons donc notre position Absolue :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Pied fixe</title>
<style type="text/css" media="all">
<!--
* {
margin: 0;
padding: 0;
border: 0;
}
h1 {
font-family: "Times New Roman", Times, serif;
font-size: xx-large;
color: #999999;
text-decoration: none;
letter-spacing: 0.2em;
word-spacing: 0.1em;
font-style: italic;
font-weight: bold;
text-align: right;
}
h2 {
font-family: Arial, Helvetica, sans-serif;
font-size: large;
font-style: normal;
color: #660033;
text-align: right;
margin-top: 30px;
margin-right: 30px;
margin-bottom: 50px;
}
img {
text-decoration: none;
border: none;
margin: 20px;
}
p {
font-family: "Times New Roman", Times, serif;
font-size: large;
color: #990000;
text-decoration: none;
text-align: left;
margin-left: 50px;
margin-bottom: 5px;
margin-left: 50px;
}
#conteneur {
width: 760px;
margin-right: auto;
margin-left: auto;
background-color: #FFFFFF;
}
#carte_visite {
float: left;
}
#entete {
width: 760px;
height: 80px;
background-color: #993333;
top: 0px;
margin-left: auto;
margin-right: auto;
padding: 5px;
}
#corps {
width: 760px;
}
#pied {
width: 760px;
height: 50px;
background-color: #993333;
margin-right: auto;
margin-left: auto;
bottom: 0px;
overflow: hidden;
position: absolute;
}
.align_dr {
text-align: right;
}
#pied p {
font-family: Arial, Helvetica, sans-serif;
font-size: x-small;
color: #CCCCCC;
text-align: right;
padding: 5px;
}
-->
</style>
</head>

<body>
<div id="conteneur">
<div id="entete">
<h1>Mon site</h1>
</div>
<div id="corps">
  <h2>Information importante </h2>
  <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
  <p>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. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
  <p>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>
  <p>Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. 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.</p>
<p class="align_dr">Un changement d'alignement</p>
</div>
<div id="pied">
<p>Le pied de page vient ici... Pourquoi pas :-)</p>
</div>
</div>
</body>
</html>


Voila qui termine une introductions sur une barre de navigation mobile ou fixe, ainsi qu'un pied de page mobile ou fixe.

A retenir : le positionnement Absolu, le positionnement Relatif, le Float.
D'excellent tutoriaux sont consultable sur AlsaCreations.com

[1] : attention toutefois, il vous faut que votre serveur accepte le language dynamique, si ce n'est pas le cas, vous avez la possibilité d'utiliser la balise OBJECT (quoique peut paramétrable sur les navigateurs tel I.E.) ou encore le Javascript mais n'oubliez pas que ce dernier peut ne pas être interprété.

Rectification d'avis

, , , ...

Je vous donnais il y a quelques temps mes surprises sur la qualité de la plateforme avec toutefois deux avis assez négatif...

Dans toute ma surprise, je puis déjà en supprimer un (qui se trouve être la personnalisation) et encore mieux, je puis en rajouter un : la validation du W3C en XHTML Transitionnal.

En effet, la personnalisation du blog peut se faire de plusieurs manières différentes :
  • soit par le choix d'un modèle établis,
  • soit par l'envois d'une feuille de style unique, additionnelle ou complémentaire à la feuille de style désirée,


Je vous laisse aussi profiter de la validation...

Dans cette continuité, je pense migrer complétement sur cette plateforme... Mais les tests continuent (principalement sur les albums photographiques et le système de lien)... A suivre encore, mais après les vacances.
August 2008
MTWTFSS
July 2008September 2008
123
45678910
11121314151617
18192021222324
25262728293031