5568 sujets

Sémantique web et HTML

Bonjour à tous alsanautes !

Je me tourne aujourd'hui vers vous pour vous soumettre une énigme dont vous aurez surement la réponse (pas comme moi noob que je suis Smiley ohwell ). Alors voilà, sachant qu'un ami veut ouvrir un second site, j'ai voulu faire une page d'accueil simple et sympa qui guiderait les visiteurs vers l'un ou l'autre des 2 sites. Après avoir fini cette petite page et fumer une pitite clope, je m'aperçois avec stupeur que l'animation flash ne veut pas se charger sous ie8 et que sur chrome et safari le margin-top n'est pas pris en compte pour deux de mes éléments... là ça me dépasse surtout que ça marche excellemment bien sous firefox... j'implore votre aide.

Voilà l'adresse de la page en question: http://www.hotsun.fr

voilà le code html:

<!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=UTF-8">
<!-- TemplateBeginEditable name="doctitle" -->
<title>HOT-SUN Énergie Renouvelable</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="index_fichiers/style.css" rel="stylesheet" type="text/css">
<script src="index_fichiers/swfobject_modified.js" type="text/javascript"></script>
<script language="JavaScript">
<!-- Begin
bouton1 = new Image();
bouton1.src = "index_fichiers/entrer_pv.gif";
bouton2 = new Image();
bouton2.src = "index_fichiers/entrer_eol.gif";
end -->
</script>
<style media="screen" type="text/css">#FlashID {visibility:hidden}</style><style media="screen" type="text/css">#FlashID {visibility:hidden}</style></head><body>
<div class="background"><img src="index_fichiers/fond.jpg" alt="fond" width="100%" height="100%"></div>
<div class="container">
<div class="centre">
      <div class="cadre">
      <div class="boutons"><a href="http://pv.hotsun.fr/" onmouseover="bouton1.src = 'index_fichiers/entrer_pv.gif';" onmouseout="bouton1.src = 'index_fichiers/px.png';"><img src="index_fichiers/px.png" name="bouton1" width="234" border="0" height="100"></a><a href="http://pv.hotsun.fr/" onmouseover="bouton2.src = 'index_fichiers/entrer_eol.gif';" onmouseout="bouton2.src = 'index_fichiers/px.png';"><img src="index_fichiers/px.png" name="bouton2" width="234" border="0" height="100"></a></div>
        <img src="index_fichiers/cadre.png" alt="" width="742" height="562">         
      </div>
    <div class="anim">
      <object style="visibility: inherit;" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="FlashID" title="anim" width="742" height="224">
        <param name="movie" value="../animation-home.swf">
        <param name="quality" value="high">
        <param name="wmode" value="opaque">
        <param name="swfversion" value="6.0.65.0">
        <!-- Cette balise <param> invite les utilisateurs de Flash Player en version 6.0 r65 et ultérieure à télécharger la version la plus récente de Flash Player. Supprimez-la si vous ne voulez pas que cette invite soit visible. -->
        <param name="expressinstall" value="../Scripts/expressInstall.swf">
        <!-- La balise <object> suivante est destinée aux navigateurs autres qu'IE. Supprimez-la d'IE à l'aide d'IECC. -->
        <!--[if !IE]>-->
        <object type="application/x-shockwave-flash" data="index_fichiers/animation-home.swf" width="742" height="224">
          <!--<![endif]-->
          <param name="quality" value="high">
          <param name="wmode" value="opaque">
          <param name="swfversion" value="6.0.65.0">
          <param name="expressinstall" value="../Scripts/expressInstall.swf">
          <!-- Le navigateur affichera le contenu alternatif suivant pour les utilisateurs d'un lecteur Flash de version 6.0 ou de versions plus anciennes. -->
          <div>
            <h4>Le contenu de cette page nécessite une version plus récente d’Adobe Flash Player.</h4>
            <p><a href="http://www.adobe.com/go/getflashplayer"><img src="index_fichiers/get_flash_player.gif" alt="Obtenir le lecteur Adobe Flash" width="112" height="33"></a></p>
          </div>
          <!--[if !IE]>-->
        </object>
        <!--<![endif]-->
      </object>
    </div>


    
