zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden IE und 3px-jog...

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 09.09.2005, 16:51
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2003
Beiträge: 179
Karlo wird schon bald berühmt werden
Standard IE und 3px-jog...

Hallo,

hoffe mal das mir hier geholfen wird? Gesucht und auch gelesen hab ich hier zum Thema einige Beiträge, nur werd ich da nicht schlau draus. Hab mir diese abgespeichert und auch ausprobiert, nur komme ich bei meinem Problem nicht weiter.

In den Beispielen wurde stehts nur eine Box gefloatet, wie sieht das aber aus, wenn ich zwei oder mehr gefloatet habe.

Siehe Codebeispiel unten...

oder

hier: Beispielseite...

Code:
<!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" xml:lang="en" lang="en">
<head>
	<title>Beispielseite...</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<style type="text/css">
	/*<![CDATA[*/
body, html, td {
	font: 90% Verdana, Geneva, Arial, Helvetica, sans-serif;
	background-color: White;
	color: Black;
	margin: 0px;
	padding: 0px;
}
body {
	padding: 0px;
	margin: 20px;
}
.clear {
	clear: left;
	line-height: 0px;
	margin: 0px;
	padding: 0px;
}
h1 {
	color: #FAFAD2;
	background-color: #D2691E;
	margin: 2px 0px;
	font: bold 18px/2 Verdana, Geneva, Arial, Helvetica, sans-serif;
	text-indent: 10px;
}
#links {
	margin: 0 2px 0 0;
	background-color: #FFDAB9;
	float: left;
	padding: 10px;
	width: 150px;
	color: Black;
}
#mitte {
	background-color: #F4A460;
	margin: 0 2px 0 0;
	float: left;
	padding: 10px;
	width: 200px;
	color: Black;
}
#rechts {
	background-color: #FFDAB9;
	margin: 0 0 0 394px;
	padding: 10px;
	color: Black;
}
	/*]]>*/
	</style>
	
</head>
<body>

<h1>Überschrift...</h1>

<div id="links">Blindtext...</div>
<div id="mitte">Blindtext...
 Blindtext...
 Blindtext...</div>
<div id="rechts">Blindtext...
 Blindtext...
 Blindtext...
 Blindtext...
 Blindtext...
 Blindtext...</div>

<br class="clear" />

<h1>Überschrift...</h1>


Hier gehts normal weiter...</p>

</body>
</html>
__________________
Gruss Karlo
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 09.09.2005, 17:19
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 20.02.2005
Beiträge: 1.045
Tigereye befindet sich auf einem aufstrebenden Ast
Standard

ähm, wo ist das Problem? Ich sehe keins.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 09.09.2005, 18:34
#
XHTMLforum-Kenner
 
Registriert seit: 30.06.2005
Ort: Hamburg
Beiträge: 2.092
IChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer Mensch
Standard

Code:
#links {
   margin: 0;
   background-color: #FFDAB9;
   float: left;
   padding: 10px;
   width: 150px;
   color: Black;
}

#mitte {
   background-color: #F4A460;
   margin: 0 0 0 2px;
   float: left;
   padding: 10px;
   width: 200px;
   color: Black;
}
#rechts {
   background-color: #FFDAB9;
   margin: 0 0 0 394px;
   padding: 10px;
   color: Black;
}

   /*]]>*/
   </style>
   

 <!--[if lte IE 6]>
<style>
#rechts { 
	margin: 0 0 0 391px; 
	height:1%;
	}
</style>	
<![endif]--> 
   
</head>
Ich habe die margins etwas geändert, damit nicht auch noch der doubled float-margin bug mit herumspukt. Den 3px jog habe ich nur rechts ausgleichen müssen, oder habe ich da was übersehen?

@tigerauge, in der rechten box sind die Zeilen, die neben dem mittleren float stehen, um 3px nach innen verschoben. Unter der Höhe des mittleren floats gehts normal weiter.
__________________
Ingo Chao

Buch: Fortgeschrittene CSS-Techniken
Mit Zitat antworten
  #4 (permalink)  
Alt 09.09.2005, 20:26
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 20.02.2005
Beiträge: 1.045
Tigereye befindet sich auf einem aufstrebenden Ast
Standard

Aah stimmt, da muss man schon genau hinschauen, ich dachte, das Problem wäre irgendwo bei den Abständen zwischen den divs.
Mit Zitat antworten
  #5 (permalink)  
