28220 sujets

CSS et mise en forme, CSS3

Bonjour à tous et à toute
Premier message que je place ici (sorry si ce n'est pas au bon endroit)
Content de rejoindre cette communauté.

Légère présentation :
Je commence à me mettre sérieusement au couple XHTML/CSS et honnêtement c’est un pur bonheur. J’ai cependant encore pas mal de difficulté sur certains points qui s’effacerons (comme dans tous les domaines) au fur et à mesure et surtout via la pratique.

Actuellement entrain de construire une interface d’administration, je me suis dit que c’était le bon moment de mettre en pratique tout ce que j’avais lu et appris dans de nombreux bouquins et sur certains sites.

L’objet de ma visite : Un effet onmouseover/onmouseout
D’habitude (et c’est ce que j’aimerais changer) je décore dynamiquement via du javaScript discret mes boutons pour leur procurer un effet visuel. Effet au survol.
Exemple qui me vient comme ça et qui n’est pas réel (je sais c pas du javaScript discret):

<a onclick="changeImages(....);" onmouseover=" changeImages(....);" onmouseout=" changeImages(....);" href="accueil.htm"><img id="ok_off" src="images/ok_off.jpg" alt="" name="ok_off" height="20" width="32" border="0"></a>


Après je ne sais plus combien d’essai et de recherche ici et là, je me décide enfin à venir vers vous.

Voici le code qui illustre mon souci :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>XXX</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<style type="text/css">
		html 
		{
			margin: 0;
			padding: 0;
		}
		body
		{
			margin: 0;
			padding: 0;
			font-size: 80%;
			font-family: verdana, helvetica, arial, sans-serif;
			background-color: #FFFFFF;
			color: #000;
		}

		a#ok_btn
		{	
			margin: 10px auto; /*Pour voir le trait sur FF */ 
			width: 32px;
			height: 20px;
			display: block;
			background: url(ok_off.jpg) top left no-repeat;
			text-indent: -9000px;
		}

		a#ok_btn:hover
		{
			background: url(ok_over.jpg) top left no-repeat;
		}

		</style>
	</head>
	<body>
		<a id='ok_btn' href='#' title='valider xxx'>ok</a>	</body>
</html>


Sur firefox j’obtiens un trait qui va de la gauche de l’écran jusqu'à mon image.
Chose que je n’ai pas sous IE ou Opéra. Si j’avais mis text-indent: +9000px; le trait irait de mon image jusqu'à la droite de l'écran.
Que se passe t’il ?
Comment expliquer cette effet là et comment y remédier SVP ?

Malgré que mon Admin. soit destiné à une cible ayant IE (Admin. pour un gros groupe qui tourne sous les produits Microsoft) je ne peux laisser passer ça.
Je ne tourne pas sous IE et donc cela me pose problème …

J’espère avoir assez détaillé mon souci. Si vous avez des idées, une autre façon de faire je suis preneur. Un grand merci à l’avance.

Christophe.

PS : Prochain épisode les fichiers HTC pour les PNG transparent découvert grâce à Mr Meyer.
Modifié par nosoucy (07 Apr 2005 - 22:48)
Salut et bienvenu à toi Smiley cligne

Pour le roll Over, je t'indique un petit tutoriel qui devrait te clarifier les choses en principe :
http://www.elmoustikoblog.net/tutoriels/css/roll_over/

Ensuite, je vois ton doctype, Frameset, mais je ne vois pas de frames dans ton code, j'imagine que tu as simplifié le code pour ne donner que ce qui concernait ton problème, mais je préfère m'assurer que tu utilises le bon doctype Smiley cligne
Donc utilises tu des frames ?
Si oui... pourquoi ??/ comment ?? => http://forum.alsacreations.com/topic.php?fid=1&tid=451
Si non, il te faut alors changer de doctype Smiley cligne
http://pompage.net/pompe/doctype/

voilà Smiley cligne

Je déplace dans le salon CSS
Salut Olivier et merci pour cette réponse rapide.
Je vais aller voir ce tutorial de ce pas.

Sinon je savais que la déclaration de mon doctype allais attirer l’attention de certain Smiley smile
Oui je t’utilise un affichage avec frames (pas sur tous les pages).
J’utilise un module (un sous système) déjà construit et réutilisable facilement me permettant de répondre à de nombreux besoins.

Ce module à été construit il y a pas mal de temps déjà et est utilisé uniquement dans le contexte interface d’administration (intranet/extranet).

J’aimerais le refaire pour le rendre conforme aux standards ainsi que flexible point de vu structure (template) et rendu (CSS) mais cela implique un temps et un coût que l’ont peux se permette pour le moment.

J’ai lu avec attention tout ce qui ce disait sur les cadres et j’en suis très sensible. C’est pourquoi sur un site public je ne l’utilise pas.

J’ai pas mal de liberté et je pense arriver petit à petit à changer certaines mentalités (pas toute) et d’habitudes. Le but pour moi étant de démontrer via des cas concrets les bienfaits via une mise en page sans tableau respectant les standards.
Cela ne me fait pas peur c’est un risque que je prend (une mise en page via tableau dans la boite on sais faire et assez vite) et je suis persuadé d’y arriver.

Actuellement bloqué pour cette histoire de cadres, je ne peux faire autrement mais à moyen terme j’y arriverais.

Encore merci pour ta disponibilité et ta gentillesse. Smiley smile
Pour les frames, c'est pas une utilisation bien méchante des frames, donc pas de soucis, surtout si c'est pour un backend, il y a pas mal de problèmes liés aux frames qui s'estompent Smiley cligne
Bien sûr si à moyen terme tu peux faire sans, tant mieux Smiley cligne

C'est déjà bien d'utiliser le bon doctype, s'il existe, ce n'est pas pour rien Smiley lol

Pour ton problème initial, n'hésite pas à poser des questions si tu n'arrives pas à régler le problème.
Bon ben ça y est, comme de nombreuse fois cela n’était pas si dur que ça. Mais je ne regrette pas, le temps passé dessus m’a permis d’apprendre pas mal de choses.

Pour rappel, le but était de renseigner mes liens (images) afin de leur donner un sens mais de rendre invisible aux navigateurs graphiques le contenu textuel.
C’est pourquoi j’avais mis text-indent: -9000px; afin de faire sortir le texte à l’écran.

En fin de compte ceci :

<a id='ok_btn' href='#' title='valider xxx'> 
<span class="hidden">Cliquez ici pour valider votre inscription</span>
</a>

avec cela :

.hidden
{
display: none;
}

donne fin à mon objectif initial.

Content je suis Smiley ravi
Ahh pardon, j'avais pas pigé ton problème Smiley lol , en fait mon lien ne t'apportait rien du tout Smiley lol

Oui c'est une solution celle que tu indiques, mais il faut savoir qu'elle n'est pas des plus souhaitable, en effet display: none; et visibility: hidden; sont prises en comptes par les navigateurs vocaux actuels et donc, ne sont pas lu ce qui enleve une partie de l'information.

Essai de voir du côté de clip (sur le blog de Laurent Denis (!google blog and blues) ou sur la FAQ, il me semble qu'il y a un truc à ce sujet.)
Merci, je ne savais pas que display: none; et visibility: hidden; n'était pas pris en compte par les navigateurs vocaux.
J'ai rien trouvé dans la FAQ. Je vais donc aller voir sur Blog & Blues


allez hop j'enlève le résolu Smiley langue
nosoucy a écrit :

je ne savais pas que display: none; et visibility: hidden; n'était pas pris en compte par les navigateurs vocaux.

Ils le sont justement Smiley cligne ce qui pose problème Smiley lol