Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1541 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  DOM et fichier CSS

 

Sujet(s) à lire :
    - DOM et screen.width / screen.height
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DOM et fichier CSS

n°1494053
d-Rek
Posté le 20-12-2006 à 11:42:33  profilanswer
 

Bonjour à tous !
 
J'ai fait des recherches sur le forum et j'ai trouvé entre autre ça : QuirksMode.org
 
En effet, selon la taille du l'écran, je souhaite paramétré dynamiquement les hauteurs de différents éléments (div) en atteignant les déclarations de mon fichier CSS externe par du DOM.
Le but est que certaines divisions qui ont un background se répétant en y, s'arrêtent lorsque leur conteneur s'arrête, c'est-à-dire en bas de page.  
Ainsi admettons que ma page fait 750px de haut, un user A en 800*600 devra scroller à coup sûr (les onglets etc..).
C'est pour cela que je prend la taille de l'espace affiché par le navigateur et non la résolution de l'écran.
Cependant, un user B en 1280*960 ne devra pas scroller mais verra ma page occupé toute la hauteur de l'espace affiché par le navigateur et donc pas mal d'espace vide sur le bas mais peu importe.
 
Vous me suivez ? Alors commençons donc par le body..
 
Donc mon script ressemble à ça :

Code :
  1. ie4=document.all
  2. ns6=document.getElementById&&!document.all
  3. function GiveMeSize() {
  4. if(ie4){
  5.        document.styleSheets[0].body.height=document.body.clientHeight
  6. }
  7. else if(ns6){
  8.        document.styleSheets[0].body.height=window.pageYOffset
  9. }
  10. window.onload = GiveMeSize;


Vous vous en doutez, cela ne donne rien.
Si vous avez des suggestions, je suis prenneur.

mood
Publicité
Posté le 20-12-2006 à 11:42:33  profilanswer
 

n°1494056
FlorentG
Posté le 20-12-2006 à 11:44:54  profilanswer
 

Ta pseudo détection de navigateur est complètement naze en fait.
 
Au lieu de triturer document.stylesheet et le body, utilise plutôt un élément parent (genre un div cash dans le body) avec un id :

Code :
  1. document.getElementById('pouet').style.height = window.machinBidule + 'px';

n°1494078
d-Rek
Posté le 20-12-2006 à 11:55:43  profilanswer
 

C'était trop beau.. Ca ne marche pas.  :(  

Code :
  1. ie4=document.all
  2. ns6=document.getElementById&&!document.all
  3. function GiveMeSize() {
  4. if(ie4){
  5. Hauteur=document.body.clientHeight;
  6. body.style.height=Hauteur
  7. col-left-shadow.height=Hauteur+500
  8. //document.styleSheets[0].col-left.height=Hauteur+500
  9. }
  10. else if(ns6){
  11. Hauteur=window.pageYOffset;
  12. document.getElementById('body').style.height=Hauteur + 'px'
  13. document.getElementById('col-left-shadow').style.height=Hauteur + 'px'
  14. }
  15. window.onload = GiveMeSize;

n°1494083
FlorentG
Posté le 20-12-2006 à 11:59:29  profilanswer
 

Enlève ta détection qui sert à rien. Attention, t'as pas la même chose entre les deux cas

n°1494109
d-Rek
Posté le 20-12-2006 à 12:26:29  profilanswer
 

Aucun effet, ni sous IE6, ni sous FF  :cry:  

Code :
  1. ...
  2. <script language="JavaScript">
  3. function GiveMeSize() {
  4. var Hauteur=(document.body.clientHeight);
  5. document.getElementById('body').style.height=Hauteur + 'px'
  6. document.getElementById('col-left-shadow').style.height=Hauteur + 'px'
  7. }
  8. </script>
  9. </head>
  10. <body OnLoad="GiveMeSize();">
  11. ...


 
L'inspecteur JavaScript FF me dit que document.getElementById("body" ) has no properties
Alors qu'il en a mais dans un fichier CSS externe..


Message édité par d-Rek le 20-12-2006 à 12:32:24
n°1494116
FlorentG
Posté le 20-12-2006 à 12:38:16  profilanswer
 

C'est normal, je t'ai dit d'utiliser un div avec un id. Là y'a aucun élément avec pour id "body"...

n°1494118
d-Rek
Posté le 20-12-2006 à 12:43:53  profilanswer
 

Astuce du jour, astuce pour toujours !
J'ai mis id="body" sur le body ;)
 
Ca marche à merveille.
Merci beaucoup FlorentG !

n°1494258
gatsu35
Blablaté par Harko
Posté le 20-12-2006 à 14:54:06  profilanswer
 

<body id="body"> <= dans ce cas  
on a cette égalité toujours vraie :  
document.body ======  document.getElementById('body')


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  DOM et fichier CSS

 

Sujets relatifs
Script shell : lecture dans un fichier et mise en formeenvoi d'un fichier par FTP sans le créer en local
Prblm lecture fichier wmgenerer un fichier texte et l'envoyer dans un dossier
[AJAX] Problème de chargement dynamique de CSSProbleme Gallerie photos CSS
Emuler une frappe clavier à partir d'un fichier txtCSS : mes png sont décalés avec internet explorer et pas avec firefox
[Fortran] Lecture de données ds un fichier (facile je pense)le transfert de fichier sur le reseau (avec Ada)
Plus de sujets relatifs à : DOM et fichier CSS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR