У меня есть несколько дочерних <div>
переменных ширины, которые я хочу выровнять по правому краю в родительском элементе. Я также хочу, чтобы родитель <div>
был не шире, чем нужно, чтобы содержать детей. (Я не знаю заранее, насколько широкими будут дети - они будут содержать динамически генерируемый контент.)
Вот пример, который работает правильно в IE 8.0, но не в Firefox 3.5 (дочерние <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>
<style type="text/css">
#parentDiv{float:left; text-align:right; background-color: gray;}
.childDiv{clear:both; border: 1px solid black; background-color: white;}
</style>
</head>
<body>
<div id="parentDiv">
<div class="childDiv" style="width: 25px"> </div>
<div class="childDiv" style="width: 50px"> </div>
<div class="childDiv" style="width: 100px"> </div>
</div>
</body>
</html>
Если я добавлю float:right
в CSS childDiv, он будет работать в Firefox 3.5, но не в IE 8.0 (ширина parentDiv больше не определяется из ширины его дочерних элементов).
Есть ли способ получить желаемое поведение во всех основных браузерах?
ОБНОВЛЕНИЕ: Очевидно, что добавление float: right к дочерним элементам div вызывает ошибку в IE, только когда я размещаю страницу на своем локальном хосте IIS. (Что я и делал изначально.) Возможно, это проблема с некоторыми настройками IIS? Я использую IIS 6.0
ОБНОВЛЕНИЕ № 2: Получается, что IIS 6 заставлял страницу загружаться в режиме стандартов IE7. Таким образом, приведенный выше код (с добавлением float:right
к дочерним элементам div) работает для IE8 и Firefox, но, очевидно, не для IE7.
Я полагаю, что возникает вопрос: существует ли простой способ заставить это работать в IE7? (Я имею в виду не только использование условного комментария или CSS-хака для загрузки другой таблицы стилей в IE7.)