Załóżmy, że chcę wyświetlić tylko środek 50 x 50 pikseli na środku obrazu o wymiarach 250 x 250 pikseli w formacie HTML. Jak mogę to zrobić. Czy istnieje sposób, aby to zrobić w przypadku odwołań do css: url ()?
Zdaję sobie sprawę z klipu w CSS, ale wydaje się, że działa tylko w przypadku pozycjonowania bezwzględnego.
Odpowiedzi:
Jednym ze sposobów jest ustawienie obrazu, który chcesz wyświetlić jako tło w kontenerze (td, div, span itp.), A następnie dostosowanie pozycji tła, aby uzyskać żądany duszka.
źródło
background-size
Jak wspomniano w pytaniu, jest
clip
własnością CSS, chociaż nie wymaga, że element jest obcięty jestposition: absolute;
(co jest wstyd):Demo JS Fiddle , do eksperymentów.
Aby uzupełnić oryginalną odpowiedź - nieco z opóźnieniem - edytuję, aby pokazać użycie
clip-path
, które zastąpiło obecnie przestarzałąclip
właściwość.clip-path
Właściwość umożliwia szeroki zakres opcji (bardziej, niż w oryginaleclip
), o:inset
- kształty prostokątne / prostopadłościenne, zdefiniowane za pomocą czterech wartości jako „odległość od”(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
- zdefiniowany przez szereg współrzędnychx
/y
w stosunku do początku elementu w lewym górnym rogu. Ścieżka zostanie zamknięte automatycznie realistyczne minimalna liczba punktów dla wielokąta wynosi trzy, każda mniejsza (dwóch) jest linią albo (jedna) jest punktpolygon(x-coordinate1 y-coordinate1, x-coordinate2 y-coordinate2, x-coordinate3 y-coordinate3, [etc...])
.url
- może to być lokalny adres URL (przy użyciu selektora identyfikatora CSS) lub adres URL pliku zewnętrznego (przy użyciu ścieżki do pliku) w celu zidentyfikowania SVG, chociaż nie eksperymentowałem z żadnym (jeszcze), więc nie mogą dać wglądu w ich korzyść lub zastrzeżenie.Demo JS Fiddle , do eksperymentów.
Bibliografia:
- uwaga: przestarzałe .clip
clip-path
(MDN) .clip-path
(W3C) .źródło
clip
jest przestarzały . Nowszeclip-path
nie wymagają pozycjonowaniaInną alternatywą jest następująca, choć nie najczystsza, ponieważ zakłada, że obraz jest jedynym elementem w kontenerze, tak jak w tym przypadku:
Możesz następnie użyć kontenera jako maski o żądanym rozmiarze i otoczyć obraz ujemnym marginesem, aby przesunąć go we właściwe miejsce:
Demo można zobaczyć w tym JSFiddle .
Wydaje się, że działa tylko w IE> 9 i prawdopodobnie we wszystkich ważnych wersjach wszystkich innych przeglądarek.
źródło