Jak użyć gradientów CSS3 do mojego, background-color
a następnie zastosować a, background-image
aby zastosować jakąś lekką przezroczystą teksturę?
css
background-image
gradient
Ronald
źródło
źródło
Odpowiedzi:
Wiele środowisk!
Te 2 wiersze są rezerwowe dla każdej przeglądarki, która nie robi gradientów. Zobacz uwagi dotyczące układania obrazów tylko w IE <9 poniżej.
Ostatnia linia ustawia obraz tła i gradient dla przeglądarek, które mogą je obsłużyć.
Prawie wszystkie obecne przeglądarki obsługują wiele obrazów tła i tła css. Zobacz http://caniuse.com/#feat=css-gradients, aby uzyskać informacje na temat obsługi przeglądarki. Dobry post na temat tego, dlaczego nie potrzebujesz wielu prefiksów przeglądarki, zobacz http://codepen.io/thebabydino/full/pjxVWp/
Stos warstw
Należy zauważyć, że pierwszy zdefiniowany obraz będzie najwyższy na stosie. W takim przypadku obraz znajduje się na GÓRZE gradientu.
Aby uzyskać więcej informacji na temat warstwowania w tle, patrz http://www.w3.org/TR/css3-background/#layering .
TYLKO układanie obrazów (bez gradientów w deklaracji) Dla IE <9
IE9 i nowsze wersje mogą układać obrazy w ten sam sposób. Możesz użyć tego do stworzenia obrazu gradientu dla ie9, chociaż osobiście nie zrobiłbym tego. Należy jednak zauważyć, gdy używane są tylko obrazy, tzn. <9 zignoruje instrukcję zastępczą i nie pokaże żadnego obrazu. Nie dzieje się tak po uwzględnieniu gradientu. Aby w tym przypadku użyć pojedynczego obrazu zastępczego, sugeruję użycie wspaniałego warunkowego elementu HTML Paula Irisha wraz z kodem zastępczym:
Pozycja w tle, zmiana rozmiaru itp.
Inne właściwości, które miałyby zastosowanie do pojedynczego obrazu, mogą być również oddzielone przecinkami. Jeśli podano tylko 1 wartość, zostanie ona zastosowana do wszystkich ułożonych obrazów, w tym gradientu.
background-size: 40px;
ograniczy zarówno obraz, jak i gradient do wysokości i szerokości 40 pikseli. Jednak użyciebackground-size: 40px, cover;
spowoduje, że obraz będzie 40px, a gradient pokryje element. Aby zastosować ustawienie tylko do jednego obrazu, ustaw wartość domyślną dla drugiego:background-position: 50%, 0 0;
lub w przeglądarkach, które go obsługują, użyjinitial
:background-position: 50%, initial;
Możesz także użyć tła stenografii, ale to usuwa kolor zastępczy i obraz.
To samo dotyczy pozycji tła, powtarzania tła itp.
źródło
background-position
tylko obraz, a nie gradient?Jeśli chcesz również ustawić położenie tła dla swojego obrazu, możesz użyć tego:
lub możesz również utworzyć MNIEJSZY mixin (styl bootstrap):
źródło
Należy zdać sobie sprawę, że pierwszy zdefiniowany obraz tła jest najwyższy na stosie. Ostatni zdefiniowany obraz będzie najniższy. Oznacza to, że aby uzyskać gradient tła za obrazem, potrzebujesz:
Możesz także zdefiniować pozycje tła i rozmiar tła dla obrazów. Złożyłem post na blogu o ciekawych rzeczach, które możesz zrobić z gradientami CSS3
źródło
background-image: linear-gradient(rgba(22,22,22,0), rgba(22,22,22,0.6)), url('image.jpg');
możesz po prostu wpisać:
źródło
linear-gradient()
Musiał przyjść przedurl()
i częściową przezroczystość musiały zostać wykorzystane do gradient kolorów, używającrgba()
. Wszystko inne po prostu używało pierwszej definicji na liście (tak jakby druga była rezerwowa, podobnie jakfont-family
działają deklaracje).Zawsze używam następującego kodu, aby działał. Jest kilka notatek:
Ta technika jest taka sama, ponieważ mamy wiele obrazów tła, jak opisano tutaj
źródło
moje rozwiązanie:
źródło
Miałem implementację, w której musiałem pójść o krok dalej i chciałem nakreślić swoją pracę. Poniższy kod robi to samo, ale używa SASS, Bourbon i duszka obrazu.
SASS i Bourbon zajmują się kodem przeglądarki, a teraz wszystko, co muszę zadeklarować, to pozycja duszka na przycisk. Łatwo jest rozszerzyć tę zasadę dla stanów aktywnych i najechania kursorem.
źródło
Jeśli masz dziwne błędy podczas pobierania obrazów tła, skorzystaj z narzędzia do sprawdzania linków W3C: https://validator.w3.org/checklink
Oto nowoczesne miksy, których używam (napisy: PSA: nie używaj generatorów gradientów ):
źródło
Oto MIESZANKA, którą utworzyłem, aby obsłużyć wszystko, czego ludzie mogą chcieć użyć:
Można to wykorzystać w następujący sposób:
Mam nadzieję, że uznasz to za pomocne.
Podziękowania dla @Gidgidonihah za znalezienie wstępnego rozwiązania.
źródło
Próbowałem zrobić to samo. Podczas gdy kolor tła i obraz tła istnieją na osobnych warstwach w obiekcie - co oznacza, że mogą one współistnieć - gradienty CSS wydają się kooptować warstwę obrazu tła.
Z tego, co mogę powiedzieć, obraz obramowania wydaje się mieć szersze wsparcie niż wiele środowisk, więc może to jest alternatywne podejście.
http://articles.sitepoint.com/article/css3-border-images
AKTUALIZACJA: Trochę więcej badań. Wygląda na to, że Petra Gregorova coś tu działa -> http://petragregorova.com/demos/css-gradient-and-bg-image-final.html
źródło
Możesz użyć wielu tła: linear-gradient (); połączeń, ale spróbuj tego:
Jeśli chcesz, aby obrazy były całkowicie połączone ze sobą w miejscu, w którym nie wygląda na to, aby elementy ładowały się osobno z powodu oddzielnych żądań HTTP, skorzystaj z tej techniki. Tutaj ładujemy dwie rzeczy do tego samego elementu, które ładują się jednocześnie ...
Upewnij się tylko, że najpierw przekonwertowałeś wstępnie renderowany 32-bitowy przezroczysty obraz / tekst png na ciąg base64 i użyjesz go w wywołaniu css obrazu-tła (w tym przykładzie zamiast INSERTIMAGEBLOBHERE).
Użyłem tej techniki do stopienia tekstury waflowej i innych danych obrazu, które są serializowane przy użyciu standardowej reguły css przezroczystości rgba / gradientu liniowego. Działa lepiej niż nakładanie warstw wielu grafik i marnowanie żądań HTTP, co jest złe dla urządzeń mobilnych. Wszystko jest ładowane po stronie klienta bez operacji na plikach, ale zwiększa rozmiar bajtu dokumentu.
źródło
Jeśli chcesz, aby gradienty i obrazy tła działały razem w IE 9 (HTML 5 i HTML 4.01 Strict), dodaj następującą deklarację atrybutu do swojej klasy css i powinno to załatwić sprawę:
Zauważ, że używasz
filter
atrybutu i żeprogid:[val]
przed zamknięciem wartości atrybutu średnikiem istnieją dwa wystąpienia oddzielone przecinkiem. Oto skrzypce . Zauważ również, że gdy spojrzysz na skrzypce, gradient wystaje poza zaokrąglone rogi. Nie mam poprawki dla tego, że nie używa zaokrąglonych rogów. Zauważ też, że gdy używasz ścieżki względnej w atrybucie src [IMAGE_URL], ścieżka jest względna do strony dokumentu, a nie do pliku css (Zobacz źródło ).Ten artykuł ( http://coding.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/ ) doprowadził mnie do tego rozwiązania. Jest to dość pomocne w CSS3 specyficznym dla IE.
źródło
Chciałem zrobić przycisk zakresu z obrazem tła, kombinacją gradientu tła.
http://enjoycss.com/ pomógł wykonać moje zadanie. Tylko ja muszę usunąć niektóre automatycznie generowane dodatkowe CSS. Ale to naprawdę fajna strona, z której możesz zbudować swoją pracę.
źródło
W ten sposób rozwiązuję problem. Gradient definiuję w HTML i obrazie tła w treści
źródło
Dla mojego responsywnego projektu moja rozwijana strzałka w dół po prawej stronie pudełka (pionowy akordeon) przyjęła procent jako pozycję. Początkowo strzałka w dół brzmiała „pozycja: bezwzględna; prawa: 13px;”. Przy pozycjonowaniu 97% działało to jak urok:
PS Przepraszamy, nie wiem jak obsługiwać filtry.
źródło
Jako pewny sposób metody, możesz po prostu zrobić obraz tła, który na przykład 500 x 5 pikseli
css
:Gdzie
xxxxxx
odpowiada kolorowi, który pasuje do końcowego koloru gradientu.Można to również naprawić na dole ekranu i ustawić tak, aby pasował do początkowego koloru gradientu.
źródło