28173 sujets

CSS et mise en forme, CSS3

Bonjour à tous!

Voila j'ai problème avec mon code CSS concernant le pseudo format "first-letter".
C'est très simple, je souhaite que toutes les premières lettres de mes puces est une couleur spécifique.
Celle ci sont dans un div de type class :

.navig li:first-letter
{
     color: #FF0000;
}


Et bien ce là ne fonctionne tout simplement pas, et j'ai essayer plusieurs solutions qui ne marchent non plus.
Pareil avec :

.navig ul:first-letter
{
    color: #FF0000;
}


ou encore:

.navig li a:first-letter
{
   color: #FF0000;
}

etc...
Je suis à cour d'idée alors si vous avez une idée....

Merci d'avance! Smiley smile
Modifié par harddream (07 Jun 2007 - 16:26)
Administrateur
harddream a écrit :

Pareil avec :

.navig ul: first-letter
{
    color: #FF0000;
}

Hello,

Attention, tu as ici un espace avant "first-letter". Il faut bien respecter les syntaxes.

Sinon, as-tu suivi ce point de la FAQ ?
Salut à toi!

Merci de ta réponse^^
J'ai fait un EDIT car je me suis trompé en postant mais ma ligne de code n'avait pas d'espace en fait^^

Pour ce qui est de la FAQ, je l'ai déjà lu, au niveau de IE je connais bien le problème, mais cela ne marche pas sous Firefox ou autre....
La popriété complètement basic "color: #FF0000;" ne pose pas de problème. Smiley murf

C'est l'impasse... Smiley sweatdrop
Modifié par harddream (07 Jun 2007 - 13:59)
Salut,

ben tu as du faire une erreur quelque part parce que il n'y a aucun problème a priori en fait.

Donc un code complet html et css pour voir s'il n'y a pas un style qui se surimpose à ta déclaration, ça arrive assez facilement.

Est ce que la pseudo classe :first-letter est déjà déclarée quelque part dans la feuille de style ?
Modifié par Christian Le Bouler (07 Jun 2007 - 14:03)
Christian Le Bouler a écrit :
Salut,

ben tu as du faire une erreur quelque part parce que il n'y a aucun problème a priori en fait.

Donc un code complet html et css pour voir s'il n'y a pas un style qui se surimpose à ta déclaration, ça arrive assez facilement.

Est ce que la pseudo classe :first-letter est déjà déclarée quelque part dans la feuille de style ?


C'est ce qu'il me semble aussi.

Voila le HTML :


<!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" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

<title>SSR Technologie</title>
<style type="text/css" media="screen"><!-- @import url(index2.css)screen; --></style>
<!--[if IE]><link href="index2.css" rel="stylesheet" type="text/css"><![endif]-->
</head>

<body>

<div id="header"><!-- Le header avec bannière uniquement. La barre de navigation rapide n'est pas incluse -->
</div>

<div class="quick">

	<div class="login"><!-- Div de formulaire de connexion -->
	
		<form method="post" action="login_load.php">
			<label>Pseudo :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!-- Pseudo -->
			</label>
			<input type="text" name="pseudo" size="10" tabindex="1" value="pseudo" title="Pseudo"/>&nbsp;&nbsp;<br><!-- Fin du pseudo -->
			
			<label>Mot de passe :<!-- Mot de passe -->
			</label>
			<input type="password" name="mdp" size="10" tabindex="2" value="mot de 66" title="Votre mot de passe"/>&nbsp;&nbsp;<br><!-- Fin du mot de passe -->
			<div class="send_login"><!-- Div pour le remplacement du bouton de formulaire "send" -->
				<input name="Send" type="image" value="Send" src="send_valid.png" alt="envoyer" title="Envoyer"/>
			</div><!-- Fin du Div du bouton "send" -->
		</form>
		
	</div><!-- Fin du div de formulaire de connexion -->

	<div class="navig"> <!-- Bare de navigation rapide -->
	
		<ul>
						<!--[if IE]>
						<li><a href="#">Inscription</a>&nbsp;|</li>
						<li><a href="#">Présentation</a>&nbsp;|</li>
						<li><a href="#">News</a>&nbsp;|</li>
						<li><a href="#">Projets</a>&nbsp;|</li>
						<li><a href="#">Votre comtpe</a>&nbsp;|</li>
						<li><a href="#">Contacts</a>&nbsp;|</li>
						<![endif]-->
						<!--[if !IE]><-->
						<li><a href="#">Inscription</a></li>
						<li><a href="#">Présentation</a></li>
						<li><a href="#">News</a></li>
						<li><a href="#">Projets</a></li>
						<li><a href="#">Votre compte</a></li>
						<li><a href="#">Contacts</a></li>
						<!--<![endif]-->
						
			</ul>
		
	
	</div><!-- Fin de la barre de navigation rapide -->
	
