5568 sujets

Sémantique web et HTML

Pages :
Bonjour à tous,

voilà j'ai récupérer un code d'un mouvement de souris sur des liens de news qui produit un changement d'affichage de l'image selon le titre survolé.

Je mets le code tel quel, parce que j'ai dument essayé de changer le code (supprimer les balises obsolètes, fermer les balises ...) mais voila tout changement apporté va déformer la page résultante

Alors j'aimerais bien avoir le code écrit selon les normes, sans bousier l'affichage du mouvement voulu.

Merci d'avance.


<html dir="ltr">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252>

<script language="JavaScript1.2">
var ns6=document.getElementById&&!document.all
var ie=document.all

function changeto(e,highlightcolor){
source=ie? event.srcElement : e.target
if (source.tagName=="TR"||source.tagName=="TABLE")
return
while(source.tagName!="TD"&&source.tagName!="HTML")
source=ns6? source.parentNode : source.parentElement
if (source.style.backgroundColor!=highlightcolor&&source.id!="ignore")
source.style.backgroundColor=highlightcolor
}

function contains_ns6(master, slave) { //check if slave is contained by master
while (slave.parentNode)
if ((slave = slave.parentNode) == master)
return true;
return false;
}

function changeback(e,originalcolor){
if
(ie&&(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignore")||source.tagName=="TR"||source.tagName=="TABLE")
return
else if (ns6&&(contains_ns6(source, e.relatedTarget)||source.id=="ignore"))
return
if (ie&&event.toElement!=source||ns6&&e.relatedTarget!=source)
source.style.backgroundColor=originalcolor
}
</script>
</head>


<body>

<div align="center">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="350">
<tr>
<td align="center" width="100%" height="111" valign="top">

<style type="text/css">
a {
    color: blue;
    text-decoration: none;
}
a:hover {
    color : red;
    text-decoration: none;
}
div {
    font-family: verdana;
}
</style>

<div align="center">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="150" align="center" valign="top">
<p align="center"></p>


<div id="a" style="display: none;">

<p dir="ltr">

<table border=0 width=98%><table border=0 width=98%>	<table border="0" cellpadding="0" style="border-collapse: collapse" width="145" height="110">
<tr>
<td>
<p align="center"><a target="_parent" href="news.php?action=view&id=55">
<img border="0" src="filemanager.php?action=image&id=<img width=150 height=122 border =0  align=center src=filemanager.php?action=image&id=58 >" width="150" height="122"></a></td>
</tr>
</table>
</p>
</div>

<div id="b" style="display: none;">

<p dir="ltr">

<table border=0 width=98%><table border=0 width=98%>	<table border="0" cellpadding="0" style="border-collapse: collapse" width="145" height="110">
<tr>
<td>
<p align="center"><a target="_parent" href="news.php?action=view&id=51">
<img border="0" src="filemanager.php?action=image&id=<img width=150 height=122 border =0  align=center src=filemanager.php?action=image&id=54 >" width="150" height="122"></a></td>
</tr>
</table>
</p>
</div>

<div id="c" style="display: none;">

<p dir="ltr">

<table border=0 width=98%><table border=0 width=98%>	<table border="0" cellpadding="0" style="border-collapse: collapse" width="145" height="110">
<tr>
<td>
<p align="center"><a target="_parent" href="news.php?action=view&id=41">
<img border="0" src="filemanager.php?action=image&id=<img width=150 height=122 border =0  align=center src=filemanager.php?action=image&id=43 >" width="150" height="122"></a></td>
</tr>
</table>
</p>
</div>
</td>
<td align="right">
<div align="center">
<table border="1" cellpadding="0" style="border-collapse: collapse" width="100%" id="table1" bordercolor="#9DAABF" onmouseover="changeto(event, '2e3b60')" onmouseout="changeback(event, '728cb7')">
<tr>
		
<style type="text/css">
a {
    color: blue;
    text-decoration: none;
}
a:hover {
    color : red;
    text-decoration: none;
}
div {
    font-family: verdana;
}
</style>

<script language="javascript">
var speed="1"; 
var i=1;
function showNews() {
if (i==1){show(a,b,c);i=0}
}

function show(a,b,c) {
a.style.display = '';
b.style.display = 'none';
c.style.display = 'none';
}
setInterval("showNews()", speed*2000);
</script>

<td bgcolor="#728cb7" align="center" width="100%" height="40">

<p dir="ltr">

<table border=0 width=98%><a href="javascript:void(0)" onmousemove="javascript:show(a,b,c)">
<font color="#000000">
<table border=0 width=98%>
<div align="center">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="96%">
<tr>
<td id="ignore">
<font face="Tahoma" style="font-size: 9pt" color="#FFFFFF">
<a target="_parent" href="news.php?action=view&id=55"><font color="#FFFFFF">Articles 1</font></a></font></td>
</tr>
</div>
</table>
</font></a></p>
</td>
</tr><tr>
<tr>
<td bgcolor="#728cb7" align="center" width="100%" height="40">

<p dir="ltr">


<table border=0 width=98%><a href="javascript:void(0)" onmousemove="javascript:show(b,c,a)">
<font color="#000000">
<table border=0 width=98%><div align="center">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="96%">
<tr>
<td id="ignore">
<font face="Tahoma" style="font-size: 9pt" color="#FFFFFF">
<a target="_parent" href="news.php?action=view&id=51"><font color="#FFFFFF">Articles 2</font></a></font></td>
</tr>
</div>
</table>
</font></a></p>
</td>
</tr>
<tr>
<td bgcolor="#728cb7" align="center" width="100%" height="40">

<p dir="ltr">


<table border=0 width=98%>
<a href="javascript:void(0)" onmousemove="javascript:show(c,a,b)">
<font color="#000000">
<table border=0 width=98%><div align="center">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="96%">
<tr>
<td id="ignore">
<font face="Tahoma" style="font-size: 9pt" color="#FFFFFF">
<a target="_parent" href="news.php?action=view&id=41"><font color="#FFFFFF">Articles 3</font></a></font></td>
</tr>
</div>
</table>
</font></a></p>
</td>
</tr>

</div>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
</body>
</html>
</tr>
</table>
</div>
</div>

Modifié par apt (05 Dec 2009 - 18:09)
Salut,

Correction et non Correstion, ça c'est une correction facile.

Ensuite, comme tu dois le savoir, Alsacréations n'est pas une communauté d'assistanat ayant pour but de faire le travail à ta place.

Ton code ne semble pas comporter de doctype, ce qui serait déja la première des choses à faire pour rendre ton site conforme. Donc en conséquence, on ne sait pas quel doctype tu as choisi, ce qui rend notre aide difficile à obtenir.
Un peu de lecture sur le sujet : Les DTD HTML4.01 et XHTML1.0 : comment choisir ?

Une fois que ton doctype sera inséré dans ton document, il te faudra passer ton code au validateur sur le site du W3C, qui te répondra sur la validité de ton code. S'il n'est pas parfaitement valide, il te faudra suivre les instructions erreur par erreur en prenant toujours soin de les corriger dans l'ordre (souvent, une première erreur en engendre d'autre, aussi il n'est pas rare d'en corriger une et d'en voir disparaitre plusieurs).

Si ensuite le rendu n'est plus ce que tu souhaitais, c'est alors qu'il te faudra mettre à jour ta feuille de style pour obtenir la mise en forme voulue.

Ceci dit, avant de faire tout ça, tu peux aussi décider de vraiment moderniser et alléger ton site en le construisant sans tableau. Ca sera vraiment un plus si tu souhaite obtenir un site réellement standard et surtout plus accessible.

Dans toutes ces étapes, si tu rencontre des difficultés, n'hésite pas à nous demander de l'aide, avec une page en ligne à l'appui, une explication claire, éventuellement du code si la page en ligne n'est pas possible (mais du code produit, pas celui comportant les formules en php), et pourquoi pas des schémas. Il sera alors parfaitement possible de t'aider, sans pour autant faire le travail à ta place.

Bon courage, tu vas en avoir besoin. Smiley cligne
Modifié par Mikachu (30 Nov 2009 - 23:52)
apt a écrit :
voilà j'ai récupérer un code

Ce code est antédiluvien, tu peux l'oublier de suite.

Pour le reste:
- Apprendre les bases de HTML si elles ne sont pas connues.
- Apprendre les bases de CSS si elles ne sont pas connues.
- Apprendre les bases de JavaScript si elles ne sont pas connues.

À partir de là, tu devrais pouvoir coder toi-même les fonctions JavaScript très simples te permettant, par exemple, de modifier un élément A lors du survol d'un élément B.
Bonjour,

le problème que ce code vient ainsi dans l'index du site, et il fonctionne trés bien :

<!ENTITY % HTMLspecial PUBLIC "-//W3C//ENTITIES Special//EN//HTML" 
   "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent">
<HTML><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="fr">
<META content="ALL" name="ROBOTS">
<META NAME="REVISIT-AFTER" CONTENT="1 DAYS">
<META NAME="RATING" CONTENT="GENERAL">
<title></title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="html/css/asd.css">
<script language="javascript" type="text/javascript">
function mail(user, domain){window.location = 'mailto:'+user+'@'+domain;}
</script><script language="JavaScript" type="text/javascript">
function rafiawin(external, height, width) {
    options = 'height=' + height + ',width=' + width + ',scrollbars=yes,resizable=yes,top=0,left=0';
window.open(external, 'rafia', options);
}
function fermer()
{
    self.close();
}
</script>
</head>
<body bgcolor="#515773">
.....
<p></p>
<p></p>
<html>  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252>  <script language="JavaScript1.2"> var ns6=document.getElementById&&!document.all var ie=document.all  function changeto(e,highlightcolor){ source=ie? event.srcElement : e.target if (source.tagName=="TR"||source.tagName=="TABLE") return while(source.tagName!="TD"&&source.tagName!="HTML") source=ns6? source.parentNode : source.parentElement if (source.style.backgroundColor!=highlightcolor&&source.id!="ignore") source.style.backgroundColor=highlightcolor }  function contains_ns6(master, slave) { //check if slave is contained by master while (slave.parentNode) if ((slave = slave.parentNode) == master) return true; return false; }  function changeback(e,originalcolor){ if (ie&&(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignore")||source.tagName=="TR"||source.tagName=="TABLE") return else if (ns6&&(contains_ns6(source, e.relatedTarget)||source.id=="ignore")) return if (ie&&event.toElement!=source||ns6&&e.relatedTarget!=source) source.style.backgroundColor=originalcolor } </script> </head>   <body>  <div align="center"> <table border="0" cellpadding="0" style="border-collapse: collapse" width="350"> <tr> <td align="center" width="100%" height="111" valign="top">  <style type="text/css"> a {     color: blue;     text-decoration: none; } a:hover {     color : red;     text-decoration: none; } div {     font-family: verdana; } </style>  <div align="center"> <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> <tr> <td width="150" align="center" valign="top"> <p align="center"></p>   <div id="a" style="display: none;">  <p dir="ltr">  <table border=0 width=98%><table border=0 width=98%>    <table border="0" cellpadding="0" style="border-collapse: collapse" width="145" height="110"> <tr> <td> <p align="center"><a target="_parent" href="news.php?action=view&id=55"> <img border="0" src="filemanager.php?action=image&id=<img width=150 height=122 border =0  align=center src=filemanager.php?action=image&id=58 >" width="150" height="122"></a></td> </tr> </table> </p> </div>  <div id="b" style="display: none;">  <p dir="ltr">  <table border=0 width=98%><table border=0 width=98%>    <table border="0" cellpadding="0" style="border-collapse: collapse" width="145" height="110"> <tr> <td> <p align="center"><a target="_parent" href="news.php?action=view&id=51"> <img border="0" src="filemanager.php?action=image&id=<img width=150 height=122 border =0  align=center src=filemanager.php?action=image&id=54 >" width="150" height="122"></a></td> </tr> </table> </p> </div>  <div id="c" style="display: none;">  <p dir="ltr">  <table border=0 width=98%><table border=0 width=98%>    <table border="0" cellpadding="0" style="border-collapse: collapse" width="145" height="110"> <tr> <td> <p align="center"><a target="_parent" href="news.php?action=view&id=41"> <img border="0" src="filemanager.php?action=image&id=<img width=150 height=122 border =0  align=center src=filemanager.php?action=image&id=43 >" width="150" height="122"></a></td> </tr> </table> </p> </div> </td> <td align="right"> <div align="center"> <table border="1" cellpadding="0" style="border-collapse: collapse" width="100%" id="table1" bordercolor="#9DAABF" onmouseover="changeto(event, '2e3b60')" onmouseout="changeback(event, '728cb7')"> <tr>          <style type="text/css"> a {     color: blue;     text-decoration: none; } a:hover {     color : red;     text-decoration: none; } div {     font-family: verdana; } </style>  <script language="javascript"> var speed="1";  var i=1; function showNews() { if (i==1){show(a,b,c);i=0} }  function show(a,b,c) { a.style.display = ''; b.style.display = 'none'; c.style.display = 'none'; } setInterval("showNews()", speed*2000); </script>  <td bgcolor="#728cb7" align="center" width="100%" height="40">  <p dir="ltr">  <table border=0 width=98%><a href="javascript:void(0)" onmousemove="javascript:show(a,b,c)"> <font color="#000000"> <table border=0 width=98%> <div align="center"> <table border="0" cellpadding="0" style="border-collapse: collapse" width="96%"> <tr> <td id="ignore"> <font face="Tahoma" style="font-size: 9pt" color="#FFFFFF"> <a target="_parent" href="news.php?action=view&id=55"><font color="#FFFFFF">Articles 1</font></a></font></td> </tr> </div> </table> </font></a></p> </td> </tr><tr> <tr> <td bgcolor="#728cb7" align="center" width="100%" height="40">  <p dir="ltr">   <table border=0 width=98%><a href="javascript:void(0)" onmousemove="javascript:show(b,c,a)"> <font color="#000000"> <table border=0 width=98%><div align="center"> <table border="0" cellpadding="0" style="border-collapse: collapse" width="96%"> <tr> <td id="ignore"> <font face="Tahoma" style="font-size: 9pt" color="#FFFFFF"> <a target="_parent" href="news.php?action=view&id=51"><font color="#FFFFFF">Articles 2</font></a></font></td> </tr> </div> </table> </font></a></p> </td> </tr> <tr> <td bgcolor="#728cb7" align="center" width="100%" height="40">  <p dir="ltr">   <table border=0 width=98%> <a href="javascript:void(0)" onmousemove="javascript:show(c,a,b)"> <font color="#000000"> <table border=0 width=98%><div align="center"> <table border="0" cellpadding="0" style="border-collapse: collapse" width="96%"> <tr> <td id="ignore"> <font face="Tahoma" style="font-size: 9pt" color="#FFFFFF"> <a target="_parent" href="news.php?action=view&id=41"><font color="#FFFFFF">Articles 3</font></a></font></td> </tr> </div> </table> </font></a></p> </td> </tr>  </div> </div> </td> </tr> </table> </div> </td> </tr> </table> </div> </body> </html> </tr> </table> </div> </div> 
<p></p>
<p></p>
....
</body> 
</html>


On peux voir deux balises HTML et deux BODY Smiley biggol

Je l'ai fait passer dans W3C Validator et il est plein d'erreurs ...

J'ai pu corriger quelques uns.

j'ai essayé de modifier le code en supprimant les doublons des balises HTML, BODy et HEAD en deplaçant le "Javascript 1.2" situé dans le deuxieme HEAD dans le HEAD principal du site.

mais voila la page ne s'affiche plus.

Est-ce qu'il y'a une façon pour l'aisser le javascript ou est il tout en supprimmant les balises en double ?

Sinon comment récuperer le code de l'effet survol de la souris sur les liens des news pour l'affichage en face de l'image de ce news ?

Merci.
Modifié par apt (02 Dec 2009 - 11:58)
Salut,

Tout le monde sur ce forum a fait le choix de passer aux sites standards, qui sont plus légers à coder, à maintenir, et apportent de meilleurs résultats en terme de fiabilité, de temps de chargements, etc. Par conséquent, aller remettre les mains dans un camboui vieux d'un siècle ne donnera envie à personne.

Comme nous te l'avons suggéré précédemment, je pense que tu auras plus vite fait de tout refaire avec un code plus propre, ce qui te permettra d'avoir un site standard, comme cela semble être ton souhait.

Tu as des liens que je t'ai fourni l'autre jour, et tu peux trouver encore plus d'informations dans la rubrique "Apprendre" lorsque tu as des interrogations. Ou demander de l'aide sur le forum lorsque tu rencontre un problème.

Bon courage. Smiley cligne
salut,

a écrit :
aller remettre les mains dans un camboui vieux d'un siècle ne donnera envie à personne.


Si moi, j'adore ce type de défi. Et au moins c'est utile, même à moi.

j'y suis presque mais le js, je veux bien le corriger mais le html, j'en ai marre, trop nase. Une heure que j'y suis et là les tables je les gicles ou j'abandonne. Maso mais pas trop;)

Ok? Cà te feras un tuto pour voir la différence et la façon de s'y prendre pour coder sans tables et selon les rêgles xhtml/css. Encore une chose, le js jamais il ne passe avec tout les navigateurs, sur. Il existe de très bonnes bibliothèque comme jquery, prototype, etc. qui peuvent permettrent de faire ce que veux en quatre lignes sans te soucier de la compatibilité et du filtrage du navigateur.
Modifié par keran (03 Dec 2009 - 18:43)
j'ai deja essayer de trouver quelque chose de similaire avec jquery, mais je n'ai rien trouvé.

Pour le javascript il y'a les trois fonctions nécéssaires :

1 - changeto

2 - changeback

3 - show(a,b,c)
et comme, c'est un bon pas ?

<head>
	<style type="text/css">
		a span 		{ 	display: none;	
					position: absolute;
					top: 10px;
					left: 20px;
				}
		a:hover span	{ 	display:inline;	}
		
		a:hover p	{ 	background-color : #d3d3d3; display:inline;	}

		
		#mouse_news     {position : relative; width : 200px;}
		
	</style>
</head>
<body>
<div id="mouse_news">
<div><a href="#"><p>lien n°1</p>
		<span>
			<img src="news1.jpg" width="80" height="80" />
		</span>
	</a>
</div>
<div><a href="#"><p>lien n°2</p>
		<span>
			<img src="news2.jpg" width="80" height="80" />
		</span>
	</a>
</div>
<div><a href="#"><p>lien n°3</p>
		<span>
			<img src="news3.jpg" width="80" height="80" />
		</span>
	</a>
</div>
</body>
</html>

Modifié par apt (05 Dec 2009 - 15:09)
Ce n'est pas bon : l'élément a (de type en ligne) ne peut pas avoir comme élément enfant un élément de type bloc (comme p). En outre, ton élément div "mouse_news" n'est pas fermé.

D'ailleurs, ton code sent un peu la divite et gagnerait en sémantique s'il était codé comme suit (par exemple) :
<head>
  <style type="text/css">
    a img {
      display: none;
      position: absolute;
      top: 10px;
      left: 20px;
    } 
    a:hover img {
      display:inline;
    }
    a:hover span {
      background-color: #d3d3d3;
    }
    #mouse_news {
      position: relative;
      width: 200px;
    }
  </style> 
</head> 
<body> 
<div id="mouse_news"> 
  <ul>
    <li>
      <a href="#">
        <span>lien n°1</span> 
        <img src="news1.jpg" width="80" height="80" />
      </a> 
    </li>
    <li>
      <a href="#">
        <span>lien n°2</span> 
        <img src="news2.jpg" width="80" height="80" />
      </a> 
    </li>
    <li>
      <a href="#">
        <span>lien n°3</span> 
        <img src="news3.jpg" width="80" height="80" />
      </a> 
    </li> 
  </ul>
</div> 
</body> 
Merci victor,

J'ai du mal à controler l'affichage de l'image.

elle vient se supperposer sur les liens et non pas devant (la longueur des titres changent toujours) ...

comment eviter cela ?

ensuite j'aimerais bien avoir la couleur au survol de la souris s'afficher non pas autour du texte seulement mais comme un bloc du texte...

Voici une image :

upload/10284-mousenews.gif

Merci.
Modifié par apt (05 Dec 2009 - 18:44)
Bonsoir Patidou,

C'est bien mais c'est encore bien si on peut avoir en fin de compte ce que represente l'images en-dessus Smiley smile

L'effet est généré par les survols et ça fait trés bon à voir Smiley ravi

les cliques c'est pour ouvrir les articles à lire Smiley lol
Modifié par apt (07 Dec 2009 - 23:35)
Regarde le code source de la page, le code html est assez simple, le css également et le javascript (jquery pour les effets) pas du tout optimisé, donc très lisible. Smiley lol

Je crois qu'il est facile de faire la même chose avec des liens… Smiley cligne

P.S. : et reviens poser des questions si il y a des choses que tu ne comprends pas… Smiley smile
Bonjour Patidou,

Le code suivant :

<script type="text/javascript">
		document.documentElement.className+=" hasJS";
	</script>


est-il necessaire ? n'affecte-t-il pas l'affichage de la page ?

Merci.
Ça c'est une petite astuce... Smiley cligne

Le site doit pouvoir être visible javascript désactivé : donc ce code ajoute (avant l'emploi de jquery en fin de fichier) une classe hasJS sur l'élément <html>. Si javascript n'est pas actif cette classe ne sera pas ajoutée.

Exemple bidon :

.hasJS p {font-weight: bold}


Si javascript est actif, tous les paragraphes (<p>) de la page sont en gras.

Dans la page que je t'ai donné, les h3 ne se placent plus sous forme d'onglets mais simplement comme des sous-titres. Smiley cligne
Modifié par Patidou (10 Dec 2009 - 14:02)
Voilà ce que j'ai pu coder :

<!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" xml:lang="fr" lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Tab verticales</title>
	<meta name="description" lang="fr" content="Essais de tabs verticales accessibles avec jquery" />
	<style type="text/css" media="screen">
		body {
			font-size: 90%;
			font-family: arial, helvetica, sans-serif;
		}
		h1 {text-align: center; color: #f00;}
		h3 {
		text-align: left;
		color: #f00;
		font-size: 12px;
	}
	#articles {
		position : relative;
		border: 1px solid #000;
		width: 352px; height : 123px;
	}
		#articles h3, #articles h3 a {color: #900; }
		/*.hasJS #articles {min-height:200px;}*/
		.hasJS #articles h3 {
			cursor: pointer; 
			background-color: #999; 
			margin: 0; 
			padding: 5px; 
			border-bottom:  #fff 1px solid; 
			border-right:  #fff 1px solid;
			width:190px;
			height:30px;
		}
		.hasJS #articles h3.selected {
		background-color: #E5E5E5;
		border-right: #fff 1px solid;
	}
		.hasJS #articles div div.montre {position: absolute; top: 0; right: 0; left: 196px; }
		.hasJS #articles div div {position: absolute; top: -5000px; left: -5000px; padding-left: 5px;}
		.imag {	width:150px; height:122px;}
		a:link, a:visited, a:active{text-decoration: none;color: #333333;}
	</style>
	<script type="text/javascript">
		document.documentElement.className+=" hasJS";
	</script>
</head>

<body>
	<h1>Tab verticales</h1>
	<p>Pour une meilleure accessibilité le contenu caché n'est pas en <code>display:none</code> mais positionné en absolu en dehors de la page. Normalement, les personnes malvoyantes équipées d'un lecteur d'écran ne «&#8239;verront&#8239;» même pas ce système de tabs&nbsp;: pour eux la lecture sera normale, sans effets spéciaux, comme quand on désactive javascript pour lire cette page.</p>
	<h2>Une série de h3 en tab horizontales</h2>
	<div id="articles">
		<div class="article">
			<h3 class="selected"><a href="#">Massacre aux Philippines: le clan a tué 200 autres personnes</a></h3>
			<div class="montre">
				<img class="imag"src="news1.jpg" alt="Figure 1" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Le patronat européen prêt à des efforts sur le CO2 si les Etats-Unis 
			suivent</a></h3>
			<div>
				<img class="imag" src="news2.jpg" alt="Figure 2" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Johnny Hallyday hospitalisé à Los Angeles</a></h3>
			<div>
				<img class="imag" src="news3.jpg" alt="Figure 3" />
			</div>
		</div>
	</div>
	<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
	<script type="text/javascript">
			$(document).ready( function () {
				//tabindex pour la navigation au clavier
				$("#articles h3").attr("tabindex", "0");
				$("#articles h3").focus (
					function () {
						//trucs à faire pendant le focus sur les h3
						$("#articles div.montre").removeClass("montre");
						$("#articles h3.selected").removeClass("selected");
						$(this).next("div").addClass("montre");
						$(this).addClass("selected");
					}
				);
				// gestion des hover sur les h3 :
				$("div.article h3").hover( 
					function () {
						//trucs à faire pendant le over sur les h3
						$("#articles div.montre").removeClass("montre");
						$("#articles h3.selected").removeClass("selected");
						$(this).next("div").addClass("montre");
						$(this).addClass("selected");
					},
					function () {
						//out : trucs à faire éventuellement quand le pointeur sort du h3
					}
				);
			});
	</script>
</body>
</html>


et je compte même juxtaposer deux bloques pour deux catégories différentes.

Avez-vous des remarques à faire ?

Merci.

upload/10284-news1.jpg
upload/10284-news2.jpg
upload/10284-news3.jpg
Modifié par apt (17 Dec 2009 - 19:43)
Salut,

Le code en haut est testé pour un seul bloque. Il marche bien.

A present, je voulais essayer d'avoir deux bloques l'un à coté de l'autre, mais je n'y arrive pas :

<!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" xml:lang="fr" lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Tab verticales</title>
	<meta name="description" lang="fr" content="Essais de tabs verticales accessibles avec jquery" />
	<style type="text/css" media="screen">
		body {
			font-size: 90%;
			font-family: arial, helvetica, sans-serif;
		}
		h1 {text-align: center; color: #f00;}
		h3 {
		text-align: left;
		color: #f00;
		font-size: 12px;
	}
	#articles {
		position : relative;
		border: 1px solid #000;
		width: 352px; height : 123px;
	}
		#articles h3, #articles h3 a {color: #900; }
		/*.hasJS #articles {min-height:200px;}*/
		.hasJS #articles h3 {
			cursor: pointer; 
			background-color: #999; 
			margin: 0; 
			padding: 5px; 
			border-bottom:  #fff 1px solid; 
			border-right:  #fff 1px solid;
			width:190px;
			height:30px;
		}
		.hasJS #articles h3.selected {
		background-color: #E5E5E5;
		border-right: #fff 1px solid;
	}
		.hasJS #articles div div.montre {position: absolute; top: 0; right: 0; left: 196px; }
		.hasJS #articles div div {position: absolute; top: -5000px; left: -5000px; padding-left: 5px;}
		.imag {	width:150px; height:122px;}
		a:link, a:visited, a:active{text-decoration: none;color: #333333;}
	</style>
	<script type="text/javascript">
		document.documentElement.className+=" hasJS";
	</script>
</head>

<body>
	<h1>Tab verticales</h1>
	<h2>Une série de h3 en tab horizontales</h2>
	<div id="articles">
		<div class="article">
			<h3 class="selected"><a href="#">Massacre aux Philippines: le clan a tué 200 autres personnes</a></h3>
			<div class="montre">
				<img class="imag"src="news1.jpg" alt="Figure 1" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Le patronat européen prêt à des efforts sur le CO2 si les Etats-Unis 
			suivent</a></h3>
			<div>
				<img class="imag" src="news2.jpg" alt="Figure 2" />
		</div>
		</div>
		<div class="article">
			<h3><a href="#">Johnny Hallyday hospitalisé à Los Angeles</a></h3>
			<div>
				<img class="imag" src="news3.jpg" alt="Figure 3" />
			</div>
		</div>
	</div>
    <div id="articles2">
		<div class="article">
			<h3 class="selected"><a href="#">Massacre aux Philippines: le clan a tué 200 autres personnes</a></h3>
			<div class="montre">
				<img class="imag"src="news1.jpg" alt="Figure 1" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Le patronat européen prêt à des efforts sur le CO2 si les Etats-Unis 
			suivent</a></h3>
			<div>
				<img class="imag" src="news2.jpg" alt="Figure 2" />
			</div>
		</div>
        <div></div>
		<div class="article">
			<h3><a href="#">Johnny Hallyday hospitalisé à Los Angeles</a></h3>
			<div>
				<img class="imag" src="news3.jpg" alt="Figure 3" />
			</div>
		</div>
	</div>
	<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
	<script type="text/javascript">
			$(document).ready( function () {
				//tabindex pour la navigation au clavier
				$("#articles h3").attr("tabindex", "0");
				$("#articles h3").focus (
					function () {
						//trucs à faire pendant le focus sur les h3
						$("#articles div.montre").removeClass("montre");
						$("#articles h3.selected").removeClass("selected");
						$(this).next("div").addClass("montre");
						$(this).addClass("selected");
					}
				);
				// gestion des hover sur les h3 :
				$("div.article h3").hover( 
					function () {
						//trucs à faire pendant le over sur les h3
						$("#articles div.montre").removeClass("montre");
						$("#articles h3.selected").removeClass("selected");
						$(this).next("div").addClass("montre");
						$(this).addClass("selected");
					},
					function () {
						//out : trucs à faire éventuellement quand le pointeur sort du h3
					}
				);
			});
	</script>
</body>
</html>


Mais il y'a un problème de "id" de la div conteneur.

<div id="articles">


Il faut donner a chaque div son identificateur propre, mais comment sera le code jQuery qui traitera chaque div a part ?

Smiley rolleyes
Modifié par apt (17 Dec 2009 - 23:18)
apt a écrit :
Mais il y'a un problème de "id" de la div conteneur.

<div id="articles">


Il faut donner a chaque div son identificateur propre, mais comment sera le code jQuery qui traitera chaque div a part ?

Smiley rolleyes

Rien ne t'empêche, pour les div de même apparence et au même comportement, d'ajouter une classe "articles", comme suit :
<div class="articles"></div>
<div class="articles"></div>
<div class="articles"></div>

Ensuite, il te suffira de sélectionner la classe en question en jQuery.
$('.articles')

Et si tu tiens à l'attribut id, ajoute une espèce de compteur, de façon à obtenir le résultat suivant :
<div id="articles-1" class="articles"></div>
<div id="articles-2" class="articles"></div>
<div id="articles-3" class="articles"></div>
J'ai essayé le traitement par class= articles mais ça n'a pas marché :

<div id="articles">
		<div class="article">
			<h3 class="selected"><a href="#">Massacre aux Philippines: le clan a tué 200 autres personnes</a></h3>
			<div class="montre">
				<img class="imag"src="news1.jpg" alt="Figure 1" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Le patronat européen prêt à des efforts sur le CO2 si les Etats-Unis 
			suivent</a></h3>
			<div>
				<img class="imag" src="news2.jpg" alt="Figure 2" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Johnny Hallyday hospitalisé à Los Angeles</a></h3>
			<div>
				<img class="imag" src="news3.jpg" alt="Figure 3" />
			</div>
		</div>
	</div>
	<div id="articles">
		<div class="article">
			<h3 class="selected"><a href="#">Massacre aux Philippines: le clan a tué 200 autres personnes</a></h3>
			<div class="montre">
				<img class="imag"src="news1.jpg" alt="Figure 1" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Le patronat européen prêt à des efforts sur le CO2 si les Etats-Unis 
			suivent</a></h3>
			<div>
				<img class="imag" src="news2.jpg" alt="Figure 2" />
			</div>
		</div>
		<div class="article">
			<h3><a href="#">Johnny Hallyday hospitalisé à Los Angeles</a></h3>
			<div>
				<img class="imag" src="news3.jpg" alt="Figure 3" />
			</div>
		</div>
	</div>
	<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
	<script type="text/javascript">
			$(document).ready( function () {
				//tabindex pour la navigation au clavier
				$(".articles h3").attr("tabindex", "0");
				$(".articles h3").focus (
					function () {
						//trucs à faire pendant le focus sur les h3
						$(".articles div.montre").removeClass("montre");
						$(".articles h3.selected").removeClass("selected");
						$(this).next("div").addClass("montre");
						$(this).addClass("selected");
					}
				);
				// gestion des hover sur les h3 :
				$("div.article h3").hover( 
					function () {
						//trucs à faire pendant le over sur les h3
						$(".articles div.montre").removeClass("montre");
						$(".articles h3.selected").removeClass("selected");
						$(this).next("div").addClass("montre");
						$(this).addClass("selected");
					},
					function () {
						//out : trucs à faire éventuellement quand le pointeur sort du h3
					}
				);
			});
	</script>
Pages :