Alt 10.09.2005, 06:40
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2003
Beiträge: 179
Karlo wird schon bald berühmt werden
Standard

Hallo,

Zitat:
Ich habe die margins etwas geändert, damit nicht auch noch der doubled float-margin bug mit herumspukt.
Ah, diesen Bug kannte ich noch nicht, Danke.

Zitat:
Den 3px jog habe ich nur rechts ausgleichen müssen, oder habe ich da was übersehen?
Haste genau richtig erkannt, so ein sch... Internet Explorer.

Hab's nun so gemacht, obwohl es immer noch nicht richtig hinhaut. Der letzte Div müsste noch um 1px nach links, spielt aber im Prinzip keine Rolle, da der Hintergrund ja weiß ist.

Code:
#links {
	margin: 0;
	background-color: #FFDAB9;
	float: left;
	padding: 10px;
	width: 150px;
	color: Black;
}
#mitte {
	background-color: #F4A460;
	margin: 0 0 0 2px;
	float: left;
	padding: 10px;
	width: 200px;
	color: Black;
}
#rechts {
	background-color: #FFDAB9;
	margin: 0 0 0 394px;
	padding: 10px;
	color: Black;
}
*html #rechts {
	margin: 0 0 0 391px;
	height: 1%;
}
__________________
Gruss Karlo
Mit Zitat antworten
  #6 (permalink)  
Alt 10.09.2005, 07:30
#
XHTMLforum-Kenner
 
Registriert seit: 30.06.2005
Ort: Hamburg
Beiträge: 2.092
IChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von Karlo
Hab's nun so gemacht, obwohl es immer noch nicht richtig hinhaut. Der letzte Div müsste noch um 1px nach links
Stimmt. Habe was vergessen: den -3px Ausgleich!

Code:
<!--[if lte IE 6]>
<style>

#mitte {
	margin-right: -3px;
	}
#rechts {
   margin: 0 0 0 391px;
   height:1%;
   }
</style>
<![endif]-->

Übrigens versteht der IE-Mac deinen star html hack auch und ist ziemlich exakt in Höhenangaben: die Box schnurrt also auf 1% Höhe zusammen.

Ich habe das hier im Forum schon recht häufig gesehen, ist irgendwo eine deutsche Quelle da draußen, die den Holly Hack solchermaßen verkürzt wiedergibt?

Der vollständige Hack sieht mindestens so aus:
Code:
/* \*/
* html #rechts {height: 1%}
/* */
Dieses Zeugs darum ist notwendig. \*/ , also der Backslash vor dem Stern, wird vom IEmac als Escapesequenz missverstanden. Für den IEmac ist der Kommentar hier also nicht zu Ende. Das heißt, IE-mac versteht das alles bis zum nächsten richtigen */ als Kommentar, wird also ausgeschlossen von der Party.

Alle anderen Browser sehen den Inhalt der "Kommentarklammer". Deswegen muss hier die Weiche für den IE-Win noch mit dem * html gestellt werden.

Aber: der IE7 versteht den star html hack nicht mehr. Zum Glück soll der 3px text jog auch behoben sein.

Aber wenn du dir die Seite mal im IE5.5 anguckst, musst du ja wahrscheinlich noch einen boxmodel hack anwenden.

Am Ende ist es "wartungsfreier", wenn du mit Conditional Comments arbeitest, da nicht davon auszugehen ist, dass alles im neuen IE7 so funktioniert, wie beworben. Wenn wir also hacks für den IE7 anwenden müssen, musst du eh auf CC umsteigen. Warum also nicht heute?
__________________
Ingo Chao

Buch: Fortgeschrittene CSS-Techniken
Mit Zitat antworten
  #7 (permalink)  
Alt 10.09.2005, 15:22
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 23.03.2005
Beiträge: 286
Chattanooga befindet sich auf einem aufstrebenden Ast
Standard

Hallo, Ingo,
hat es einen tieferen Sinn, dass Du in dieser Fallgestaltung den '3 Pixel text jog' über margin-Dimensionierung löst, anstatt das hasLayout-flag zu setzen?

Ich hätte geschrieben:

...
#rechts {
background-color: #FFDAB9;
margin: 0 0 0 394px;
padding: 10px;
color: black;
}
</style>

<!--[if lte IE 7]>
<style type="text/css">
#rechts {zoom: 1.0; }
</style>
<![endif]-->

