Puis-je utiliser JavaScript pour vérifier (indépendamment des barres de défilement) si un élément HTML a débordé de son contenu? Par exemple, un long div avec une petite taille fixe, la propriété de débordement définie sur visible et aucune barre de défilement sur l'élément.
javascript
html
css
Barett
la source
la source
clientWidth
etscrollWidth
diffère par 1px.Essayez de comparer
element.scrollHeight
/element.scrollWidth
àelement.offsetHeight
/element.offsetWidth
http://developer.mozilla.org/en/DOM/element.offsetWidth
http://developer.mozilla.org/en/DOM/element.offsetHeight
http://developer.mozilla.org/en/DOM/element. scrollWidth
http://developer.mozilla.org/en/DOM/element.scrollHeight
la source
Je ne pense pas que cette réponse soit parfaite. Parfois, les paramètres scrollWidth / clientWidth / offsetWidth sont identiques même si le texte déborde.
Cela fonctionne bien dans Chrome, mais pas dans IE et Firefox.
Enfin, j'ai essayé cette réponse: détection des points de suspension de dépassement de texte HTML
C'est parfait et fonctionne bien n'importe où. Alors je choisis ceci, peut-être que vous pouvez essayer, vous ne décevrez pas.
la source
Une autre façon est de comparer la largeur de l'élément avec la largeur de son parent:
la source
Avec jQuery, vous pouvez faire:
Remplacez
.prop('scrollWidth')
et.width()
si nécessaire.la source
Il s'agit d'une solution javascript (avec Mootools) qui réduira la taille de la police pour s'adapter aux limites d'elHeader.
Le CSS d'elHeader:
Notez que le wrapper de elHeader définit la largeur de elHeader.
la source