#html #css
Вопрос:
У меня есть столик
.table {
}
th {
color: $gray;
font-weight: 500;
border-top: none;
border-bottom: none;
}
tr:nth-child(odd){
background-color:rgba(238, 238, 238, 0.5);
}
tr {
// max-height: 34px;
max-height: 34px;
display: flex;
align-items: center;
flex-wrap: wrap;
}
td {
display: flex;
align-items: center;
max-height: 34px;
padding: .75rem 0 .75rem .75rem;
border-top: none;
font-weight: 500;
}
<table class="table">
<tr>
<th> Id </th>
<th>Company</th>
<th>Contact</th>
</tr>
<tr>
<td>1 1long 1text 1long 1text 1long 1text need be flexible</td>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
</tr>
<tr>
<td>2</td>
<td>Centro comercial Moctezuma long text long textlong textlong textlong text</td>
<td>Francisco Chang</td>
</tr>
<tr>
<td>3</td>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
</tr>
</table>
Вы заметили проблему со столом? Я просто хочу, чтобы это было, если, например, мой идентификатор или любое другое поле требует большей ширины, чтобы быть гибким.
если в слове «Компания» одно слово имеет небольшую ширину, но если, например, компания имеет длину 200 символов, установите ширину всех строк, чтобы они соответствовали этим 200 символам.
Я намеренно разместил этот длинный текст, чтобы заметить разницу. Все это должно быть гибким.
Я хочу, чтобы таблицы остались, а не чтобы мне пришлось превращаться в дивов
Ответ №1:
Попробуйте этот загрузочный код! Это довольно просто, и он справляется со всем, что вам нужно.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<table class="table">
<thead>
<tr>
<th> Id </th>
<th>Company</th>
<th>Contact</th>
</tr>
</thead>
<tbody>
<tr>
<td>1 1long 1text 1long 1text 1long 1text need be flexible</td>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
</tr>
<tr>
<td>2</td>
<td>Centro comercial Moctezuma long text long textlong textlong textlong text</td>
<td>Francisco Chang</td>
</tr>
<tr>
<td>3</td>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
Комментарии:
1. но я хочу, чтобы мой идентификатор td или tr, если у меня мало символов, был небольшим. Точнее, если ему не нужно много места, не занимайте его
Ответ №2:
Если вы хотите использовать таблицу, вы не можете использовать display: flex;
элементы таблицы. Собственное использование элементов таблицы display: table;
. Добавьте дочерние div
td
элементы внутри, если вы хотите оформить их с помощью flexbox или запретить перенос текста.
th {
color: $gray;
font-weight: 500;
border-top: none;
border-bottom: none;
}
tr:nth-child(odd){
background-color:rgba(238, 238, 238, 0.5);
}
tr {
// max-height: 34px;
max-height: 34px;
}
td div {
display: flex;
align-items: center;
max-height: 34px;
padding: .75rem 0 .75rem .75rem;
border-top: none;
font-weight: 500;
}
<table class="table">
<tr>
<th> Id </th>
<th>Company</th>
<th>Contact</th>
</tr>
<tr>
<td>1 1long 1text 1long 1text 1long 1text need be flexible</td>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
</tr>
<tr>
<td>2</td>
<td><div>Centro comercial Moctezuma long text long textlong textlong textlong text</div></td>
<td>Francisco Chang</td>
</tr>
<tr>
<td>3</td>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
</tr>
</table>
Комментарии:
1. Мария, но я хочу, чтобы мой идентификатор td или tr, если у него не так много символов, был маленьким. Точнее, если ему не нужно много места, не занимайте его
2. Ты хоть пробовал это сделать? jsfiddle.net/5L37zkc9 Таблицы автоматически сжимают столбцы до максимально возможной ширины
3. У меня здесь есть все, что нужно.. Мне нужно попробовать еще раз