[funktioniert in IE7 Windows Vista und IE7 Windows XP_Sp2]

Was übersehe ich?
Gruß
Chattanooga
Mit Zitat antworten
  #8 (permalink)  
Alt 10.09.2005, 15:52
#
XHTMLforum-Kenner
 
Registriert seit: 30.06.2005
Ort: Hamburg
Beiträge: 2.092
IChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer MenschIChao ist ein sehr geschätzer Mensch
Standard

zoom:1 oder height: 1% setzen beide hasLayout=true, welchen du nimmst, ist IE5.5 und 6 meist egal.

(Für IE7 und darüber hinaus wäre zoom neutraler, aber wir wissen ja noch nicht, ob diese layout-bugs nicht zum Teil gelöst sind in IE7 final. float würde eigentlich auch gut gehen, aber einem float muss man wegen IEmac eh eine Weite geben)

Damit wird #rechts stabiler und unabhängiger. Der 3px text jog kann nun nicht mehr in den #rechts-Block hineingreifen, um bloß den Text zu verschieben.

Nun schiebt der 3px text jog aber stattdessen den ganzen #rechts-block nach rechts (zumindest in meinem IE6. im IE7beta1 nicht? Interessant)

Der text jog wird ja vom float ausgelöst, der "Schub" ist immer noch da.

Also löst haslayout zu setzen allein nur das Problem der Verschiebung des Textes innerhalb der #rechts-box.

Nun muss man die ganze box um 3px zurückziehen (margin-left: 391 statt 394). Das geht aber nur, wenn der float auch um 3px zurückweicht (margin-right: -3px).

So zeigt die unsichtbare 3px Text jog Hand, die ja trotz alledem immer noch hartgelötet rumspukt, keine Wirkung mehr. Für die anderen Browser stimmen die margins natürlich nicht mehr, deswegen die "Browserweiche".

Ich muss sagen, dass mir das ganze mit dem 3px text jog eigentlich nicht klar ist, und oft holperts bei einem Lösungsversuch.

Nicht immer braucht man diesen Dreiklang, aber als Checkliste hilft es:
1. der verschobenen Box "layout" geben
2. und ihren margin verkleinern um 3px
3. und allen verursachenden floats einen negativen margin von -3px geben

Du verzichtest auf Schritt 2+3, und im IE7 zeigt es eine exakte Position, verglichen mit Fx? Interessant. Ich habe kein IE7, und die meisten bugs sollen ja erst in beta2 behoben sein.

Ich hoffe, dass ich deine Frage halbweg srichtig verstanden habe.
__________________
Ingo Chao

Buch: Fortgeschrittene CSS-Techniken
Mit Zitat antworten
  #9 (permalink)  
Alt 10.09.2005, 17:39
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 23.03.2005
Beiträge: 286
Chattanooga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Was übersehe ich?
Ich hatte mich auf die korrekte Linksbündigkeit des Textes konzentriert und dabei übersehen, dass sich der rechte div um 3 Pixel verschiebt. Insofern verhält sich IE7_b1 analog der sechser Version und ich komme nicht drum herum, den 'Dreiklang' zu intonieren.

Gegenüber IE6_Sp2 sind mir kleinere Abweichungen in der Umsetzung des style sheet aufgefallen, die ich nochmals step-by-step durchgehen möchte und dafür etwas Zeit benötige. Ich melde mich dann nochmals in diesem threat.

Danke für Deine schnelle und ausführliche Antwort.

Gruß
Chattanooga
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 11.09.2005, 06:05
Neuer Benutzer
neuer user
 
Registriert seit: 20.07.2005
Beiträge: 3
acquisition befindet sich auf einem aufstrebenden Ast
Standard SPAM

spam gelöscht
IP: 68.197.188.120, 167.142.225.101, 66.109.49.55
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Menu Button läßt sich nicht fixen leverkusenerjung CSS 7 05.04.2016 21:13
CCS Navi im IE nur auf manchen Seiten verfügbar.. Variomatic CSS 6 06.11.2013 10:56
CSS von Plugin beisst! expand CSS 0 28.09.2012 17:44
Responsive webdesign: horizontales Menü mit angepasster Schriftgröße Spencer Javascript & Ajax 3 18.09.2012 23:16
Problem mit einem 3D-Effekt moep0710 CSS 12 12.06.2010 14:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:18 Uhr.