</div>

<div class="body"><!-- Début du body -->


</div><!-- Fin du body -->

<div class="footer"><!-- Début du footer -->
	SSR Technologies EURL

</div><!-- Fin du footer -->

</body>

</html>


Voilà le CSS :


body 
{
   width: 100%;
   height: 100%;
   margin: auto;
   margin-left: auto; /* Pour centrer notre page */
   margin-right: auto;
   background-color: #eae8e7; /* Couleurs de fond */
   text-decoration: none;
   
}
a /* On défini les paramètres par défaut des liens, on vire les laideurs */
{
	border: 0px;
	border-color: none;
	text-decoration: none; 
	color: #53a6b4;
	font-weight: bold;
}
#header
{
	width: 768px;
	height: 199px;
	margin-left: auto;
	margin-right: auto;
	background-image: url("header_2.png");
}
.quick
{
	width: 771px;
	height: 65px;
	margin-left: auto;
	margin-right: auto;
	background-image: url("quick.png");
}
.login
{
	width: 220px;
	height: 40px;
	margin-left: 20px;
	float: left; 
	margin-top: 10px;
	font-size: 0.9em;
	color: #0765af;
	font-weight: bold;
}
.login input
{
	border: 1px dotted;
	border-color: #FF0000;
	height: 15px;
	color: #000000;
	font-weight: bold;
	font-size: 0.9em;
}
.send_login input
{
	width: 20px;
	height: 20px;
	border: 0px;
	border-color: none;
	float: left;
	margin-left: 192px;
	margin-top: -18px;
}
.navig
{
	width: 640px;
	height: 30px;
	float: left;
	margin-left: 250px;
	margin-top: -25px;
	
}
.navig ul
{
	list-style-type: none;
	display: inline;
	text-align: center;
	vertical-align: middle;
    margin: 0;
    padding: 0;
}
.navig li
{
	list-style-type: none;
	font-family: "Time New Roman";
	font-weight: normal;
	display: inline;
	font-size: 14px!important;
	font-size: 13px;
    margin: 0;
    padding: 0;
}
.navig li:first-letter 
{
	color: #FF0000;
}
.navig li:after
{
	content: "     | ";
}
.navig ul a
{
	text-decoration: none;
	color: #000000;
}
.navig ul a:hover
{
	text-decoration: underline;
	color: #FF0000;
}
.body
{
	width: 771px;
	height: 534px;
	margin-left: auto;
	margin-right: auto;
	background-image: url("body.png");
}
.footer
{
	width: 771px;
	height: 70px;
	margin-left: auto;
	margin-right: auto;
	border-top: 1px dashed;
	background-image: url("footer.png");
	text-align: center;
	font-size: 0.8em;
}


Voila. Smiley smile
Salut,
j'ai bien peur que le :first-letter ne fonctionne qu'avec des div ou des p ou des éléments de paragraphes.

quand tu ajoutes à la fin de tes styles :

