"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

CSS positionierungsproblem

nfin1te 09.07.2004 - 12:52 581 13
Posts

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
http://retroms.he4d.net/nfi_homepage/

ich hab als hover einen text der mittel css & span tag in der info box erscheint (funkt im IE imho nicht).

da ich es aber relativ positioniere (klar), schiesst es mir jedes mal das tablelayout.

was müsst ich machen damit das layout erhalten bleibt, der text jedoch an seiner position erscheint (bei jeder auflösung an dergleichen stelle klarerweise)


TIA

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Du positioniertst ihn absolut. Nur funktioniert das mit CSS alleine nicht mehr, dazu brauchst auch Javascript (da du ziemlich sicher die absolute positionierung entsprechend ausrichten moechtest). Das sind eben die typischen Menus.

Erst kuerzlich hats auf ALA einen Artikel gegeben , HTH -> http://www.alistapart.com/articles/horizdropdowns/

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
nein ich muss ihn relativ positionieren, da er sonst je nach auflösung woanders erscheint! ausserdem solls ja kein drop down menü werden :confused:

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Aber alles was nicht position: absolute oder position: fixed ist, ist im "flow", d.h. es wird die den inhalt des dokumentes veraendern und die nachfolgendes elemente im dokument verschieben. Vielleicht hab ichs nur falsch verstannden, dachte du willst dieses verschieben, das Springen der Seite, verhindern.

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Hmm, ich glaube ich sehe jetzt erst was du willst. Ich hab mich da von dem komischen Springen beeinflussen lassen. Du willst bei einem hover ueber einem Menu-Element unten einfach nur einen anderen Text einblenden?

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
ja genau.
der text wird ja eingeblendet, aber er verschiebt alles. das verschieben will ich ja verhindern.
(der text soll in der "info box" erscheinen")

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Das verschieben kannst du mit position: relative nicht verhindern, weil das Element nicht aus dem document flow genommen wird. Der urspruenglich verbrauchte Platz wird nicht hergegeben.

Sieh auch http://www.w3.org/TR/CSS21/visuren.html#x28:

"Offsetting a box (B1) in this way has no effect on the box (B2) that follows: B2 is given a position as if B1 were not offset and B2 is not re-positioned after B1's offset is applied. This implies that relative positioning may cause boxes to overlap.

A relatively positioned box keeps its normal flow size, including line breaks and the space originally reserved for it. The section on containing blocks explains when a relatively positioned box establishes a new containing block."

Ich glaube fast es ist besser das mit JS zu machen; DIVs auf "display: none" setzen und bei entsprechendem Link-Hover auf display: block setzen.

CSS:
Code:
#nav a {
  display: block;
}
#bloecke div {
  display: none;
}

JS
Code:
var nav = document.getElementById('nav');
var bloecke = document.getelementById('bloecke');
var divs = bloecke.getElementsByTagName('div');
var links = nav.getElementsByTagName('a');
var i;
for (i = 0; i < links.length; i++) {
  links[i]._block = divs[i];
  links[i].onmouseover = function() {
    this._block.style.display = 'block';
  }
  links[i].onmouseout = function() {
    this._block.style.display = 'none';
  }
}

HTML
Code:
<div id="nav">
  <a href="">Link 1</a>
  <a href="">Link 2</a>
  <a href="">Link 3</a>
</div>
<div id="bloecke">
  <div>link 1 text</div>
  <div>link 2 text</div>
  <div>link 3 text</div>
</div>

Das ist jetzt nur Pseudogescribbel, aber so wuerd ichs machen.

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
dummerweise kann ich kein js :bash:

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Helf dir gerne ;) Soll ich das index file von deiner Seite nehmen und einbauen?

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
hehe jo, wär super :)

danke dir

ein freund meinte, die site mit tables aufbauen wäre altmodisch. man könne alles mit css positionieren und aufabauen, gibts dazu wo gute tutorials?

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Hmm, jo, verwende mal die Forumsuche bitte, das wurde schon oefters gefragt und :) Und google nach "css layout tutorial" bringt auch einiges, z.b. glish.com . Da hast dann eh einiges zu lesen und lernen :)

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
gehts voran? :D

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Zitat von nfin1te
gehts voran? :D
Hey, es gibt auch noch RealLife ;-)

File ist anbei. Wichtig ist, dass die Reihenfolge der Links in #navigation und die Reihenfolge der DIVs in #navigation-infoboxen die selbe ist; auf diesem Prinzip funktioniert die automatische Links <-> Infobox-Findung.
Happy hacking.
nfin1te_58655.txt (downloaded 46x)

nfin1te

nuttiest knifenut
Avatar
Registered: May 2002
Location: Wien
Posts: 7731
w00t danke. :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz