[css] блок вверху справа

a10063

можно ли каким-то образом решить с помощью css следующую задачу: поместить div справа вверху страницы так, чтобы при сокращении ширины страницы он не ехал дальше определенной отметки, а начиналась горизонтальная прокрутка?
короче, хочется поведения типа top:5px;right:10px;min-left:500px;

wwoland

может слева от него поместить еще один див на 500?

a10063

как это понимать - "слева" - если он уже вышел из normal flow?
или есть способ поместить блок справа вверху без position: absolute;?

wwoland

Намек понял,затупил =)

wwoland

может его просто в relative зафигачить?

a10063

намек не понял...

wwoland

Да я вообще не в теме,что ты меня слушаешь =)
может замутить какой жава скрипт,который будет его лефт устанавливать?

bobby

А ширина блока известна заранее?

a10063

хотелось бы ее оставить auto
но у меня даже с фиксированной известной длиной не получается...

bansek

гоню, там табличка =(

sany79


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
<!--
div[id="div2"]
{
background-color: blue;
max-width: 12cm;
margin-left: 0cm;
margin-right: auto;
min-width: 0cm;
margin-top: 0pc;
position: static;
}
div[id="div1"]
{
@namespace url(http://www.w3.org/1999/xhtml);
background-color: red;
color: green;
margin-top: 0pc;

position: static;

max-width: 100cm;
min-width: 5cm;
left: auto;
margin-right: 0pc;
margin-left: 13cm;
overflow: auto;
}
div[id="div2"]
{
margin-left: auto;
margin-right: 0pc;
background-color: yellow;
/*margin-left: 0cm;*/
width: 10cm;
/*overflow: auto;*/
}
-->
</style>
</head>

<body>
<div id="div1">
<div id="div2">
HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO! HELLO!
</div>
</div>
</body>

</html>


Жёлтый div[id="div2"], кажется, ведёт себя так, как тебе нужно.

sany79

Кстати, работает в Mozill'е, в Konqueror'е — нет. Не знаю, как это будет выглядеть в IE.
В IE, пишут, есть такая конструкция:

width: expression(document.body.clientWidth>400? "400px": "auto");

Внутри expression стоит выражение JScript, поэтому в Мозиллах не работает. См. исходник http://ya.ru. Если ограничиваться IE, то, возможно, поможет что-то подобное.

a10063

не совсем
я имел в виду прокрутку страницы, а не дива (извини, что неточно написал)
+ это не работает в IE; полагаю, что из-за min/max-width, которые он не понимает
я уже нашел вчера решение моей задачи с использованием min/max-width и объемлющего контейнера
но эмуляция этих css свойств дорого стоит
буду, наверное, скрипт использовать, вместо того, чтобы портить свой xhtml и css
таким образом, решение с доп. контейнером на css2 есть, но в современной ситуации не реализуемо

a10063

ага, все правильно
я находил даже решения, где работает во всех браузерах, но приходится вмешиваться в xhtml и писать нестандартный css
я лучше уж скрипт напишу

sany79

Вот кстати Konquror именно так и делает. А насчёт {min,max}-width в IE я смотрел тут: http://xhtml.ru/2005/06/11/max-width/print/. За что купил, за то и продаю; проверить в IE не имею возможности. Я же ориентировался на Мозиллу, т. к., на мой взгляд, она наиболее точно отражает стандарты w3. А Конкверор на то и Конкверор, он любой html/css отображает неверно.
Пока я упражнялся с этим примером, в какой-то момент у меня получилась и прокрутка всей страницы. Боюсь, сейчас уже не воспроизведу.

a10063

я бы с удовольствием ориентировался на firefox, но, к сожалению, не могу, т.к. по статистике 80-90% пользователей используют кривые браузеры
во всяком случае, спасибо за участие!
Оставить комментарий
Имя или ник:
Комментарий: