Результат этого кода очень похож на FF, Chrome и Safari в Windows. В IE7 это выглядит странно.IE CSS Float Problem
Для всех других браузеров рамка div точно обертывает холст div, хотя в рамке есть 24X24 div, но за пределами холста. IE7 оставляет дополнительное пространство в кадре, над холстом, для div с синим ящиком. После того, как я плыл, я подумал, что пространство, которое он в противном случае занимал бы, рухнет. Это поведение, которое я вижу в других браузерах.
Есть ли какой-то трюк, чтобы заставить IE7 свернуть пространство, как другие ребята?
Редактировать: Просто чтобы дать представление о том, что должен представлять этот пример. Предполагается, что он представляет собой встроенный виджет. «Холст» - это место, где принадлежит контент. «Кадр» - это то, что использует хостинг-сайт, чтобы контролировать внешний вид и поведение между виджетами и остальной частью страницы. Красные ящики и синие ящики представляют элементы управления в виджетах. Красный ящик - это элемент управления, который содержит мой код виджета. Сине-бокс представляет собой контроль, добавленный в кадре (возможно, ручкой, чтобы виджет тащиться вокруг страницы)
Вот полный образец
<!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" xml:lang="en" lang="en" >
<head>
<title>CSS Positioning</title>
<style type="text/css">
#frame {
position: relative; /* so subelements can be positioned */
width: 400px; /* an arbitrary width */
border: 1px solid black; /* a border so you can see it */
}
#canvas {
position: relative; /* so subelements can be positioned */
width: 400px; /* an arbitrary width */
border: 1px solid black; /* a border so you can see it */
}
#blue-box{
position: relative; /* so I can position this element */
float: right; /* I want this element all the way to the right */
width: 24px; /* set size of eventual graphic replacement */
height: 24px;
}
#red-box{
position: relative; /* so I can position this element */
width: 24px; /* set size of eventual graphic replacement */
height: 24px;
}
</style>
</head>
<body>
<div id="frame">
<div id="blue-box">blue</div>
<div id="canvas">
<div id="red-box">red</div>
</div>
</div>
</body>
</html>
Дополнительный пример для Эмили ===== =============================================
<!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" xml:lang="en" lang="en" >
<head>
<title>CSS Positioning</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#one {
background-color: red;
float: right;
}
#two {
background-color: blue;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="one">one</div>
<div id="two">two</div>
</body>
</html>
как получилось, что у вас так много позиционируется относительно? Вы можете удалить большинство из них, я думаю, – marcgg
Я хочу, чтобы иметь возможность компенсировать синий-div и красный-div от их первоначальных местоположений. Удаление всех операторов положения не изменит поведение в любом случае. –