Чи можливе таке використання за допомогою CSS та двох тегів вбудованого блоку (чи будь-яких інших) тегів DIV замість таблиці?
Версія таблиці така (рамки додані, щоб ви могли бачити):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table style="width:100%;">
<tr>
<td style="border:1px solid black;width:100px;height:10px;"></td>
<td style="border:1px solid black;height:10px;"></td>
</tr>
</table>
</body>
</html>
Він створює лівий стовпець із ЗАМИСЛЕНОЮ ШІРНОЮ (а не відсотковою шириною) та правий стовпець, який розширюється, щоб заповнити ЗАЛИШНИЙ ПРОСТОР на рядку. Звучить досить просто, правда? Крім того, оскільки нічого не "плаває", висота батьківського контейнера належним чином збільшується, щоб охопити висоту вмісту.
- BEGIN RANT--
Я бачив реалізацію "чіткого виправлення" та "святого грааля" для багатошарових макетів із стовпчиком фіксованої ширини, і вони смокчуть і вони складні. Вони змінюють порядок елементів, вони використовують процентну ширину, або вони використовують поплавці, негативні поля, а відносини між атрибутами "ліворуч", "праворуч" та "маржа" є складними. Крім того, макети чутливі до пікселів, так що додавання навіть одного пікселя меж, прокладки або поля порушить весь макет, а цілі стовпці перегортають у наступний рядок. Наприклад, помилки округлення є проблемою, навіть якщо ви намагаєтеся зробити щось просте, наприклад, поставити 4 елементи на лінію, ширина кожного з яких встановлена на 25%.
--END RANT--
Я намагався використовувати "inline-block" і "white-space: nowrap;", але проблема полягає в тому, що я просто не можу отримати 2-й елемент, щоб заповнити решту місця в рядку. Встановлення ширини приблизно як "width: 100% - (LeftColumWidth) px" буде працювати в деяких випадках, але виконання обчислення у властивості ширини насправді не підтримується.
display: table-*
конструкцію, яка буде працювати, але насправді не є "більш семантичною" (якщо це жахливий випадокdiv
супу) і порушує сумісність IE6. Я особисто би дотримувався цього<table>
, якщо комусь не вдасться придумати геніальну просту ідею, яка працює без цього