28197 sujets

CSS et mise en forme, CSS3

Bonjour,

Mon site est découpé en 3 parties. Chaque page a pour hauteur la taille de la l'écran de l'internaute. Pour ce faire la partie centrale est de taille variable et scrollable. La partie "header" et "footer" ont une taille fixe. La partie centrale doit s'ajuster à la hauteur de l'écran moins les deux autres parties. Pour ce calcul j'utilise le javascript.

Sous IE cela fonctionne très bien mais sur firefox pas du tout. Firefox ne prend pas en compte la taille que j'affecte au div.
Si j'enleve la balise DOCTYPE, là par contre firefox réagit bien.

Voici ma css

html{
	margin:0;
	padding:0;
	font-family:"Lucida Sans Unicode",Verdana, Arial;
}

body{
 	margin:0;
	padding:0;
	width:100%;
	font-family:"Lucida Sans Unicode",Verdana, Arial;
	font-size:12px;
             _height: 100%;
	min-height: 100%;
}

#base{
        background: transparent url(/commun/images/traitfond.png) repeat left top;
}

#header{
        background: transparent url(/utilisateur/images/logo.png) no-repeat left top;
        text-align: left;
}

#content{
        overflow: auto;
        text-align: left;
}

#footer{
        text-align: left;
}


Ma page

<!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></title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
             <script language="javascript" type="text/javascript">
	<!--
                           <? include("../commun/fonctions/fonctions.js"); ?>
             -->
             </script>

	<!--menu-->
	...
             <!-- fin menu-->
             <style type="text/css" media="screen">
                   @import url(./style/screen.css);
                   @import url(./style/administrateur.css);
             </style>

</head>
<body>
      <div id="base">
         <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr >
<td width="100%" height="178px">
           <div id="header">
                <br/>
                <div id="contentmenu">
                     <ul id="menu">
                         <li>
                             ....
                         </li>
                     </ul>
                     <ul id="menu">
                         <li>
                             ...
                         </li>
                     </ul>
                </div>
       </td>
</tr>
<tr >
<td>
<script language="javascript">
        var hauteur_header_footer=251;
        var hauteur_utilisateur=70;
        var hauteur_habilitation=70;

        document.write('<div id=\"content\" style=\"_height:');
        document.write(calcul_hauteur_cellule_tableau(251));
        document.write('px; min-height: ');
        document.write(calcul_hauteur_cellule_tableau(251));
        document.write('px; height: ');
        document.write(calcul_hauteur_cellule_tableau(251));
        document.write('px;> \"');
</script>
        <!-- contenu de la page -->
            ...
        <!-- contenu de la page -->

</div>
</td>
</tr>
<tr >
        <td width="100%" height="61px">
           <div id="footer" >
               ... 
        </td>
</tr>
        </table>
     </div>
</body>
</html>


Je me doute que j'ai pas utilisé la bonne méthode, mais pouvez vous m'éclairer SVP.

Merci d'avance Smiley biggrin
Modifié par pestak (25 Sep 2006 - 14:18)
Smiley biggol
pestak a écrit :
Mon site est découpé en 3 parties. Chaque page a pour hauteur la taille de la l'écran de l'internaute.


Aîe Smiley cligne

Un internaute heureux est un internaute à qui on fiche la paix.

Par exemple, avec la longueur de son zizi.

Pardon Smiley eek , avec la hauteur de sa zone d'affichage, génératrice du conteneur initial qui règle la partie visible du canevas bâti sur un document HTML. Autrement-dit, en racourci, la hauteur de son écran.

CSS repose sur une idée (pour une fois) simple et géniale: le flux. Vertical, le flux, il est. Sans qu'on n'ai rien à faire pour ça (Il peut être horizontal aussi, mais c'est compliqué, et ça demande surtout beaucoup de talent et la capacité rare à être une exception remarquée. Mais dans tous les cas, y'a flux et au moins une dimension libre)...

je veux un Web minitel, ça marchait très bien quand il s'agissait de quelque-chose avec un nombre de lignes et de colonnes figées, pas de canevas, pas de CSS, pas de flux. ça pourrait se faire sur le Web XHTML CSS de manière accessible si ces normes étaient implémentées davantage. Mais avec un gain énorme pour l'égo du concepteur, et nul pour l'intérêt de l'utilisateur. Donc, peu importe, aujourd'hui, voire demain,, c'est à oublier. On en reparlera peut-être quand tous les navigateurs implémenteront le media projection, qui est fait pour ça (un écran de projection ça a une hauteur et une largeur, point... Mais ce n'est pas le cas des autres écrans: il y a quelque srares media paginés et une majorité de medias non paginés).

Bref, laissez donc le flux vivre sa vie et l'utilisateur avec lui, en hauteur : c'est bien, et ça repose tout le monde. Oubliez les pages qui doivent faire la hauteur de la fenêtre du navigateur sauf quand que si... Smiley rolleyes

(Pour être clair: c'est typiquement le genre de bidule dont je ne vois qu'une moitié dans mon navigateur qui fait, le saviez-vous, aussi d'autres choses, avec vos pages et... zut !, il n'a pas la hauteur prévisible pour ça coince pas.
Bref, le type de site dont le contenu a intérêt a être excellentissime pour que je clique sur "désactiver les CSS" plutôt que sur "site suivant dans la liste"... parce qu'il y en a plein d'autres dans la liste fournie par le premier moteur de recherche venu Smiley cligne )

C'était mon coup de gueule de la semaine (qui ne te vise spécifiquement en rien, Pestak, bien-sûr: c'est juste parce que c'est le n-millième post sur le sujet sur lequel je me résouds à en piquer une, faute que ce soit compris)... A lundi prochain Smiley ravi
Modifié par Laurent Denis (25 Sep 2006 - 13:59)
Je suis désolé de reposer la question. Smiley decu
J'ai cherché dans les anciens post et je n'ai pas vu de réponse. J'ai regardé dans la FAQ ou turoriel, je ne sais plus, j'ai trouvé un exemple qui sent rapproche que j'ai adapté à mon code mais il persiste toujours des problèmes.
De plus, l'application que je développe n'est pas un site mais un intranet où il a été demandé que le header et le footer soit toujours visible.
Bonjour,

Je cherche actuellemment toujours la solution à mon problème.
Personne n'aurait une idée??