Я хотел бы создать макет веб-страницы с боковой панелью справа и основным содержимым, обтекающим боковую панель.
Требования:
- Содержимое под боковой панелью должно занимать всю доступную ширину
- Содержимое ниже боковой панели не должно переноситься, когда оно попадает в левую часть боковой панели
- Основное содержание должно предшествовать боковой панели в разметке
- Боковая панель имеет фиксированную ширину, но неизвестна / переменная высота
- Только для CSS - без JavaScript-решений
Этого можно достичь без третьего требования: если боковая панель находится перед основным содержимым в разметке и находится в том же элементе, содержащем элемент, то простое правое плавание делает эту работу. Боковая панель перед основным содержанием в разметке здесь не подходит. Боковая панель будет содержать дополнительную информацию и рекламу. Если это до основного содержимого в разметке, это будет раздражать браузеры без CSS и пользователей программ чтения с экрана (даже со ссылками «skip to ...»).
Этого можно достичь без четвертого требования. Если бы боковая панель имела фиксированную высоту, я мог бы поместить содержащий элемент перед основным содержимым, переместить его вправо и дать ему подходящую ширину и высоту, а затем использовать абсолютное позиционирование, чтобы поместить боковую панель поверх предварительно подготовленного пространства.
Пример разметки (без CSS, только соответствующие биты):
<body>
<div id="content">
<p>
Lorem ipsum ....
</p>
<p>
Pellentesque ....
</p>
<div id="sidebar">
/* has some form of fixed width */
</div>
</div>
</body>
Пример макета:
альтернативный текст http://webignition.net/images/layoutexample.png
Я не уверен, возможно ли это. Я рад принять авторитетный ответ, в котором говорится, что этого не достичь. Если это не может быть достигнуто, я был бы признателен за объяснение - знание, почему это не может быть достигнуто, гораздо более ценно, чем просто сказать, что это не может.
Обновление : Я рад видеть ответы, которые не соответствуют всем пяти требованиям, если в ответе указано, какое требование игнорируется, а также последствия (плюсы и минусы) игнорирования требование. Затем я могу пойти на компромисс.
Обновление 2 : я не могу игнорировать требование 3 - боковая панель не может предшествовать содержимому.