Как исправить ошибку Internet Explorer 7 при использовании ширины в процентах для макета?

Пожалуйста, помогите мне в этом. Мне нужно создать макет, используя ширину в процентах. У меня есть обертка шириной 100%.

Теперь у меня есть DIV (основная обертка. Я хочу, чтобы она составляла 94% ширины. 94% от 100% тела). Ладно, хорошо

Так что, чтобы сделать это просто .->

 КОРПУС 100% ширины

-> КОНТЕЙНЕР 94% ширина

---> ПЕРВЫЙ РЕБЕНОК DIV 70% поплавка слева (70% КОНТЕЙНЕРА)

---> ВТОРОЙ РЕБЕНОК DIV 30% с плавающей точкой справа (30% от КОНТЕЙНЕРА)

Но у меня есть 2 равных столбца под FIVST CHILD DIV

-----> 50% и 50% процентная ширина

Ошибка заключается в том, что в ie7 .. последний столбец отображается внизу .. он не перемещается должным образом. Если я уменьшу ширину до 29,9% !!! это работает .. я думаю, что ie7 имеет ошибку в обработке процентной ширины или что-то .. Пожалуйста, уточните это. Я надеюсь, что вы получите проблему, потому что CSS / HTML слишком долго .. Я просто надеюсь, что это общая проблема .. :(

Вот CSS для этого DIV. Надеюсь, это поможет :)

body {
width: 100%;
background: #fff;
text-align: center;
font-size: 12px;
}

#wide-primary {
background: #fff url(img/shadow1.png) repeat-x top;
position: relative;
top: -1px;
}

#primary {
width: 94%;
margin: 0 auto 0 auto;
text-align: left;
}

#features {
float: left;
width: 70%;
padding: 2% 0 0 0;
}

.featurebox {
float: left;
width: 48%;
padding: 0 2% 3% 0;
}

#lastnews {
float: right;
width: 30%;
padding: 2% 0 2% 0;
}
 JasCav21 авг. 2009 г., 05:35
Это может помочь, если вы можете опубликовать свой CSS.
 Ahmad Fouad21 авг. 2009 г., 05:43
Хорошо добавил его по вашему запросу

Ответы на вопрос(4)

Вот простое решение для этого:

div {
*min-width: 100%;
}

протестировано в IE7.

 Mo.12 сент. 2012 г., 17:07
Действительно помочь в полном объеме. большое спасибо вам
 Mido13 авг. 2013 г., 04:54
Это'Не рекомендуется использовать * в правиле CSS, потому что -> stackoverflow.com/questions/4563651/... Вместо этого вы должны использовать условные выражения IE, чтобы добавить определенный класс для той версии IE, которую вы хотите изменить.
 Weboide26 июл. 2012 г., 20:43
Я использовал это в условной таблице стилей для IE7 с обычной "мин-ширина» обозначение (без звездочки). Работал отлично, спасибо.
Решение Вопроса

и, будет время, когда математика неt приводит к полному пикселю (70% от 721 пикселей составляет 504,7 пикселей). 721 произвольно, но с использованием процентов выстолкнусь с произвольными числами. Там'Нельзя избегать этого. Большинство браузеров находят решение для округления, которое ненарушить макет. IE7 (и старше) просто округлить. В итоге ширина вашего контейнера в 721px будет включать в себя одну коробку в 505px и другую в 217px, что в общей сложности составит 722px - более 100%. В этот момент IE решает, что второе поле можетподходит и опускает его ниже.

Существуют различные решения в зависимости от вашей ситуации. У Николь Салливан есть интересное решение, основанное на использованиипереполнение: скрыто; на вашем последнем столбце, а не на комбинации float / width. Я использую это, когда могу. Проверьте это здесь:

http://www.stubbornella.org/content/2009/07/23/overflow-a-secret-benefit/

Другое решение, которое ямы нашли когдапереполнение» просто добавьте небольшую отрицательную границу к последнему элементу в строке. Если вы перемещаетесь влево, добавьте несколько пикселей отрицательного поля справа. Плавающий вправо, добавить его слева. У меня нетне столкнуться с какими-либо негативными последствиями от этого (хотя яБуду рад слышать, если другие делают).

Надеюсь, это поможет. Приветствия.

 Ahmad Fouad21 авг. 2009 г., 12:50
Это очень помогает. Прояснили много недоразумений ... но один вопрос остается в моей памяти. По-твоему; Сколько полей негативных пикселей можно добавить? (и я имею ввиду кросс-браузерную совместимость)
 Miriam Suzanne21 авг. 2009 г., 19:27
Извините, что сказал 'Я все еще изучаю это. По моему опыту, вам никогда не нужно больше, чем несколько пикселей для очистки IE (в зависимости от количества столбцов), и зачем идти за борт? У меня нетЯ не видел никаких кросс-браузерных проблем, но я также предпочитаю скрывать это от браузеров, которые неЭто не нужно - для безопасности. Вы можете сделать это либо в специальной таблице стилей IE, вызываемой с помощью условных комментариев, либо добавив хеш в начале объявления (если вы предпочитаете хаки - я неt) вот так: # margin-right: -3px;

<!--[if IE 7]>
    <style>
        body {
        padding:0 1% 0 0;
        width:101%;
        }
    </style>
<![endif]-->

Попробуйте следующее:

div {
    width: 100%;
    *overflow: auto;
}

Это хорошо работает в IE7.

Ваш ответ на вопрос