20 votes

Découvrez si la hauteur HTML est définie par le style ou par le contenu.

J'ai 2 divs :

<div id="div1"></div>
<div id="div2">div2</div>

dans mon css :

#div1{ height:20px}

Les deux divs ont une hauteur de 20px, vérifiez Démonstration
Comment puis-je savoir si la div a sa hauteur en raison du contenu ou si elle a été définie dans le style css ou inline ?
Cela m'aide à découvrir que les dimensions ont été définies par l'utilisateur. développeur ou simplement calculé par le navigateur.

2voto

Šime Vidas Points 59994

Utilisez cette fonction :

function emptyHeight ( elem ) {
    var $temp = $( '<div />' );
    var $elem = $( elem );
    var height;

    $temp.append( $elem.contents() );
    height = $elem.height();
    $elem.append( $temp.contents() );

    return height;   
}

L'idée est de détacher temporairement tous les nœuds enfants de l'élément. Un élément sans enfant a une hauteur de 0 , sauf si sa hauteur est définie via CSS.

Passez votre élément DIV dans cette fonction. Si elle renvoie 0 cela signifie que le DIV ne no sa hauteur est définie par le biais de CSS.

if ( emptyHeight( yourDiv ) === 0 ) {
    // the DIV does not have any height value set via CSS
} else {
    // the DIV has a CSS height set
}

1voto

Robert Points 1470

Vous pouvez utiliser jQuery pour rechercher la valeur de la hauteur CSS et la comparer ?

1voto

stigok Points 4223
<div id="div-styled" style="height: 20px"></div>
<div id="div-unstyled"></div>

Vérifiez en ligne CSS height avec du simple JavaScript

document.getElementById('div-styled').style.height // "20px"
document.getElementById('div-unstyled').style.height.length // 0

Mise à jour

jQuery renvoie également les règles de style des feuilles de style externes avec .css()

var $el = $('#container');
$el.html( $el.css('height') );

#container {
  height: 42px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div id="container"></div>

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