28173 sujets

CSS et mise en forme, CSS3

Pages :
(reprise du message précédent)

mpop a écrit :

L'astuce est sympathique. Par contre, ça ne peut pas marcher si la hauteur n'est pas fixée ?


Il faut effectivement que la hauteur soit déterminée, c'est d'ailleurs une sévère restriction à l'utilisation de cette technique. Pour ma part ça ne me gène pas trop puisqu'il s'agit plus d'une petite jonglerie css amusante qu'autre chose Smiley smile
gcyrillus a écrit :
C'est le "truc" des pied de page toujours en bas de la page et pas de la fenetre , il me semblait que tu connaisais la technique !?


Ah non tiens, moi j'avais bidouillé un truc compliqué.
Mais cette histoire de de conteneur en position: relative, c'est dans les spécifications ?
Ça me semble étrange d'utiliser le position: relative; dans un but qui n'est pas son but premier. Quelqu'un aurait plus d'infos sur cette question ?
– détails sur le fonctionnement ;
– validité de la manœuvre ;
– compatibilité avec les navigateurs ?
Modifié par mpop (26 Apr 2006 - 16:50)
Interdit d'encadrer un bloc par un lien ?
Qu'est ce que je risque ? Une amende ? Smiley lol
Que me conseillez-vous de faire à la place ? Et pour le cas d'IE ? Ahlalala c'est toujours le case tête ces feuilles de style !!
Merci
Administrateur
pekka a écrit :
Interdit d'encadrer un bloc par un lien ?
Qu'est ce que je risque ? Une amende ? Smiley lol
Simplement que ça ne fonctionne pas partout aujourd'hui ou demain.
Coucou Smiley biggrin

J'ai deux nouvelles...

... Une bonne Smiley smile ...

... et une mauvaise Smiley bawling

D'abord la bonne :

J'ai trouvé la solution Smiley murf

La source de la solution est ici :
clb56 a écrit :

tiens au passage j'avais pas du tout capté que le first -letter ne fonctionnait pas avec les éléments de type inline.

Oui mais si les éléments en questions sont mis en comportement block ??? Smiley lol

donc html

<div id="conteneur">
<a href="#">un lien</a>
</div>


et css

div#conteneur a {
color:#000;
display:block;
text-decoration:none;
}

div#conteneur a:first-letter {
color:red;
font-size:2em;
}

div#conteneur a:hover:first-letter {
color:#aaa;
}


La mauvaise nouvelle maintenant :
mpop a écrit :

Déjà, est-ce théoriquement possible de combiner deux pseudo-classes ?

Je continue à dire que oui

Est ce valide ? Oui

Mais ce n'est pas interprété par Internet Explorer !!!!!!!!!!!
Modérateur
bonjour,

mpop a écrit :
Mais cette histoire de de conteneur en position: relative, c'est dans les spécifications ?


a quoi sert donc le position relative ?

a repositionner , repreciser a partir du flux et de sa position "visuelle" son eventuelle nouvelle position , sans precision il restera a top:0; et left:0; , a priori declarer un element en position:relatif; sans lui donné de nouvelles coordonnées d'affichage ne sert a rien Smiley smile .

Et pourtant ...
Cela a pour effet de "forcer" le navigateur a determiner ,recalculer precisement sa position par rapport aux autre element de la page et ainsi d'avoir une valeur de reference .(faut-il l'indiqué dans les specifications ? )

Donc , mis en position relative un element va voir ces coordonnées chargées en memoire , ces coordonnées deviennent donc accessibles , pour repositionné le dit element mais aussi pour determiné ou se trouve le premier pixel qu'il va utiliser pour se placer, donc des coordonnées exploitables pour positionné les enfants ! .

Le css a cette particularité d'heritage , qui font que tout les elements contenu, seront reconnu comme etant dans cette zone ...

Cela sert aussi par exemple a rendre "visible" un element dans IE qui ne veut pas s'afficher si on ne lui donne pas de taille, cela a donc un effet sur le "haslayout" ou une sorte de "refresh d'affichage" sur le dit element (utile lorsque l'on veut placer et dimensionner un element de type block et dans une page fluide en usant des marge externes laterales sans donner de largeur precise )
Le defaut de IE c'est qu'il peut se contenter que de la position du premier , pixel .
Pour le dernier il ne vas le prendre en compte que si il y a apres cette element en position relative un autre element ....
Ce qui a pour effet de ne pas afficher de barre de scroll ou cela serait necessaire quand l'element en "position relative" se trouve etre le dernier dans son conteneur et si il est plus long que ce que la page peut afficher , ..... blablabla .... désolé pour les termes techniques ou lien, je ne repete personne ... pas de references a donnée .