<!-- end .content --></div>
  <!-- end .container --></div>
<script type="text/javascript">
swfobject.registerObject("FlashID");
</script>
</body></html>


et le css:

@charset "utf-8";
body {
	font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
	background: #5B6A19;
	margin: 0;
	padding: 0;
	color: #000;
}

/* ~~ Sélecteurs d'éléments/balises ~~ */
ul, ol, dl { /* En raison des variations entre les navigateurs, il est conseillé d'attribuer une valeur de zéro aux marges intérieures et aux marges des listes. A des fins de cohérence, vous pouvez définir les valeurs désirées dans cette zone ou dans les éléments de liste (LI, DT, DD) qu'elle contient. N'oubliez pas que les paramètres que vous définissez ici se répercuteront sur la liste .nav, sauf si vous rédigez un sélecteur plus spécifique. */
	padding: 0;
	margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
	margin-top: 0;	 /* la suppression de la marge supérieure résout un problème où les marges sortent de leur div conteneur. La marge inférieure restante l'éloignera de tout élément qui suit. */
	padding-right: 15px;
	padding-left: 15px; /* l'ajout de la marge intérieure aux côtés des éléments à l'intérieur des divs, et non aux divs proprement dit, évite le recours à des calculs de modèle de boîte. Une autre méthode consiste à employer une div imbriquée avec marge intérieure latérale. */
}
a img { /* ce sélecteur élimine la bordure bleue par défaut affichée dans certains navigateurs autour d'une image lorsque celle-ci est entourée d'un lien. */
	border: none;
}
/* ~~ La définition du style des liens de votre site doit respecter cet ordre, y compris le groupe de sélecteurs qui créent l'effet de survol. ~~ */
a:link {
	color: #42413C;
	text-decoration: underline; /* à moins que vous ne définissiez un style particulièrement exclusif pour vos liens, mieux vaut prévoir un soulignement, qui garantit une identification visuelle rapide. */
}
a:visited {
	color: #6E6C64;
	text-decoration: underline;
}
a:hover, a:active, a:focus { /* ce groupe de sélecteurs offrira à un navigateur au clavier la même expérience de survol que celle d'une personne employant la souris. */
	text-decoration: none;
}

.background {
	/* l'image occupe toute la place du body */
    width : 100%;
	height: 100%;
	z-index: 1;
	position: absolute;
	background-color: #C0C0C4;
}


/* ~~ ce conteneur à largeur fixe entoure tous les autres éléments ~~ */
.centre {
	width: 742px;
	height: 100%;
	margin: 0 auto;
	position: relative;
}

.anim {
	width: 742px;
	position: absolute;
	z-index: 2;
	margin-top: 34%;
}

.cadre {
	width: 742px;
	position: absolute;
	z-index: 641;
	margin-top: 10%;
}

.boutons {
	width: 740px;
	position: absolute;
	z-index: 642;
	margin-top: 295px;
	text-align: center;
}

/* ~~ Informations de mise en page. ~~ 

1) La marge intérieure n'est placée qu'en haut et/ou en bas de la div. Les éléments à l'intérieur de cette div posséderont une marge intérieure sur les côtés. Vous évitez ainsi de devoir recourir à des « calculs de modèle de boîte ». N'oubliez pas que si vous ajoutez une marge intérieure latérale ou une bordure à la div proprement dite, elle sera ajoutée à la largeur que vous définissez pour créer la largeur totale. Vous pouvez également supprimer la marge intérieure de l'élément dans la div et placer une seconde div à l'intérieur, sans largeur et possédant une marge intérieure appropriée pour votre concept.

*/
.content {

	padding: 10px 0;
}

/* ~~ classes flottant/effacement diverses ~~ */
.fltrt {  /* cette classe peut servir à faire flotter un élément depuis la droite sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
	float: right;
	margin-left: 8px;
}
.fltlft { /* cette classe peut servir à faire flotter un élément depuis la gauche sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
	float: left;
	margin-right: 8px;
}
.clearfloat { /* cette classe peut être placée sur une div <br /> ou vide, en tant qu'élément final suivant la dernière div flottante (dans le #container) si le paramètre overflow:hidden du .container est supprimé */
	clear:both;
	height:0;
	font-size: 1px;
	line-height: 0px;
}


