position: fixed und width: erben mit prozentualen Eltern

8

Ich versuche, einem festen -Element eine width eines übergeordneten Prozentsatzes (hier #container ) zu geben. Wenn ich Pixel anstelle des Prozentsatzes verwende, funktioniert es. Wie kann ich es tun? Ist dies mit CSS möglich?

HTML

%Vor%

CSS

%Vor%

JSFiddle

Hinzufügen:

Ich brauche position:fixed . Weil ich es am Ende der Seite so platzieren möchte:

JSFiddle

Lösung mit position:relativ funktioniert nicht für mich.

    
red_baron 09.06.2013, 15:33
quelle

4 Antworten

4

Es scheint so, als ob der statische Wert (250px) durch normale Vererbung weitergegeben werden kann. Wohingegen, wenn der relative Wert (90%) verwendet wird, das feste div bereits aus dem Fluss genommen wurde, und jetzt vererbungstechnisch ist es das Darstellungsfenster. Es scheint mir, dass Sie gute alte js verwenden müssen.

Aber diese Frage ist jetzt schon Monate alt, also ist es wahrscheinlich auch egal.

    
SuperJumbo 10.02.2014 05:08
quelle
2

Es besteht die Überzeugung, dass vererbte Werte von relativen Werten (wie Prozentsätzen) in absolute Werte "übersetzt" werden. Erraten Sie, was? Es ist falsch. Hier ist, was MDN dazu sagt:

  

Der inherit CSS-Wert verursacht das Element, für das er angegeben wurde   nimm den berechneten Wert der Eigenschaft von seinem Elternelement.

     

[...]

     

Die erforderliche Berechnung, um den berechneten Wert für die Eigenschaft zu erreichen   umfasst in der Regel die Konvertierung von relativen Werten (z. B. in em units oder percentages ) in absolute Werte . Wenn ein Element beispielsweise die Werte font-size: 16px und padding-top: 2em angegeben hat, lautet der berechnete Wert von padding-top 32px (doppelte Schriftgröße).

     

Jedoch für einige Eigenschaften (diejenigen, in denen Prozentsätze relativ sind   etwas, das Layout erfordern kann, um festzustellen, wie width ,    margin-right , text-indent und top ), prozentuale angegebene Werte werden gedreht   in Prozent berechnete Werte. [...] Diese relativen Werte, die im berechneten Wert verbleiben, werden absolut, wenn der verwendete Wert bestimmt wird.

Jetzt ein Beispiel. Nehmen wir an, wir haben folgende Struktur:

%Vor%

... und das folgende CSS:

%Vor%

... Sie werden dieses Bild sehen:

... was bedeutet, dass, während #charlie element die gleiche Höhe hat wie sein #bravo parent, seine Breite 50% seines Elternteils ist. Vererbt wurde ein berechneter Wert: 100px für die Höhe, 50% für die Breite.

Obwohl diese Funktion je nach Situation für nicht fixierte Elemente gut oder schlecht sein kann, scheint sie definitiv die fixen zu verletzen. Da der 50% -Wert für width -Eigenschaft unverändert übernommen wird, basiert der used value -Wert für diese Dimension auf dem Ansichtsfenster. Dasselbe gilt für percentage-using -Werte, z. B. calc(50%) .

    
raina77ow 25.02.2016 18:11
quelle
0

Sie haben #outer als width: 300px, #container als 90% bedeutet 270px, jetzt haben Sie width angegeben: inherit und position: fixed das ist mehrdeutig im Browser, verwenden Sie also position: fixed mit width: x% für #fixed

    
quelle
-1

setze die Breite von "fixed" auf 100% und gib ihm (sagen wir mal) eine Position: relative statt fixed. Ссылка

%Vor%     
dmestrovic 09.06.2013 15:47
quelle

Tags und Links