首頁 >web前端 >css教學 >如何控制選擇框選項的寬度並實現文字省略?

如何控制選擇框選項的寬度並實現文字省略?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-28 17:45:29423瀏覽

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

控制選擇框選項的寬度

在HTML 中,透過將樣式屬性套用於select 元素及其子選項元素,可以實現可以指定每個選項的寬度以確保其與選擇框寬度相符。然而,僅使用 CSS 實現這一點可能還不夠。

一種解決方案涉及合併 JavaScript 來進一步控制選項寬度並在必要時啟用文字省略號。提供的 JavaScript 程式碼引入了一個 ShortString 函數,該函數動態調整具有 .short 類別和 data-limit 屬性的選項元素內的文字。

以下是實現此解決方案的方法:

<code class="html"><!-- HTML -->
<select name="select" id="select">
  <option class="short" data-limit="37" value="Select your University">Select your University</option>
  <option class="short" data-limit="37" value="Bangladesh University of Engineering and Technology">Bangladesh University of Engineering and Technology</option>
  <option class="short" data-limit="37" value="Mawlana Bhashani Science and Technology University">Mawlana Bhashani Science and Technology University</option>
</select></code>
<code class="css"><!-- CSS -->
select {
  width: 250px;
}

option {
  width: 250px;
}</code>
<code class="js"><!-- 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');
};</code>

此方法可確保選項寬度與選擇框寬度相同,並且當選項文字超出指定限制時,多餘的文字將替換為省略號。

以上是如何控制選擇框選項的寬度並實現文字省略?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn