JeuWeb (JeuPHP) - Crée ton jeu par navigateur

Version complète : Div déclaré en CSS inconnue en javascript
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
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 ?
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à
Je confirme, pour accéder à ces propriétés, elles doivent être déclarées dans le html (même à 0 à la limite)
Bon ok, merci.
Le javascript n'a donc pas accès au css.
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 2


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
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 :
<!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 
document.getElementById(el);
        
        
// IE
        
if (x.currentStyle)
            var 
x.currentStyle[styleProp];
        
        
// Mozilla, Opera    
        
else if (window.getComputedStyle)
            var 
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> 
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.
Je pense que tu y gagnerais quand même à utiliser une librairie.
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.
Nosrehl a écrit :Mais elles m'avaient donné l'impression de partir en usines à gaz ces librairies.

et c'est vrai 2 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 2 si t'es du même niveau que moi ben.... en plus ça marchera pas 34 )
URLs de référence