.navig:first-letter{color:#f00}


on a bien la première lettre en rouge...
par contre sur a, li ou ul ca marche pas....

Par contre ! (chose affreuse !) Smiley biggol ,
si tu places des div dans tes a de menu
ce qui donne par exemple :
<li><a href="#"><div>Inscription</div></a>&nbsp;|</li>

(c'est affreux, je vous avez prévenus)

que tu changes ton style en :

.navig div:first-letter{color:#f00}
.navig div{float:left}

là par magie tu auras tes lettres en rouge.
Par contre point de vue sémantique et code propre c'est pourri !
Modifié par tioneb369 (07 Jun 2007 - 14:38)
tioneb369 a écrit :
Salut,
j'ai bien peur que le :first-letter ne fonctionne qu'avec des div ou des p ou des éléments de paragraphes.

quand tu ajoutes à la fin de tes styles :

.navig:first-letter{color:#f00}


on a bien la première lettre en rouge...
par contre sur a, li ou ul ca marche pas....

Par contre ! (chose affreuse !) Smiley biggol ,
si tu places des div dans tes a de menu
ce qui donne par exemple :
<li><a href="#"><div>Inscription</div></a>&nbsp;|</li>

(c'est affreux, je vous avez prévenus)

que tu changes ton style en :

.navig div:first-letter{color:#f00}
.navig div{float:left}

là par magie tu auras tes lettres en rouge.
Par contre point de vue sémantique et code propre c'est pourri !


Salut merci pour ta réponse.

Bon on va dire que j'ai trouver.^^
"first-letter ne s'applique qu'au contenu d'un élément de type block, list-item, table-cell, table-caption et inline-block... Mais pas aux éléments inline cligne "

Citation d'un post sur le forum.

En effet j'ai effectuer un float sur

.navig ul
{
	list-style-type: none;
	display: inline;
	text-align: center;
	vertical-align: middle;
    margin: 0;
    padding: 0;
	float: left;
}
.navig li
{
	list-style-type: none;
	font-family: "Time New Roman";
	font-weight: normal;
	display: inline;
	font-size: 15px!important;
	font-size: 14px;
    margin: 0;
    padding: 0;
	float: left;
}

Et celà fonctionne, sauf que!
Et oui fau bien qu'il est un mais Smiley murf
Ces puces sont des liens, et lorsque la souris est passé dessus, les premières lettres redeviennent Noires...

Comment faire ?

D'avance merci Smiley smile

EDIT:
j'ai trouver pour que les liens restent avec le même effet, voilà le CSS actuel :


body 
{
   width: 100%;
   height: 100%;
   margin: auto;
   margin-left: auto; /* Pour centrer notre page */
   margin-right: auto;
   background-color: #eae8e7; /* Couleurs de fond */
   text-decoration: none;
   
}
a /* On défini les paramètres par défaut des liens, on vire les laideurs */
{
	border: 0px;
	border-color: none;
	text-decoration: none; 
	color: #53a6b4;
	font-weight: bold;
}
a:first-letter
{
	color: #FF0000;
}
#header
{
	width: 768px;
	height: 199px;
	margin-left: auto;
	margin-right: auto;
	background-image: url("header_2.png");
}
.quick
{
	width: 771px;
	height: 65px;
	margin-left: auto;
	margin-right: auto;
	background-image: url("quick.png");
}
.login
{
	width: 220px;
	height: 40px;
	margin-left: 20px;
	float: left; /* Obligation d'utiliser un flottant */
	margin-top: 10px;
	font-size: 0.9em;
	color: #0765af;
	font-weight: bold;
}
.login input
{
	border: 1px dotted;
	border-color: #FF0000;
	height: 15px;
	color: #000000;
	font-weight: bold;
	font-size: 0.9em;
}
.send_login input
{
	width: 20px;
	height: 20px;
	border: 0px;
	border-color: none;
	float: left;
	margin-left: 192px;
	margin-top: -18px;
}
.navig
{
	width: 640px;
	height: 30px;
	float: left;
	margin-left: 250px;
	margin-top: -25px;
	
}
.navig ul
{
	list-style-type: none;
	display: inline;
	text-align: center;
	vertical-align: middle;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li
{
	list-style-type: none;
	font-family: "Time New Roman";
	font-weight: normal;
	display: inline;
	font-size: 15px!important;
	font-size: 14px;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li:first-letter 
{
	color: #FF0000;
}
.navig li:after
{
	content: "     | ";
	padding: 5px;
}
.navig ul a:hover
{
	
	text-decoration: underline;
	color: #FF0000;
}
.body
{
	width: 771px;
	height: 534px;
	margin-left: auto;
	margin-right: auto;
	background-image: url("body.png");
}
.footer
{
	width: 771px;
	height: 70px;
	margin-left: auto;
	margin-right: auto;
	border-top: 1px dashed;
	background-image: url("footer.png");
	text-align: center;
	font-size: 0.8em;
}


Je suis assez vicieux et je vais encore vous embêter mais, je voudrais lros du survol, que le first letter s'inverse, c'est à dire :
A la base les premières lettres des puces sont rouges donc, et le reste dans une autre couleur, je voudrais que lorsque l'on survol le lien/la puce, la première lettre devienne de la couleur des autres lettre, et que les autres lettres soient rouges... Smiley rolleyes

oui j'avoue je cherche la merde Smiley langue
Modifié par harddream (07 Jun 2007 - 15:19)
Très franchement, moi j'arrêterais de jongler avec les CSS
surtout pour faire des trucs aussi tordus Smiley cligne

Je ferais un ti truc en javascript qui change la classe de tes liens
au passage de la souris...
Avec ça tu peux tout faire.
a écrit :

"first-letter ne s'applique qu'au contenu d'un élément de type block, list-item, table-cell, table-caption et inline-block... Mais pas aux éléments inline cligne "


A tu essayé de rendre tes liens A de type block ?
Modifié par tioneb369 (07 Jun 2007 - 15:56)
Regarde ce code :
il conserve la première lettre en rouge.


<html>
<head>
<style type="text/css">

.navig ul{list-style-type:none;margin:0em;padding:0em}
.navig a{display:block;float:left;color:#000;text-decoration:none}
.navig li{float:left;margin:0em 1em;padding:0em}
.navig a:first-letter{color:#f00}
.navig a:hover{color:#f00}

</style>
</head>
<div class="navig">
<ul>
<li><a href="#">Menu1</a></li>
<li><a href="#">Menu1</a></li>
<li><a href="#">Menu1</a></li>
</ul>
</div>
</body>
</html>



A part ca faire le
swap est quasi impossible, ca reviendrait à faire un rollover comme une image, et là tu fais intervenir du javascript.
Merci pour ton aide tioneb369 Smiley smile
Et merci aux autres aussi Smiley cligne

Avec ça j'ai tout ce que je veux :


.navig ul
{
	list-style-type: none;
	display: inline;
	text-align: center;
	vertical-align: middle;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li
{
	list-style-type: none;
	font-family: "Time New Roman";
	font-weight: normal;
	display: inline;
	font-size: 16px!important;
	font-size: 14px;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li:first-letter 
{
	color: #FF0000;
}
.navig li:after
{
	content: "     | ";
	padding: 5px;
}
.navig ul a:hover:first-letter
{
	color: #53a6b4;
}
.navig ul a:hover
{
	color: #FF0000;
}


EDIT: Toutes mes excuses aux modérateurs, un bug est survenu lors de l'envoie de mon post ce qui à créé un peux nimporte quoi divisé en 3 posts Smiley sweatdrop
Modifié par harddream (07 Jun 2007 - 18:30)
Merci pour ton aide tioneb369 Smiley smile
Et merci aux autres aussi Smiley cligne

Avec ça j'ai tout ce que je veux :


.navig ul
{
	list-style-type: none;
	display: inline;
	text-align: center;
	vertical-align: middle;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li
{
	list-style-type: none;
	font-family: "Time New Roman";
	font-weight: normal;
	display: inline;
	font-size: 16px!important;
	font-size: 14px;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li:first-letter 
{
	color: #FF0000;
}
.navig li:after
{
	content: "     | ";
	padding: 5px;
}
.navig ul a:hover:first-letter
{
	color: #53a6b4;
}
.navig ul a:hover
{
	color: #FF0000;
}

*
Voilà problème résolu.

A bientôt Smiley smile
Merci pour ton aide tioneb369 Smiley smile
Et merci aux autres aussi Smiley cligne

Avec ça j'ai tout ce que je veux :


.navig ul
{
	list-style-type: none;
	display: inline;
	text-align: center;
	vertical-align: middle;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li
{
	list-style-type: none;
	font-family: "Time New Roman";
	font-weight: normal;
	display: inline;
	font-size: 16px!important;
	font-size: 14px;
    margin: 0;
    padding: 0;
	float: left; /* On ajoute des flottants pour que le first-letter puisse fonctionner */
}
.navig li:first-letter 
{
	color: #FF0000;
}
.navig li:after
{
	content: "     | ";
	padding: 5px;
}
.navig ul a:hover:first-letter
{
	color: #53a6b4;
}
.navig ul a:hover
{
	color: #FF0000;
}

*
Voilà problème résolu.

A bientôt Smiley smile