#html #css
#HTML #css
Вопрос:
У меня есть html <table>
с динамической шириной (изменяется в зависимости от размера окна) и фиксированной шириной <span>
(500 пикселей).
Я хочу отобразить оба рядом друг с другом, чтобы оба заполняли всю ширину родительского контейнера
Я хочу сделать это только с помощью CSS (не js)
Я поиграл с CSS, но, похоже, это уменьшает ширину таблицы
HTML
<div class='container'>
<table class='table'>....</table>
<span class='span'>....</span>
</div>
CSS
.container {
......
}
.table {
.....
}
.span {
width: 500px;
display: inline-block; //or block if neccessary
}
Комментарии:
1. Единственный известный мне способ сделать это — использовать
display: table-cell
…2. да, но должен ли я отображать «таблицу» как «ячейку таблицы»
3. Создайте jsfiddle, чтобы мы знали, что происходит
4. Нет, но вы могли бы обернуть его в div, который вы отображаете как ячейку таблицы…
Ответ №1:
Вы можете попробовать использовать table-layout
свойство .container
и span
.
Браузеры должны сами создавать элемент, отсутствующий для создания первой ячейки таблицы.
span {
display:table-cell;
width:500px;
border:solid;
}
table {
border:solid;
margin:0;
width:100%;
}
.container {
display:table;
width:100%;
table-layout:fixed;
}
Это должно сработать
из-за table-layout:fixed
и потому, что браузер должен сам создавать недостающий элемент (например, a tbody
всегда создается в a <table>
, когда отсутствует или когда в документе отсутствуют такие теги, как html
или body
).
Комментарии:
1. Не стесняйтесь улучшать ответ ссылками, связанными с исправлением браузером разметки неправильно закодированного документа
Ответ №2:
css
body, html {
margin:0;
padding:0;
}
.container {
}
table {
width: calc(100% - 500px);
border-collapse: collapse;
float: left;
}
/* Zebra striping */
tr:nth-of-type(odd) {
background: #eee;
}
th {
background: #333;
color: white;
font-weight: bold;
}
td, th {
padding: 6px;
border: 1px solid #ccc;
text-align: left;
}
.span {
display: inline-block;
width: 500px;
height: 100px;
background: red;
}
HTML
<div class='container'>
<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>etc</th>
</tr>
</thead>
<tbody>
<tr>
<td>Gaurav</td>
<td>Singh</td>
<td>etc</td>
</tr>
<tr>
<td>Gaurav</td>
<td>Singh</td>
<td>etc</td>
</tr>
</tbody>
</table> <span class='span'>....</span>
</div>