Закрепите длинный текст внутри ячеек таблицы HTML, покажите весь контент при наведении

У меня есть таблица html таблицы, которая имеет столбец с именем "адрес". Адрес содержит очень длинные строки. Я хочу показать только первые 2 или 3 слова адреса, и когда я наведу на него курсор, он должен показать полный адрес. Как я могу сделать это с помощью таблицы html?

3 ответов


.adress {
  max-width : 50px; 
  white-space : nowrap;
  overflow : hidden;
}

.adress:hover {
  max-width : initial; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table border="1">
  <thead>
    <tr>
      <td>
        <strong>ID</strong>
      </td>
      <td>
        <strong>Adress</strong>
      </td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        1
      </td>
      <td class="adress">
        A very, very long adress that cannot be showed entirely
      </td>
    </tr>
  </tbody>
</table>

вы можете начать оттуда, это пример того, как использовать max-width в сочетании с overflow : hidden.

Pass наведите указатель мыши на ячейку адреса, чтобы увидеть результат


устранение:

  • использовать table-layout: fixed чтобы столбцы таблицы поддерживали фиксированный размер
  • оберните содержимое внутри элементов div и управляйте свойствами ширины и переполнения

/*
 * fixed table layout
 */
table {
  font: larger sans-serif;
  table-layout: fixed;
  width: 500px;
}
th:nth-child(1) {
  width: 20%;
}
th:nth-child(3) {
  width: 20%;
}

/*
 * width and overflow
 * inline-block elements expand as much as content
 * relative position makes z-index work
 * explicit width and nowrap makes overflow work
 */
div {
  display: inline-block;
  position: relative;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/*
 * higher z-index brings element to front
 * auto width cancels the overflow
 */
div:hover {
  z-index: 1;
  width: auto;
  background-color: #FFFFCC;
}
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Address</th>
      <th>Phone</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><div>Johm Smith</div></td>
      <td><div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div></td>
      <td><div>1-234-567890</div></td>
    </tr>
    <tr>
      <td><div>Jane Doe</div></td>
      <td><div>Suspendisse lacinia, nunc sed luctus egestas, dolor enim vehicula augue.</div></td>
      <td><div>1-234-567890</div></td>
    </tr>
  </tbody>
</table>

используя Tootips дает решение,

<html>
  <table border="1" >
    <tr>
      <td>A</td>
      <td><abbr title="Ab df df dfdf df dfdkjf sdfk dfdf">Ab df df</abbr> </td>
    </tr>
    <tr>
      <td>B</td>
      <td><abbr title="Bb df df dfdf df dfdkjf sdfk dfdf">Bb df df</abbr> </td>
    </tr>
  </table>
</html>