"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment contrôler la largeur des options de la zone de sélection et implémenter des points de suspension du texte ?

Comment contrôler la largeur des options de la zone de sélection et implémenter des points de suspension du texte ?

Publié le 2024-11-13
Parcourir:449

How to Control the Width of Select Box Options and Implement Text Ellipsis?

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

En HTML, en appliquant des attributs de style à la fois à l'élément de sélection et à ses éléments d'option enfants, il est Il est possible de spécifier la largeur de chaque option pour garantir qu'elle correspond à la largeur de la zone de sélection. Cependant, y parvenir avec CSS seul peut ne pas suffire.

Une solution consiste à incorporer JavaScript pour contrôler davantage la largeur des options et activer les points de suspension du texte si nécessaire. Le code JavaScript fourni introduit une fonction shortString qui ajuste dynamiquement le texte dans les éléments d'option ayant la classe .short et l'attribut data-limit.

Voici comment implémenter cette solution :



select {
  width: 250px;
}

option {
  width: 250px;
}

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');
};

Cette approche garantit que la largeur de l'option est identique à la largeur de la zone de sélection, et lorsque le texte de l'option dépasse la limite spécifiée, le texte en excès est remplacé par des points de suspension.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3