CSS Solution
Многоточие…
Когда вы используете многоточие для содержимого таблицы, вам необходимо настроить элементы следующим образом:
2 контейнера внутри <td>
один снаружи (.content
), а другой (.hidden
) будет внутри внешнего контейнера.Текст будет в .hidden
.
Для внешнего контейнера необходимо следующее (label.content
):
display: table;
table-layout: fixed;
Внутренний контейнернеобходимо следующее (b.hidden
):
display: table-cell;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
Ярлыки и флажки
Лучший способ скрыть флажок - установить еговыше в DOM, чем предполагалось, поэтому каскад обеспечивает контроль и затем использует display:none
.С display:none
флажок не мешает другим элементам.Элементы, которые являются visibility
или opacity
, все еще существуют в обычном потоке документов.
С установленным флажком, но не активным (пользователь не может его увидеть), используйте <label for='checkboxID'>
.Атрибут [for] со значением #id флажка позволяет <label>
быть флажком (при щелчке на нем также будет установлен флажок)
Slide IN / OUT
Установленное поведение:
label.content
нажат input[type=checkbox]#chx
теперь проверено b.hidden
2-е состояние срабатывает label.content
снова нажимается input[type=checkbox]#chx
теперь не проверено b.hidden
возвращается в 1-е состояние
b.hidden
1-е состояние равноследующее:
max-height: 50px;
max-width: 200px;
transition: .7s ease-out;
b.hidden
2-е состояние выглядит следующим образом:
max-height: 500px;
max-width: 1800px;
transition: .7s ease;
white-space: normal;
overflow: visible;
Демо
table.gridtable {
font-family: Arial, Helvetica, sans-serif;
font-size: 20px;
color: black;
border-width: 2px;
border-color: Black;
border-collapse: collapse;
border-style: solid;
width: 75%;
}
table.gridtable th {
color: Black;
border-width: 0px;
padding: 8px;
border-style: solid;
border-color: black;
background-color: #EEEEFF;
}
table.gridtable tr {
color: Black;
}
table.gridtable tr:nth-child(odd) {
background-color: #EEEEFF;
}
table.gridtable tr:nth-child(even) {
background-color: White
}
table.gridtable td {
border-width: 0px;
padding: 8px;
border-style: solid;
border-Color: #8080FF;
width: 50%;
}
label.content {
display: table;
table-layout: fixed;
cursor: pointer;
}
#chx {
display: none
}
b.hidden {
max-height: 50px;
max-width: 200px;
display: table-cell;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
transition: .7s ease-out;
}
#chx:checked+.content .hidden {
max-height: 500px;
max-width: 1800px;
transition: .7s ease;
/* Remove white-space if you want the animation go horizontal */
white-space: normal;
overflow: visible;
}
<!DOCTYPE html>
<html>
<body>
<style>
</style>
<table class="gridtable">
<tr>
<th>Group</th>
<th>Indication</th>
</tr>
<tr>
<td>approved</td>
<td>
<input id='chx' type="checkbox" />
<label for='chx' class="content">
<b class="hidden">
LOOOONNGGG WOOOORRRRDDSS TTOOOO TESSSSSSSST EEEEEELLLIIPSISSSS AAANNDDD WWWWARRPPPIIINNGGGG
</b>
</label>
</td>
</tr>
</table>
</body>
</html>