Position fixed element mit prozentualer Breite relativ zum container

Ich weiß, dass position: fixed macht ein element relativ zum viewport, anstatt es offsetParent jedoch habe ich ein Problem wo ich einer Seite ein element, das dauert x Menge von Raum, und dann einige Feste position überschrift-Elemente, die ich aufnehmen will ein Prozentsatz der verbleibenden viewport-Breite.

Sehen fiddle: http://jsfiddle.net/U5DSZ/

Nun konnte ich alle h1 element in einen eigenen container, aber dann verlieren Sie Ihren semantischen Bedeutung, da Sie nicht mehr im Zusammenhang mit Ihrem Inhalt.

Verstehe ich JavaScript könnte dies tun, aber ich bin gegen die Verwendung von JavaScript für die Seite-Struktur.

Gibt es eine Möglichkeit, dies zu tun in einer rein HTML oder CSS Weg? Ich kümmere mich nicht bewegen der h1 element ist, solange Sie halten Ihre Beziehung mit dem Inhalt und der Inhalt bleibt statisch positioniert.

  • Ist es das, was Sie sind versuchen zu tun? jsfiddle.net/audetwebdesign/U5DSZ/1
  • Sehr nah, aber ich brauche den Header zu nehmen, den restlichen Platz nach sidebar.
  • sind Sie wollen nur die Header, um die Verbleibende Breite des Bildschirms, oder Sie brauchen Sie, um nach oben und unten auf der Seite auch? Wenn es nur die Breite, was dann: jsfiddle.net/peteng/U5DSZ/2 (nicht sicher, welchen Wert es geht oben und unten auf der Seite ist)
  • Ok, genau darauf achten, an ihm zu arbeiten... danke für die schnelle Rückmeldung.
  • beide Feste Positionierung und nehmen den übrigen Raum. Es macht mehr Sinn, in seiner realen Kontext ist das nur eine stark vereinfachte demo konnte ich problemlos reproduzieren.
  • Ich glaube nicht, dass was Sie wollen ist möglich mit reinem css. Wenn Sie die Breite, die Sie benötigen, js, um es zu verschieben nach oben und unten. Ansonsten, wenn Sie es festgelegt haben, müssen Sie js zu berechnen, die richtige Breite (bis zu diesem css3 calc Sache kommt)
  • nur so nebenbei, das ist, wie einfach es wäre, es zu tun mit ein wenig js jsfiddle.net/peteng/U5DSZ/4
  • Das ist es, was ich fürchte, aber manchmal, die Sie tun können Magische Dinge mit CSS.
  • In der Tat, aber ich konnte, ohne zu Stottern.
  • Ihr jQuery-gestützte Lösung ist Wert posting. Ich habe eine CSS-option, die ist ziemlich nah, so wäre es gut, haben beide Ansätze.
  • Ich habe am Ende gehen nach unten die JavaScript-route aber berechnet Ihren pixel-Positionierung zur Laufzeit, und legen Sie fest so dass Sie nicht bekommen, neu positioniert zweimal auf jedem scroll-event (wegen jitter), und nur die Größe ändern Sie im Fenster Größe ändern. Vielen Dank für Ihre Hilfe.

InformationsquelleAutor George Reith | 2013-06-03
Schreibe einen Kommentar