93 votes

Comment supprimer le style de hauteur d'un DIV à l'aide de jQuery ?

Par défaut, la hauteur d'un DIV est déterminée par son contenu.

Mais je passe outre et je fixe explicitement une hauteur avec jQuery :

$('div#someDiv').height(someNumberOfPixels);

Comment puis-je inverser cela ? Je veux supprimer le style de hauteur et faire en sorte qu'il reprenne sa hauteur automatique/naturelle ?

1 votes

Je n'arrive pas non plus à le faire fonctionner. Il semble qu'après avoir défini la hauteur du div à quelque chose de spécifique (comme 300px ou autre), vous ne pouvez pas remettre la hauteur à auto. C'est peut-être un bug de JQuery.

106voto

user268828 Points 429

pour supprimer la hauteur :

$('div#someDiv').css('height', '');
$('div#someDiv').css('height', null);

comme John l'a souligné, définissez la hauteur à auto :

$('div#someDiv').css('height', 'auto');

(vérifié avec jQuery 1.4)

6 votes

Vous avez donné trois solutions, je peux confirmer que le réglage de la hauteur à "" fonctionne, je ne sais pas pour les autres.

2 votes

Dans jQuery 1.9, l'utilisation de '' mais l'utilisation de null ne le fait pas.

1 votes

Il existe des différences subtiles : 1+2 permet de réviser la feuille de style (si quelque chose y est défini), 3 l'annule (car l'attribut défini sur auto a une plus grande priorité).

26voto

nonrectangular Points 598
$('div#someDiv').height('auto');

J'aime utiliser cette méthode, car elle est symétrique à la façon dont vous avez explicitement utilisé .height(val) pour la définir en premier lieu, et elle fonctionne dans tous les navigateurs.

2 votes

Cela force la hauteur à être la hauteur automatique, en remplaçant toutes les règles CSS existantes. Cela peut être acceptable dans certains cas spécifiques, mais en général, cela peut poser des problèmes.

0 votes

@BennettMcElwee Je suis en fait en train de me battre avec le problème que vous avez décrit maintenant. Donc +1 pour ça.

24voto

Byron Points 21

vous pouvez essayer ceci :

$('div#someDiv').height('');

6 votes

cela devrait être une réponse correcte car celle-ci supprime la valeur du style css(), c'est utile pour le redimensionnement avec js :) Merci, merci

21voto

John Boker Points 36308

peut-être quelque chose comme

$('div#someDiv').css("height", "auto");

2 votes

Cela remplacera toutes les règles CSS existantes qui devraient s'appliquer, ce qui peut poser un problème.

14voto

Gushiken Points 668

Pour réinitialiser la hauteur du div, il suffit d'essayer

$("#someDiv").height('auto');

0 votes

Il s'agit d'un duplicata de la réponse de @nonrectangular, qui est antérieure à cette édition.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X