#javascript #jquery #html-table #width #minimum
#javascript #jquery #html-таблица #ширина #минимальная
Вопрос:
У меня есть таблица, которая занимает большую часть страницы. Ширина равна calc(100% - 20px)
.
Когда я перетаскиваю окно действительно большого размера, таблица настраивается так, что она занимает все окно.
Когда я уменьшаю окно, оно снова настраивается так, чтобы занимать все окно, НО в определенный момент оно перестает настраиваться и выходит за пределы окна.
Мне интересно, как я могу вычислить эту «наименьшую допустимую ширину» таблицы в JS или jQuery, фактически не изменяя размер моего окна, а затем выполняя $('table').width()
или что-то подобное. Стоит отметить, что эта «наименьшая допустимая ширина» является переменной в зависимости от содержимого таблицы. Я немного поискал и не нашел хороших ответов.
/*table style*/
table#myTableId{
display: table;
margin: 10px;
width: -webkit-calc(100% - 20px);
width: -moz-calc(100% - 20px);
width: calc(100% - 20px);
}
Ответ №1:
Вы можете временно установить очень маленькую ширину таблицы и проверить текущую ширину в этот момент с помощью getBoundingClientRect
.
const table = document.getElementById('myTableId');
// get the original width in case it was set
const originalWidth = table.style.width;
// set the table's width to 1px (0 does not work)
table.style.width = '1px';
// get the current width
const smallestWidth = table.getBoundingClientRect().width;
// set the original width back
table.style.width = originalWidth;
console.log(smallestWidth);
table#myTableId {
display: table;
margin: 10px;
width: -webkit-calc(100% - 20px);
width: -moz-calc(100% - 20px);
width: calc(100% - 20px);
}
<table id="myTableId">
<tr>
<td>Table Cell Content</td>
</tr>
</table>