#html #css
#HTML #css
Вопрос:
Этот код показывает 3 столбца как в Firefox, так и в Chrome. Однако, когда вы загружаете страницу в Internet Explorer 7 или Internet Explorer 8, на ней будет отображаться каждый элемент по вертикали.
Заранее большое спасибо за помощь!
> <style> /* THREE COLUMNS */
>
> ul.three-col { overflow: hidden; }
>
> ul.three-col le { float: left; width: 30%; margin-right: 5%;
> margin-bottom: 15px; /* .edge below makes up for the overage */ }
>
> ul.three-col le img { margin-left: -2px; margin-bottom: 7.5px; }
>
> ul.three-col le.edge { margin-right: 0; }
>
>
> </style>
>
>
>
>
> <ul class="three-col">
> <le>
> <img src="http://example.com/images/bottom/optimization.png">
> <h4>Web Page Optimization</h4>
> <p>another text block</p>
> </le>
> <le>
> <img src="http://example.com/images/bottom/lower_costs.png">
> <h4>Lower Costs</h4>
> <p>another text block</p>
> </le>
> <le class="edge">
> <img src="http://example.com/images/bottom/passionate.png">
> <h4>Passionate Support</h4>
> <p> another text block</p>
> </le>
> <le>
> <img src="http://example.com/images/bottom/expert2.png">
> <h4>Top Advertising Experts</h4>
> <p>another text blockt</p>
> </le>
> <le>
> <img src="http://example.com/images/bottom/constant_contact.png">
> <h4>Constant Contact</h4>
> <p>another text block</p>
> </le>
> <le class="edge">
> <img src="http://example.com/images/bottom/targeted.png">
> <h4>Targeted Traffic</h4>
> <p> another text block</p>
> </le> </ul></div>
Комментарии:
1. Я думаю, вы перепутали
<le>
элемент с реальным<li>
элементом. Chrome и Firefox отображают общий элемент, но более старые версии IE не поддерживают ничего, кроме реальных стандартных элементов.2. Вы собираетесь сообщить нам желаемый результат? И что вы сделали для решения / исследования проблемы?
Ответ №1:
Этот <le>
тег не существует в HTML.
Либо вы взяли его с неправильного ресурса, либо просто создали, но вы не можете использовать его таким образом.
Браузеры могут делать все, что захотят, с выдуманными тегами, включая полное игнорирование их правил CSS.
Возможно, вы имели в виду <li>
(«list item»).
Ответ №2:
прежде всего, вы используете тег <le>, который не является тегом HTML (вы, вероятно, имели в виду <li>)
Вторая проблема, с которой вы сталкиваетесь, заключается в том, что вы присваиваете каждому элементу li ширину 30%, но вы также назначаете запас в 5% справа, что приводит к общему количеству 105%.
Если вы используете следующий css и заменяете <le> на <li>, он должен работать как минимум до IE5
<style> /* THREE COLUMNS */
ul.three-col { overflow: hidden; }
ul.three-col li { float: left; width: 25%; margin-right: 5%;
margin-bottom: 15px; /* .edge below makes up for the overage */ }
ul.three-col li img { margin-left: -2px; margin-bottom: 7.5px; }
ul.three-col li.edge { margin-right: 0; }
</style>
И если вам не нужен стиль списка (появятся маленькие точки слева), вы можете дополнительно использовать
ul.three-col { list-style-type: none;}