Maison > interface Web > tutoriel CSS > Comment puis-je contrôler la largeur des options de la zone de sélection et implémenter des points de suspension de débordement de texte à l'aide de JavaScript ?

Comment puis-je contrôler la largeur des options de la zone de sélection et implémenter des points de suspension de débordement de texte à l'aide de JavaScript ?

Patricia Arquette
Libérer: 2024-10-25 08:27:29
original
235 Les gens l'ont consulté

How can I control the width of select box options and implement text overflow ellipsis using JavaScript?

Contrôle de la largeur des options de la zone de sélection

Dans votre zone de sélection, les options sont visuellement plus larges que la zone elle-même, créant un désalignement. Pour remédier à cela, vous visez à définir la largeur des options égale à celle de la boîte. De plus, vous souhaitez implémenter des points de suspension de débordement de texte pour les options avec un texte long.

Approche CSS conventionnelle

Au départ, vous avez tenté une solution utilisant CSS, qui s'est avérée futile. CSS seul ne fournit pas un moyen de contrôler directement la largeur des options dans une zone de sélection.

Intervention JavaScript

Comme CSS ne pouvait pas offrir de solution, vous avez recherché un alternative en JavaScript. Le code JavaScript que vous avez fourni modifie avec succès la largeur du texte des options dans la zone de sélection. Il fonctionne en itérant sur chaque élément d'option et en modifiant son texte interne si nécessaire.

Modifications HTML et CSS

Dans votre HTML, vous avez ajouté l'attribut data-limit à chaque élément d'option pour spécifier la longueur de texte maximale autorisée. Dans votre CSS, vous définissez une largeur fixe de 250 px pour la zone de sélection et les options.

Extrait de code

Voici un extrait du code JavaScript :

function shortString(selector) {
  const elements = document.querySelectorAll(selector);
  const tail = '...';
  if (elements && elements.length) {
    for (const element of elements) {
      let text = element.innerText;
      if (element.hasAttribute('data-limit')) {
        if (text.length > element.dataset.limit) {
          element.innerText = `${text.substring(0, element.dataset.limit - tail.length).trim()}${tail}`;
        }
      } else {
        throw Error('Cannot find attribute \'data-limit\'');
      }
    }
  }
}

window.onload = function() {
  shortString('.short');
};
Copier après la connexion

Démo

Lorsque vous exécutez ce script, les options dont la longueur de texte est supérieure à la limite spécifiée seront tronquées avec des points de suspension, garantissant qu'elles correspondent à la sélection. largeur de la boîte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal