Невозможно заставить float работать влево / вправо для div в Internet Explorer
-
22-07-2019 - |
Вопрос
Вот HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="styles.css"/>
<title></title>
</head>
<body>
<div align="center">
<div id="main-header-content" class="content">
<div class="left">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad
minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut
aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in
vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla
facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent
luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber
tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod
mazim placerat facer possim assum.
</div>
<div class="right">
<div class="left">
<img src="http://www.mywebk9.com/images/question.png" alt="Questions"/>
</div>
<div class="right">
<span class="small-text">Lorem ipsum dolor sit amet</span>
</div>
</div>
</div>
</div>
</body>
</html>
и styles.css:
*
{
margin: 0;
padding: 0;
}
body
{
font-family: Verdana;
font-size: 8pt;
}
div.content
{
width: 585px;
}
div#header-content div
{
padding: 20px;
text-align: justify;
}
div#main-header-content > div.left
{
padding-left: 40px;
padding-right: 7px;
text-align: justify;
width: 350px;
}
div#main-header-content > div.right
{
padding-left: 7px;
padding-right: 15px;
width: 165px;
}
div#main-header-content div.right div.left
{
width: 20px;
}
div#main-header-content div.right div.right
{
text-align: left;
width: 142px;
}
div.left
{
float: left;
}
div.right
{
float: right;
}
.small-text
{
font-size: smaller;
}
Это отлично работает в FF и Chrome. Это должны быть две колонки: одна с текстом, другая с иконкой и небольшим количеством текста. Как я могу заставить это работать в IE? Я попробовал div clear = обе вещи, и это ничего не делает.
Также приветствую тех, кто может дать мне несколько советов о том, как писать страницы и использовать стили, которые работают в FF, Chrome и IE > = 7.
Решение
может быть потому, что вы не определяете тип документа, а IE просматривает вашу страницу в режиме Quirksmode как приложение в режиме стандартов (или почти стандартном).
Прочтите эту статью, чтобы узнать больше:
http://www.quirksmode.org/css/quirksmode.html р>
Я проверил ваш сайт в стандартном режиме и в IE7 столбец 2 ведет себя так, как должен (как в FF & amp; Chrome)
Другие советы
Я могу предложить несколько вещей, хотя я не уверен, что поможет, если действительно что-то из них будет:
<Ол>Вот скелет, который стоит рассмотреть:
<div id="container">
<div id="left">Text</div>
<div id="right">
<div id="icon">(image)</div>
<div id="text">(text)</div>
</div>
</div>
в сочетании с:
html, body, div { padding: 0; margin: 0; border: 0 none; } /* or a proper reset CSS */
#container { margin: 0 auto; width: 585px; overflow: hidden; } /* center */
#left { text-align: justify; width: 350px; float: left; }
#right { width: 235px; float: right; overflow: hidden; }
#icon { float: left; width: 20px; }
#text { float: right; width: 142px; }
и т. д.
Сначала я пропустил все
div#main-header-content > div.left
и заменить на
div#main-header-content div.left
так как они не работают в IE6.
Во-вторых, я бы использовал
div.right {
float: left;
}
И, кроме того, я бы определенно пропустил <div align="center">...</div>
, так как это устарело. Вместо этого я бы переставил div.content в
div.content {
position: relative;
width: 585px;
margin-left: -292px
left: 50%;
}
Хитрость к центру состоит в том, чтобы (используя position: относительный или position: absolute) установить левую точку равной половине ширины, а затем переместить поле обратно на половину ширины элемента (где «element» - это элемент Вы хотите, чтобы в центре).
модифицированная CSS
div#main-header-content div.left
{
padding-left: 40px;
padding-right: 7px;
text-align: justify;
width: 350px;
}
div#main-header-content div.right
{
padding-left: 7px;
padding-right: 15px;
width: 165px;
}
Вместо ur css для этих классов вы можете попробовать это в IE и Firefox тоже.