JeuWeb - Crée ton jeu par navigateur
Div déclaré en CSS inconnue en javascript - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Div déclaré en CSS inconnue en javascript (/showthread.php?tid=3057)



Div déclaré en CSS inconnue en javascript - Nosrehl - 16-09-2008

Bonjour,

J'ai un soucis avec une div :
- je déclare ses paramètres dans un fichier CSS inclu dans le fichier principal.
- je la déclare dans un fichier carte.html inclu dans le fichier principal.
- cette div s'affiche correctement.

-> Impossible de récupérer sa position en javascript dans un fichier JS_carte.js inclu dans le fichier carte.html.

Si je rajoute :
Code :
document.getElementById("placement1").style.left = "50px";
document.getElementById("placement1").style.top = "80px";
ou si je déclare les paramètres en html, tout marche nikel.
Mais ça m'embête de re-déclarer les paramètres de ma div et ça me parait bizarre.

Y a t'il une histoire de portée ou autre chose ?


RE: Div déclaré en CSS inconnue en javascript - Ter Rowan - 16-09-2008

je crois... mais pas sûr... que, avec la manière que tu utilises .style.top etc.., tu ne peux accèder qu'aux propriétés de style qui sont déclarées directement en html

il y a une autre méthode (que je ne connais pas) moins intuitive mais qui te permet d'éviter de mettre les propriétés dans le html. J'ai vu que ça marchait avec la librairie prototype (et je pense que toutes les librairies un peu cortiquées peuvent le faire) Il faudrait se plonger dans le code pour voir leur méthode, ou trouver une bonne âme qui l'applique déjà


RE: Div déclaré en CSS inconnue en javascript - Wells - 16-09-2008

Je confirme, pour accéder à ces propriétés, elles doivent être déclarées dans le html (même à 0 à la limite)


RE: Div déclaré en CSS inconnue en javascript - Nosrehl - 16-09-2008

Bon ok, merci.
Le javascript n'a donc pas accès au css.


RE: Div déclaré en CSS inconnue en javascript - Ter Rowan - 17-09-2008

Nosrehl a écrit :Bon ok, merci.
Le javascript n'a donc pas accès au css.

Si, javascript a accès, mais je ne sais pas comment, il faut fouiller plus que cela Smile


J'en suis sûr car la librairie js que j'utilise (prototype dans mon cas) modifie le css même sans l'avoir déclaré en html. (et je pense que les librairies connues peuvent toutes le faire)

L'une des solutions , plutôt que de fouiller, serait éventuellement que tu utilises les fonctionnalités d'une de ces librairies


PS je ne me positionne pas sur le bien fondé d'utiliser prototype plutôt que mootools ou jquery. Choisis celle qui te convient le mieux


RE: Div déclaré en CSS inconnue en javascript - Anthor - 17-09-2008

Les navigateurs ne prennent pas en compte les mêmes éléments.
Ie attend une syntaxe Javascript camelCase, et Firefox et Opera la syntaxe CSS

Un petit workaround qui ne marche pas dans tous les cas, mais suffit amplement je pense :
Code PHP :
<?php 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>

<
head>
<
meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<
meta name="author" content="">

<
title>Untitled 1</title>

<
style type="text/css">
#test {
width: 50px;
height: 40px;
background-color: #0000FF;
}
</
style>
<
script type="text/javascript">
function
getStyle(el,styleProp)
{
var
x = document.getElementById(el);

// IE
if (x.currentStyle)
var
y = x.currentStyle[styleProp];

// Mozilla, Opera
else if (window.getComputedStyle)
var
y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
return
y;
}

</
script>
</
head>

<
body>

<
div id="test">
&
nbsp;
</
div>

<
a href="#" onclick="alert(getStyle('test', 'width'));return false;">TEST</a>

</
body>
</
html>



RE: Div déclaré en CSS inconnue en javascript - Nosrehl - 24-09-2008

Hum, ça se complique.

Merci Anthor, je vais regarder ton script.
Parce que les librairies, j'ai la flemme vu l'avancement de mon projet entre autres.


RE: Div déclaré en CSS inconnue en javascript - Anthor - 24-09-2008

Je pense que tu y gagnerais quand même à utiliser une librairie.


RE: Div déclaré en CSS inconnue en javascript - Nosrehl - 26-09-2008

Ah bon, alors je vais me renseigner plus sérieusement que je l'ai fait.

Mais elles m'avaient donné l'impression de partir en usines à gaz ces librairies.


RE: Div déclaré en CSS inconnue en javascript - Ter Rowan - 27-09-2008

Nosrehl a écrit :Mais elles m'avaient donné l'impression de partir en usines à gaz ces librairies.

et c'est vrai Smile simplement si tu fais sans, ce sera ton code qui partira en usine à gaz pour obtenir le résultat (en supposant que tu sois du même niveau que les développeurs des dites librairies Smile si t'es du même niveau que moi ben.... en plus ça marchera pas ^^ )