5568 sujets

Sémantique web et HTML

Bonjour à tous,

Je suis nouveau sur le forum et j'espère que ma question n'a pas sa réponse ailleurs (j'ai fait un petit tour quand même avant de poster).

J'utilise <object> pour inclure un fichier htm dans une page (elle aussi htm).

Est-ce que ce fichier inclus doit comporter les balises <html> <body>, le doctype... ou est-ce que, une fois inclus, il se comporte comme du texte simple?

Merci a vous et bravo pour ce site ou j'ai presque tout appris.
Bonsoir,

Une inclusion signifie que tu ajoute du code à partir d'un fichier, dans un autre code existant. Ainsi, si tu inclus ton fichier entre les balises <body> quelque part dans le code, la partie de code appeler à l'inclusion va s'insérer dans le code environnant, et non le remplacer.
Ainsi, il ne sert à rien de répéter la structure élémentaire de la page, car en plus d'être inutile, cela risque d'empécher ta page de se charger correctement.
Bonsoir et merci beaucoup de cette réponse,

La page que j'inclue ne doit donc pas avoir de balises ni doctype mais juste le texte que je veux inclure.

Cependant, cette page a quelques éléments de mise en forme (balises <h1> <h2>, background-image...).
Ne risque-t-il pas d'y avoir des problèmes avec les navigateurs si je met des codes XHTML sans doctype?

Merci encore et bonne soirée.
Salut arriflex,

Le doctype et les balises <html> <head> et <body> se trouvent sur ta page qui contiendra l'incude. Ta page incluse sera donc au final entre les balises <body> et </body> de la première page. Tu peux donc utiliser toutes les balises habituelles que l'on trouve entre <body> et </body>.

Voi un exemple pour que ce soit plus clair Smiley cligne :

page1.php

<!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>
<title> test</title>
<link rel="stylesheet" type="text/css" href="base.css"/>
</head>
<body>

<div id="conteneur">
   ...
   <?php include('page2.html'); ?>
   ....
</div>

</body>
</html>

page2.html
<h2>Tire</h2>
<p>bla bla bla</p>

Ce qui donnera au final
<!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>
<title> test</title>
<link rel="stylesheet" type="text/css" href="base.css"/>
</head>
<body>

<div id="conteneur">
   ...
   <h2>Tire</h2>
   <p>bla bla bla</p>
   ....
</div>

</body>
</html>


@+
a écrit :

J'utilise <object> pour inclure un fichier htm dans une page (elle aussi htm).

J'ai pas l'impression qu'il utilise du php (cf post préc.)

Dans le cas d'une balise object, à mon humble avis, il faut mettre html, head, ... mais je peux me tromper, il est 2h du mat et je suis fatigué.

Ceci dit pour les include vous avez raison, mais je ne crois pas que c'était ce dont il était question ici.
Hello QuentinC,

Autant pour moi, j'avais mal lu... Et d'ailleurs je ne connaissais pas cette technique Smiley rolleyes
Du coup j'ai effectué un test en local en me basant sur cette page et ça fonctionne. La page en question contenait effectivement html et head.
@+
Smiley ravi Bonjour a tous et merci pour vos réponses,

Donc, finalement, si je fais une inclusion avec <object> (et pas en php avec include) la page incluse doit comporter les balises classique des pages html et le doctye ou pas? Smiley confused

Ca fonctionne avec et sans ces balises et doctype mais je voudrais etre sur que le site est bien codé aux normes XHTML strict.

Merci beaucoup.
Object peut être en quelque sorte considéré comme étant une frame, même si ce n'est pas du tout la même chose
Par conséquent, oui il faut le doctype, html, head, et le reste.