Angenommen, ich möchte eine Möglichkeit, nur die Mitte 50x50px eines Bildes anzuzeigen, das 250x250px in HTML ist. Wie kann ich das machen. Gibt es auch eine Möglichkeit, dies für css: url () - Referenzen zu tun?
Mir ist der Clip in CSS bekannt, aber das scheint nur zu funktionieren, wenn er mit absoluter Positionierung verwendet wird.
Antworten:
Eine Möglichkeit besteht darin, das Bild, das Sie als Hintergrund anzeigen möchten, in einem Container (td, div, span usw.) festzulegen und dann die Hintergrundposition anzupassen, um das gewünschte Sprite zu erhalten.
quelle
background-size
Wie in der Frage erwähnt, gibt es die
clip
CSS - Eigenschaft, obwohl es nicht ist , wird erfordern , dass das Element abgeschnittenposition: absolute;
(was schade ist):JS Fiddle Demo zum Experimentieren.
Um die ursprüngliche Antwort - etwas verspätet - zu ergänzen, bearbeite ich sie, um die Verwendung von zu zeigen
clip-path
, die die jetzt veralteteclip
Eigenschaft ersetzt hat.Die
clip-path
Eigenschaft ermöglicht eine Reihe von Optionen (mehr als das Originalclip
), von:inset
- rechteckige / quaderförmige Formen, definiert mit vier Werten als "Abstand von"(top right bottom left)
.circle
-circle(diameter at x-coordinate y-coordinate)
.ellipse
-ellipse(x-axis-length y-axis-length at x-coordinate y-coordinate)
.polygon
- definiert durch eine Reihe vonx
/y
Koordinaten in Bezug auf den Ursprung des Elements in der oberen linken Ecke. Da der Pfad automatisch geschlossen wird, sollte die realistische Mindestanzahl von Punkten für ein Polygon drei betragen. Weniger (zwei) ist eine Linie oder (eins) ist ein Punkt :polygon(x-coordinate1 y-coordinate1, x-coordinate2 y-coordinate2, x-coordinate3 y-coordinate3, [etc...])
.url
- Dies kann entweder eine lokale URL (unter Verwendung eines CSS-ID-Selektors) oder die URL einer externen Datei (unter Verwendung eines Dateipfads) sein, um eine SVG zu identifizieren, obwohl ich (noch) nicht damit experimentiert habe kann keinen Einblick in ihren Nutzen oder Vorbehalt geben.JS Fiddle Demo zum Experimentieren.
Verweise:
- Hinweis: veraltet .clip
clip-path
(MDN) .clip-path
(W3C) .quelle
clip
ist veraltet . Neuereclip-path
erfordert keine PositionierungEine andere Alternative ist die folgende, wenn auch nicht die sauberste, da davon ausgegangen wird, dass das Bild das einzige Element in einem Container ist, wie in diesem Fall:
Sie können den Container dann als Maske mit der gewünschten Größe verwenden und das Bild mit einem negativen Rand umgeben, um es an die richtige Position zu verschieben:
Demo kann in dieser JSFiddle gesehen werden .
Scheint nur in IE> 9 zu funktionieren und wahrscheinlich in allen wichtigen Versionen aller anderen Browser.
quelle