Bez znajomości pełnego przypadku użycia tego pytania, odpowiedziałbym: "Tak, ale kompatybilność z przeglądarką będzie uciążliwa".
Dwie pozostałe tutaj zamieszczone odpowiedzi pokazują sposoby, w jakie można to osiągnąć, jeśli kompatybilność nie jest problemem, ale uważam, że jest to coś, co można zrobić o wiele prościej za pomocą kreatywnego Photoshopa, a następnie warstwowych elementów.
Co bym zrobił:
Photoshop: Weź obraz podstawowy (co zakładam jest PNG, ponieważ ma kanał alfa) i wczytać go do programu Photoshop. Wybierz obszar, który chcesz zamaskować. edytuj> kopia scalona. Utwórz nową warstwę i edytuj> wklej. Zmień kolor tej nowej warstwy na kolor, który ma być maskowaną nakładką i dodaj efekt kanału alfa. Upewnij się, że domyślne tło jest wyłączone, a następnie zapisz nową warstwę jako plik PNG.
HTML:
<div class="container">
<div class="original-image"></div>
<div class="mask"></div>
</div>
CSS:
.container {
height: 300px;
width: 300px;
position: relative;
}
.original-image {
height: 300px;
width: 300px;
background : url(../images/myimage.png) no-repeat top center;
}
.mask {
height: 300px;
width: 300px;
position: absolute;
left: 0;
top: 0;
z-index: 1; //or more depending on what else is going on in the layout
background : url(../images/mask.png) no-repeat top center;
}
Ważne jest w tym przykładzie na pojemnik mieć takie same wymiary jak na obraz i maskę tak, że pozycjonowanie bezwzględne ustawia maskę na obraz poprawnie. Tworzenie obrazów w tła pozwala wypełnić elementy div takimi treściami, jak typ. Główną zaletą robienia tego w ten sposób, a nie z CSS sugerowanego gdzie indziej tutaj, jest to, że powinno to działać na prawie każdej przeglądarce.
Możesz to zrobić, używając svg – Akshay
Zasadniczo [Czy możliwe jest zastosowanie CSS na połowie postaci?] (Http://stackoverflow.com/questions/23569441/is-it-possible-to-apply- css-to-half-of-a-character), ale z obrazem. – BoltClock