je vous remercie par avance et vous souhaite de passer une agréable nuit Smiley cligne
Modifié par netinside (28 Oct 2010 - 23:53)
Salut,

Déjà, il te faut corriger ton code, qui n'est pas valide syntaxiquement : les éléments auto-fermants comme link ou param n'utilisent pas la syntaxe XHTML. Il faut écrire <param /> au lieu de <param> par exemple. Le validateur du W3C est là pour ça.
Voilà j'ai corrigé les 28 erreurs donc ma page est maintenant validé par le w3c pour le code source et le css mais... ça n'a pas pour autant résolu mes problèmes...

mais merci quand même au moins j'ai une page propre ^^

Donc je requiert encore votre aide s'il vous plaît Smiley biggrin
Modifié par netinside (28 Oct 2010 - 15:11)
Hello Netinside,
J'espère que tu vas bien.

Je me suis penché sur ton code et j'ai trouvé d'où venait tes problèmes.

Mais tout d'abord, comme l'a dit Victor BRITO, ton code n'était pas valide du tout. Non seulement les balises <param /> mais aussi tes balises <img /> etc...
Donc beaucoup d'erreur de ce côté là, et si tu les a corrigé c'est cool.

Problème n°1 : Problème de margin-top:10%;
En ce qui concerne la marge, ton conteneur a le code CSS suivant :
.centre {
	position: relative;
	width: 742px;
	height: 100%;
	margin: 0 auto;
}


Tu remarqueras que tu n'as pas mis de hauteur à ce dernier. Parce que je pense que dans ta logique, le fait de rajouter du contenu à cette div, la ferait s'étirer en hauteur.

MAIS, pour ton contenu, tu y places une div en position absolute :

.cadre {
		position: absolute;
		z-index: 641;
		width: 742px;
		margin-top: 10%;
	}


Ce qui signifie que tu demandes à ta div cadre (qui à cause de la position absolute, se trouve hors du flux) de se positionner en hauteur, par rapport à un élément qui a pour hauteur 0 ! Donc c'est normal que ça marche pas... et malheureusement je pense que sur ce coup c'est Firefox qui interprète mal ton code.

Bref...voici la solution que tu peux avoir.

Solution n°1 :
Si tu veux conserver ton conteneur .centre, à ce moment là, tu dois déjà lui donné un z-index, changer la position:absolute de .cadre en position:relative; , changer également le margin-top en padding-top et réajuster tous les autres z-index.

J'espère que j'ai pu me faire comprendre lol
Voici la "solution" en code :


.centre {
	position: relative;
	z-index:2;
	width: 742px;
	height: 100%;
	margin: 0 auto;
}
	.cadre {
		position: relative;
		z-index: 4;
		width: 742px;
		padding-top: 10%;
	}
		.boutons {
			position: absolute;
			z-index: 5;
			width: 740px;
			margin-top: 295px;
			text-align: center;
		}
	.anim {
		position: absolute;
		z-index: 3;
		top: 40%;
		width: 742px;
	}


Problème n°2 : Flash qui ne s'affiche pas sous Chrome
Il y a un problème de lien dans ton code.
Dans ton code
 <param name="movie" value="../animation-home.swf">

Il faudrait peut-être que tu le change par ça :

 <param name="movie" value="http://www.hotsun.fr/index_fichiers/animation-home.swf">


Voili voilà,
En espérant t'avoir aider Smiley cligne

++
Miister Tii
Modifié par MiisterTii (28 Oct 2010 - 20:42)
Oui je vais bien quoi que assez fatigué je te remerci , ton explication a le mérite d'être magnifiquement clair, tout marche maintenant à merveille ! Je sais pas comment te remercier !!! merci ! merci ! merci ! Le résultat est tip top =) sinon question à part vous en pensez quoi de cette petite page d'accueil..? ^^

Bonne soirée à tous !!!
Modifié par netinside (28 Oct 2010 - 23:54)