html elemte bei bestimmter größe fixiert positionieren

Gast #3659408
Lesenswert?

Ich habe zwar einen Lösungsvorschlag, dieser ist aber nicht sehr schön. 
Ich hatte vor die aktuelle Position zu ermitteln und per javascript ab 
einen bestimmten Wert die Klassen von bestimmten betroffenen Elementen 
ändern.
Wird es aber immer funktionieren ist die Frage?

Gibt es mit Css keine elegenteren Methoden dazu?

Zum Beispiel soll es dieser Effekt sein: http://www.gmx.at/
Gast #3659690
Lesenswert?

Andi ... schrieb:
> was willst du genau machen ? meinst du die werbung die auf der rechten
> seite ab ~1024px breite erscheint ? stichwort dazu wäre "CSS3 Media
> Query"

Nein, auf meiner Seite ist keine Werbung. Jedoch sind der Homebutton und 
diverses immer rechts oben am Rand positioniert. Wenn also das Fenster 
kleiner wird, so wandern auch der homebutton usw mit. Jedoch kollabieren 
diese sachen irgendwann mit anderen Menüsachen.
Das will ich verhindern
#3659737
Lesenswert?

emi schrieb:
> Nein, auf meiner Seite ist keine Werbung. Jedoch sind der Homebutton und
> diverses immer rechts oben am Rand positioniert. Wenn also das Fenster
> kleiner wird, so wandern auch der homebutton usw mit. Jedoch kollabieren
> diese sachen irgendwann mit anderen Menüsachen.
> Das will ich verhindern

kannst du mal nen vernünftiges beispiel geben ? gmx.at gehört nich 
dazu...
das ganze hört sich so an als hättest du eine variable containerbreite 
und irgendwann ist der inhalt größer als der container. du musst dir 
dazu zuerst überlegen was in dem fall passieren soll. am einfachsten 
setzt du "min-width" auf einen wert bei dem noch alles "gut " 
aussieht...in dem fall muss der user halt scrollen oder das menu teilt 
sich auf mehrere zeilen auf
#3659752
Lesenswert?

emi schrieb:
> Jedoch kollabieren
> diese sachen irgendwann mit anderen Menüsachen.
> Das will ich verhindern

Die Beschreibung ist führ eine Lösung noch etwas wage, ohne die genaue 
geometrische Struktur der Seite zu kennen wird das schwierig.

Aber was immer nützlich ist um Kollisionen von Elementen zu verhindern 
ist
mit css3 min-width und max-width, bzw min-height und max-height, und 
overflow
festzulegen. Bei inline-elementen geht dass mit display:inline-block. 
Bei einer Positionierung mit position:absolute; Ist es nur noch mit js 
oder css3 mediaquery zu erreichen. Oft kann man solche absoluten 
positionen durch float:left; und float:right; ersetzen. Wenn die 
css-option float den Textfluss durcheinanderbringt kann man diese in ein 
div mit display:inline-block verpacken.
Gast #3660202
Lesenswert?

Ich will eigentlich nichts weiter als verhindern, dass das rote div in 
das gelbe div "hineingeht". Also ab einer bestimmten width soll alles so 
stehen bleiben wie es gerade steht. Nur wie soll ich das anstellen?
Ich habe mich mit min-width und max-width herumgespielt, das führt aber 
zu keinem vernünftigen Ergebnis.
Angehängte Dateien:
Gast #3660246
Lesenswert?

oszi40 schrieb:
> http://de.selfhtml.org/

Danke, aber das kenne ich schon.

Lade dir einmal die Datein runter die ich hochgeladen habe. Ach ja das 
style sheet muss in einen extra Ordner style hinein, sonst gehts nicht.
Falls du es nicht runterladen möchtest, werde ich versuchen das Problem 
hier darzustellen. Ich habe 2 Objekte (DIVs). Eines ganz links und das 
andere ganz rechts, in etwa so:
                                                               Seitenende|
-------------                                       -------------     |
|   div1    |                                       |  div2     |     |
|           |                                       |           |     |
-------------                                       -------------     |

das div2 ist nahe am Seitenende. Mache ich jetzt die Seite kleiner 
(sprich width wird kleiner), so wandert das div 2 mit weil es absolut 
von rechts eine bestimmte weite hat. Jedoch geht das so weit dass es 
möglich ist dass sich div2 mit div1 überlagert. Sprich so:

                      Seitenende|
------------- -------------     |
|   div1    | |  div2     |     |
|           | |           |     |
------------- -------------     |

Die zweite Zeichnung stellt den Grenzwert dar.

Was passiert nun bei mir?
Bei mir überlappen die sich wenn ich die seite noch weiter verkleinere. 
Bei anderen Webseiten bleiben sie stehen und es entsteht eine scrollbar 
unten. Und ich will dass sie auch ab einer bestimmtesn Größe stehen 
bleiben wie bei gmx damit sich nichts mehr überlappt.

Die Frage ist wie mache ich das am besten?
#3660255
Lesenswert?

wenn ich den letzten beitrag richtig verstanden habe, dann kannst du 
dein problem mit einer einfachen mediaquery lösen.

unterhalb einer von dir festgesetzten grenze bekommt div2 kein float: 
right (?, ist i.a. besser als position: absolute) mehr sondern wird 
links ausgerichtet, evtl. wird auch das scrollverhalten des body-tags 
angepasst.
Gast #3660268
Lesenswert?

Daniel F. schrieb:
> wenn ich den letzten beitrag richtig verstanden habe, dann kannst du
> dein problem mit einer einfachen mediaquery lösen.
>
> unterhalb einer von dir festgesetzten grenze bekommt div2 kein float:
> right (?, ist i.a. besser als position: absolute) mehr sondern wird
> links ausgerichtet, evtl. wird auch das scrollverhalten des body-tags
> angepasst.

ehrlich gesagt halte ich nichts von jqerry. Ich würde gerne wissen wie 
ich es in reinem javascript angehen würde. Am besten ein Tutorial oder 
so.

Danke!
#3660401
Lesenswert?

emi schrieb:
> Daniel F. schrieb:
>> dein problem mit einer einfachen mediaquery lösen.
> ehrlich gesagt halte ich nichts von jqerry. Ich würde gerne wissen wie
> ich es in reinem javascript angehen würde. Am besten ein Tutorial oder
> so.
>
> Danke!

1. Mediaquery sind ein teil von css3 und haben mit jquery nichts zu tun.
2. Wenn du float stat position:absolute für die positionierung 
verwendest kann das Problem nichtmehr auftreten,  aber die elemente mit 
float müssen dann aber in einem div mit display:inline-block liegen.
3. Wenn es nur um eine scrollbar ab einer bestimmten minimalbreite geht, 
sollte ein
1
body {
2
  min-width: 800px;
3
}
genügen.
Falls das alles komplizierter sein sollte als es scheint und js nötig 
wird, google nach addEventListener, onload, onresize, offsetWidth und 
element.style. Die MDN ist immer gut. Aber bedenke: css ist einfacher 
als alles in js berechnen und manuell anpassen.

Bezüglich jquery stimme ich dir zu.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren