Ist es möglich um einen negativen Wert mit CSS calc()?
Sagen wir, wir haben einen container, der zentriert im viewport ...
.centered{margin: 0 auto; width:960px;}
... und in dem container habe ich ein anderes, dass muss eine Breite von 100% der viewport-Breite. Ich könnte die Marge ...
.widest{margin: 0 -480px}
... zum Beispiel. Die Sache ist die, dass der Wert nicht -480px, aber eigentlich ist die viewport-Breite (960px) - die .zentriert width /2 ... alles gut und einfach mit calc(), nur ich brauche ein Ergebnis, dass ein negativer Wert.
.widest{
margin: 0 calc( (100vw - 960px) / 2 );
}
Habe ich versucht, die Subtraktion der Menge von 0 zu bekommen, ein negativer Wert, wird aber nicht gehen.
Möchte ich nicht verwenden, JS und ich habe nur Probleme in Webkit - nicht mit der calc() aber mein problem ist, dass wenn ich Hacke es in die Unterwerfung durch macht ...
.widest{
margin: 0 -100%;
}
... meine Seite scrollt horisontally in Chrome/Safari.
Ihre Gedanken?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, das ist möglich, bis zu einem Punkt. Der entscheidende Teil ist, um die Breite des Elements zu
100vw
dann wird es ausgeglichen durch die negative Hälfte der viewport-Breite plus die Hälfte der Breite des zentrierten element verwenden, z.B.calc(-50vw + 200px)
:Demo-Fiddle
Angesichts der HTML -
CSS
fluid
-ish-layout, wo die#center
keine Feste Breite, sondern einemax-width
wie hier.full-width { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; }
css-tricks.com/full-width-containers-limited-width-parentsEDIT: EIN einfacher trick als in den Vorjahren:
calc(0px - something)
- mit einem Gerät - arbeitet währendcalc(0 - something)
nicht. Sehen Geige 3Diese "tricks" funktionieren:
wo
0 - something
nicht (zumindest bei deinem Beispiel).Fiddle 1
Fiddle 2
calc(-1 * something)
ist erstaunlich!Ich habe eine weitere mögliche Lösung. Sie kann teilen durch -2, so erhalten Sie ein negatives Ergebnis
Könnten Sie versuchen, nächste Lösung