Ich denke, die Antwort ist nein, aber können Sie ein Hintergrundbild mit CSS so positionieren, dass es eine feste Anzahl von Pixeln von rechts entfernt ist?
Wenn ich background-position
Werte für x und y einstelle , scheinen diese nur feste Pixelanpassungen von links bzw. oben zu ergeben.
Antworten:
Es funktioniert in den meisten Browsern. Eine vollständige Liste finden Sie unter: http://caniuse.com/#feat=css-background-offsets .
Weitere Informationen: http://www.w3.org/TR/css3-background/#the-background-position
quelle
Es ist möglich, das Attribut
border
als Länge von rechts zu verwendenquelle
Es gibt einen Weg, der jedoch nicht in jedem Browser unterstützt wird (siehe Berichterstattung hier ).
Es funktioniert in jedem modernen Browser, aber es ist möglich, dass IE9 abstürzt . Auch keine Abdeckung für = <IE8.
quelle
background-position-x: calc(90%);
- dh es hat nur 10% von 100% abgezogenSoweit ich weiß, enthält die CSS-Spezifikation nicht genau das, was Sie verlangen, natürlich außerhalb von CSS-Ausdrücken. Ausgehend von der Annahme, dass Sie keine Ausdrücke oder Javascript verwenden möchten, sehe ich drei hackige Lösungen:
background-repeat: repeat
oderrepeat-x
wenn nur die Breite ausgeglichen ist. Dannx
ist es so einfach wie , Pixel von rechts Pixel erscheinen zu lassenbackground-position: -5px 0px
.background-position
Exponate zeigt ein besonderes Verhalten, das besser zu sehen ist als hier beschrieben. Versuch es einmal. Im Wesentlichen,background-position: 90% 50%
wird der rechte Rand des Hintergrundbilds 10% vom rechten Rand des Containers entfernt ausgerichtet.position: relative
falls dies nicht bereits festgelegt wurde. Stellen Sie den Bildcontainer auf einposition: absolute; right: 10px; top: 10px;
und passen Sie die letzten beiden nach Belieben an. Platzieren Sie den Bild-Div-Container in dem enthaltenden Element.quelle
Versuche dies:
Beachten Sie jedoch, dass der obige Code das gesamte Element (nicht nur das Hintergrundbild) um 5 Pixel von rechts verschiebt. Dies könnte für Ihren Fall in Ordnung sein.
quelle
Sie können dies in CSS3 tun:
Es funktioniert in Firefox, Chrome, IE9 +
Quelle: MDN
quelle
Bildumgehung mit transparenten Pixeln rechts als rechtem Rand.
Die Problemumgehung für dasselbe besteht darin, ein PNG- oder GIF-Bild (Bilddateiformate, die Transparenz unterstützen) zu erstellen, dessen transparenter Bereich rechts im Bild genau der Anzahl der Pixel entspricht, für die Sie einen rechten Rand angeben möchten ( zB: 5px, 10px usw.)
Dies funktioniert konsistent über feste Breiten sowie Breiten in Prozent. Praktisch eine gute Lösung für Akkordeon-Header mit einem Plus- / Minus- oder Aufwärts- / Abwärtspfeilbild rechts im Header!
Nachteil: Leider können Sie JPG nur verwenden, wenn der Hintergrundbereich des Containers und die Hintergrundfarbe des CSS-Hintergrundbilds dieselbe flache Farbe haben (ohne Farbverlauf / Vignette), meistens weiß / schwarz usw.
quelle
Wenn Sie in diesen Tagen moderner Browser zufällig über dieses Thema stolpern, können Sie Pseudo-Class verwenden: danach, um praktisch alles mit dem Hintergrund zu tun.
Dieses CSS fügt den Hintergrund in die untere rechte Ecke des Elements ".container" mit 20px Abstand auf der rechten Seite ein.
Siehe diese Geige zum Beispiel http://jsfiddle.net/h6K9z/226/
quelle
Die am besten geeignete Antwort ist die neue vierwertige Syntax für die Hintergrundposition. Bis alle Browser dies unterstützen, ist Ihr bester Ansatz eine Kombination früherer Antworten in der folgenden Reihenfolge:
quelle
Fügen Sie einfach die Pixelauffüllung in das Bild ein - fügen Sie 10px oder was auch immer zur Leinwandgröße des Bildes in Photohop hinzu und richten Sie es in CSS richtig aus.
quelle
Ich habe versucht, eine ähnliche Aufgabe auszuführen, um einen Dropdown-Pfeil immer auf der rechten Seite der Tabellenüberschrift zu erhalten, und habe diesen gefunden, der in Chrome und Firefox zu funktionieren schien, aber Safari hat mir mitgeteilt, dass es sich um eine ungültige Eigenschaft handelt.
Nachdem ich ein bisschen im Inspektor herumgespielt hatte, kam ich auf diese browserübergreifende Lösung, die in IE8 +, Chrome, Firefox und Safari sowie in reaktionsschnellen Designs funktioniert.
Hier ist ein Codepen, wie es aussieht und funktioniert. Codepen wurde mit SCSS geschrieben - http://cdpn.io/xqGbk
quelle
Wenn Sie nur die x-Achse angeben möchten, können Sie Folgendes tun:
quelle
background-position: right -100px center;
Beachten Sie, dassy-position
es nicht richtig funktioniert , wenn Sie das weglassen, weil es denkt, wofür die Pixel sind.Eine andere Lösung, die ich nicht erwähnt habe, ist die Verwendung von Pseudoelementen. Ich glaube, diese Lösung funktioniert mit jedem CSS 2.1-kompatiblen Browser (≥ IE8, ≥ Safari 2, ...) und sollte auch reagieren:
Beispiel : Das Element zB. Ein quadratisches 100px (ohne Berücksichtigung von Rändern) hat ein 10px-Polster und ein Hintergrundbild sollte innerhalb des rechten Polsters angezeigt werden. Dies bedeutet, dass das Pseudoelement ein Quadrat mit einer Größe von 80 Pixel ist. Wir wollen es mit rechts an den rechten Rand des Elements kleben: -10px; . Wenn wir das Hintergrundbild 5px vom rechten Rand entfernt haben möchten, müssen wir das Pseudoelement 5px vom rechten Rand des Elements mit rechts entfernen: -5px; ... Testen Sie es selbst hier: http://jsfiddle.net/yHucT/
quelle
Wenn der Behälter eine feste Höhe hat: Tweek die Prozentsätze (Hintergrundposition), bis sie richtig passen.
Wenn der Container eine dynamische Höhe hat: Wenn Sie eine Auffüllung zwischen Ihrem Hintergrund und Ihrem Container wünschen (z. B. wenn benutzerdefinierte Stileingaben ausgewählt werden), fügen Sie Ihre Auffüllung zu Ihrem Bild hinzu und stellen Sie die Hintergrundposition auf rechts oder unten ein.
Ich bin über diese Frage gestolpert, als ich versucht habe, den Hintergrund für ein Auswahlfeld zu ermitteln, das beispielsweise 5 Pixel rechts von meiner Auswahl passt. In meinem Fall ist mein Hintergrund ein Pfeil nach unten, der das grundlegende Dropdown-Symbol ersetzen würde. In meinem Fall bleibt die Auffüllung für den Hintergrund immer gleich (5-10 Pixel von rechts), sodass das tatsächliche Hintergrundbild leicht geändert werden kann (wobei die Abmessungen auf der rechten Seite um 5-10 Pixel breiter werden).
Hoffe das hilft!
quelle
Sie können Ihr Hintergrundbild in einem Editor so positionieren, dass es x Pixel von der rechten Seite entfernt ist.
Das Hintergrundbild wird oben rechts positioniert, scheint jedoch x Pixel von rechts zu sein.
quelle
Das Ändern der Prozentsätze von links ist für meinen Geschmack etwas spröde. Wenn ich so etwas brauche, neige ich dazu, mein Container-Styling einem Wrapper-Element hinzuzufügen und dann den Hintergrund auf das innere Element mit anzuwenden
background-position: right bottom
Die
.content-breakout
Klasse ist optional und ermöglicht es Ihrem Inhalt, bei Bedarf in das Padding einzusteigen (negative Randwerte sollten mit den entsprechenden Werten im Wrapper-Padding übereinstimmen). Es ist ein wenig ausführlich, funktioniert aber zuverlässig, ohne sich um die relative Positionierung des Bildes im Vergleich zu seiner Breite und Höhe kümmern zu müssen.quelle
Es ist schon lange her, seit diese Frage gestellt wurde, aber ich bin gerade auf dieses Problem gestoßen und habe es bekommen, indem ich Folgendes getan habe:
quelle
Lösung für negative Werte. Passen Sie den Abstand nach rechts an, um das Bild zu verschieben.
quelle
Dies funktioniert in Chrome 27, ich weiß nicht, ob es gültig ist oder nicht oder was andere Browser damit machen. Das hat mich überrascht.
quelle
Funktioniert für alle echten Browser (und für IE9 +):
Ich benutze es, um WordPress-Themes zu RTL. Siehe Beispiel: Temporäre Website oder die echte Website wird bald verfügbar sein. Schauen Sie sich die Symbole an den rechten Ecken der großen DIVs an.
quelle
Besser für alle Hintergründe: URL ('../ images / bg-menu-dropdown-top.png') links 20px oben no-repeat! Wichtig;
quelle