2009-06-30 12 views
2

J'ai besoin de lire les paramètres CSS pour la largeur et la hauteur de div dans jQuery pour organiser les divs (des centaines d'entre eux) en bonne position dans la page.Est-il possible pour jQuery de lire les paramètres CSS AVANT de créer des composants html?

Je sais qu'il est possible de lire la taille/position actuelle d'une div existante. Mais mon exigence est d'obtenir l'info avant même que la div existe. N'importe qui? Merci! Désolé, je ne l'ai pas fait assez clair. Voici ma situation:

J'ai un grand div parent, qui va contenir plusieurs lignes et colonnes de petits divs.

La div parente est comme 1000 x 1000 px. Les petits divs aiment 15 x 10 mais il est configuré en CSS, et sa valeur réelle je ne sais pas.

J'ai besoin de calculer le nombre de lignes et de colonnes pour la matrice de divs. Alors que je peux passer en boucle pour les organiser dans le div parent.

Espérons que ce soit une meilleure description.

+0

question curieusement formulée. Vous aimeriez lire la taille/position réelle d'une div existante avant même que la div existe? – AlbertoPL

+0

Il semble qu'il cherche un moyen de lire les propriétés CSS à partir d'un fichier CSS pour voir quelle taille les divs devraient avoir, et ensuite faire quelque chose en fonction de leur taille ... – peirix

+0

jamais essayé Maçonnerie? http://desandro.com/resources/jquery-masonry – Boldewyn

Répondre

6

Jetez un oeil à la page de compatibilité pour DOM CSS. Vous devriez être en mesure d'accéder aux règles d'une feuille de style avant de créer des divs sur la page, et sans créer de div "dummy". Par exemple,

var height = document.styleSheets[0].cssRules[0].style.height; 

Cela afficherait la valeur de hauteur de la première règle dans la première feuille de style.

1

Comme ça?

var myDiv = $("<div></div>").css({properties}); 

$("body").append(myDiv); 
+0

+1, vous avez répondu avant moi – karim79

1

Si la div n'existe pas, comment comptez-vous obtenir certaines de ses propriétés? Si vous parlez des attributs de réglage tels que la hauteur et la largeur à la volée tout créant vos divs qui serait une autre histoire:

var div = $('<div>Blahblahh</div>').css("height","100px"); 
+1

Vous pouvez créer un nouvel élément et ne pas l'appliquer à la page pour le moment. Affectez-le simplement à une variable, puis enveloppez-le avec jQuery. Je crois qu'il veut dire "n'existe pas" comme simplement pas sur la page. –

+0

Nerding: Merci, je pense que votre commentaire a résolu mon problème. –

Questions connexes