"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como controlar a largura das opções da caixa de seleção e implementar reticências de texto?

Como controlar a largura das opções da caixa de seleção e implementar reticências de texto?

Publicado em 13/11/2024
Navegar:937

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

Controlando a largura das opções da caixa de seleção

Em HTML, ao aplicar atributos de estilo ao elemento de seleção e aos elementos de opção filho, é possível especificar a largura de cada opção para garantir que corresponda à largura da caixa de seleção. No entanto, conseguir isso apenas com CSS pode não ser suficiente.

Uma solução envolve incorporar JavaScript para controlar ainda mais a largura da opção e ativar reticências de texto quando necessário. O código JavaScript fornecido introduz uma função shortString que ajusta dinamicamente o texto dentro dos elementos de opção que possuem a classe .short e o atributo data-limit.

Veja como implementar esta solução:



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

Essa abordagem garante que a largura da opção seja idêntica à largura da caixa de seleção e, quando o texto da opção exceder o limite especificado, o excesso de texto será substituído por reticências.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3