Les specifications ne sont pas une "obligation" et une fois de plus , aucun navigateurs ne les reconnait a 100% ,chacun d'eux en interprete une partie a leur sauces, voir en ajoute .

Chacun voit le web differement, coté professionnel, coté utilisateurs et selon l'usage ou les "modes" du moment.

Je ne traine quasiment jamais sur le W3C, c'est imbuvable pour un neophite ! et de plus ce n'est pas la qu'il est indiqué si les dites "normes" sont appliquées et par quel navigateur, une reference certe .... mais pas une des regles a suivre avec des oeilleres .

On trouve bien les histoires d'ombrages ou d'arrondis en css dans leurs specifications, mais elles ne servent a rien et pour un bon moment encore, ceci est un exemple parmis d'autre !

On peut passer en MP , ou ouvrir un autre sujet ? car la c'est du hors sujet apres tout .


pour revenir surl e sujet et sans reference techniques ..

Face au besoin de combiné les pseudo format sur la balise <a> dans IE, je fais usage d'un span supplementaire, et je donne l'info en 2 temps:

un premier temps ou j'indique a "a:hover" une nouvelle couleur, puis a "a:hover span:first-letter" la même couleur, ... bizarre n'est ce pas , pas plus que la "palanqué" de hack deja bien connu ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Faux :hover:first-letter</title>
<style type='text/css'> 
div#conteneur a, div#conteneur a span{
color:#000;
display:block;
text-decoration:none;
}
div#conteneur a:hover{
color:green;
/* active la prochaine regle dans IE ,
 pour qui pour quoi , j'en  sais rien, 
mais toujours est-il que ça marche comme 
ça avec mon IE 6 xp home sp2 */ 

}
div#conteneur a:hover span:first-letter {
color:green;
/* cette regle css ne fonctionne pas seule dans mon IE [langue] */
}
div#conteneur a span:first-letter {
color:red;
font-size:2em;
}
</style>
</head>
<body>
<div id="conteneur" class="first">
<a href="#" ><span id="cc"> un lien</span></a>
Il y a surement plus elegant pour activer hover + premier caracteres du lien dans IE .....
</div>
</body>
</html>


++


<edit> , mpop, au fait ton pied de page j'y pensais justement, qui t'avais fait remarquer dans un precedent post que ton pied de page risquer de s'afficher sur les derniers contenus, et que j'utiliser a cette occasion d'un div vide comme d'une marge, toi , tu as opter pour un padding bottom Smiley smile , je prefere le div en plus pour afficher mon pied de page en bas dans une page vide, chacun ses preferences.
Modifié par gcyrillus (27 Apr 2006 - 00:21)
/* Dernier round de hors-sujet */

@ gcyrillus :
Merci bien pour le cours ! Je suis un peu vert de ne pas avoir eu l'info plus tôt (il est vrai que j'ai laissé un peu de côté le fonctionnement exact des positionnements absolu et relatif), mais maintenant que je sais que ça peut marcher ainsi je ferai des tests et rechercherai des articles en temps utile. En tout cas merci pour l'introduction. Smiley cligne

gcyrillus a écrit :
Je ne traine quasiment jamais sur le W3C, c'est imbuvable pour un neophite ! et de plus ce n'est pas la qu'il est indiqué si les dites "normes" sont appliquées et par quel navigateur, une reference certe .... mais pas une des regles a suivre avec des oeilleres .

Bien d'accord avec toi. Je demandais si on en trouvait mention dans les specs pour savoir si ça avait une chance d'être implémenté dans les différents navigateurs d'une manière plus ou moins uniforme, ou bien si chaque navigateur avait fait sa sauce sans référence commune particulière.
En tout cas, c'est sûr que les specs sont relativement imbuvables (quoique, je commence à m'y retrouver de temps en temps).

/* fin du hors-sujet */
Pages :