Kann nicht Schwimmer / rechts sich gelassen zu bekommen für ein div in Internet Explorer zu arbeiten
-
22-07-2019 - |
Frage
Hier ist der 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>
und 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;
}
Das funktioniert in FF und Chrome in Ordnung. Es sollte zwei Spalten eines mit Text und einem mit einem Symbol und einer geringen Menge an Text sein. Wie kann ich diese Arbeit in IE machen? Ich versuchte, die div clear = beide Sache, und das ist nichts zu tun.
upvotes auch für jeden, den mir ein paar Tipps geben kann, wie Seiten und die Verwendung von Design zu schreiben, die über FF, Chrome und IE arbeiten> = 7.
Lösung
könnte sein, weil Ihr nicht ein Doctype Definition und IE ist die Anzeige Ihrer Seite in Quirksmode als appose zu Standard-Modus (oder fast Standard).
Lesen Sie diesen Artikel, um mehr zu finden:
http://www.quirksmode.org/css/quirksmode.html
Ich habe Ihre Seite im Standardmodus und in IE7 die 2-Säule verhalten, wie sie sollen (wie in FF & Chrome) geprüft
Andere Tipps
Ich kann einige Dinge vorschlagen, obwohl ich nicht sicher bin, was, wenn in der Tat einer von ihnen helfen wird:
- Legen Sie eine DOCTYPE (zB Transitional HTML 4.01) auf Ihrem Dokument. Dies zwingt IE in sogenannten „standardkonforme“ Modus statt den euphemistischen „Macken“ -Modus;
- Sie die linken und rechten Klassen wie die nicht wiederverwendet werden. Es zwingt Sie, das Kind Wähler zu verwenden, die nur IE7 + ist und es gibt keine Notwendigkeit für sie;
- Wenn Ihr div enthält nichts anderes als schwimmt es 0 Höhe haben wird. Sie können dies, indem es eine 0 Höhe div unter ihnen mit dem Setzen „clear: both“ an oder „overflow: hidden“ auf dem übergeordneten;
- Sie sich von align = "center" los zu werden. Das ist nicht Standard.
Hier ist ein Skelett zu prüfen, mit:
<div id="container">
<div id="left">Text</div>
<div id="right">
<div id="icon">(image)</div>
<div id="text">(text)</div>
</div>
</div>
kombiniert mit:
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; }
und so weiter.
Zuerst würde ich übersprungen alle
div#main-header-content > div.left
und ersetzen Sie mit
div#main-header-content div.left
wie sie funktionieren nicht in IE6.
Zweitens würde ich verwenden
div.right {
float: left;
}
Und Additionaly, würde ich auf jeden Fall <div align="center">...</div>
überspringen, da es veraltet ist. Stattdessen würde ich neu anordnen div.content zu
div.content {
position: relative;
width: 585px;
margin-left: -292px
left: 50%;
}
Der Trick zum Zentrum ist (mit Position: relative oder Position: absolut) den linken Punkt auf der Hälfte der Breite eingestellt und dann die Marge auf der Hälfte der Elementbreite zurückbewegen (wobei das ‚Element‘ ist das Element Sie wollen Mitte).
modifizierte 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;
}
Statt ur CSS für diese Klasse u versuchen, dies in IE und Firefox auch gut funktioniert ..