Dlaczego nie mogę jednocześnie używać obrazu tła i koloru?
179
To, co próbuję zrobić, to pokazać jedno background-colori drugie background-image, tak aby połowa mojego divobrazu zakryła prawy cień tła, a druga lewa część zakryła kolor tła.
Jest całkowicie możliwe użycie zarówno koloru, jak i obrazu jako tła dla elementu.
Ty ustawiasz background-colori background-imagestyle. Jeśli obraz jest mniejszy niż element, musisz użyć background-positionstylu, aby umieścić go po prawej stronie, i aby nie powtarzał się i nie obejmował całego tła, którego używasz background-repeat:
background: green url(images/shadow.gif) right no-repeat;
Jeśli użyjesz stylu złożonego, backgroundaby ustawić oba oddzielnie, zostanie użyty tylko ostatni, to jeden z możliwych powodów, dla których twój kolor nie jest widoczny:
background: green;/* will be ignored */
background: url(images/shadow.gif) right no-repeat;
Nie ma sposobu, aby wyraźnie ograniczyć obraz tła tak, aby obejmował tylko część elementu, więc musisz upewnić się, że obraz jest mniejszy niż element lub że ma on przezroczyste obszary, aby kolor tła był widoczny.
Jak mogę to uruchomić. Chcę użyć background: -webkit-linear-gradient(bottom, rgb(222,222,222) 19%, rgb(201,201,201) 50%, rgb(219,219,219) 80%); AND background-image: url(icon.png) no-repeat right;Jak zastosować zarówno gradient, jak i ikonę obrazu. Proszę pomóż.
RE: @AnishNair - background:jest krótszy, a następnie zakłada, że nie ma określonego obrazu i idzie pobackground-image
szeryfie
1
To właśnie powodowało problemy - dzięki! Jeśli użyjesz tła w stylu kompozytowym, aby ustawić oba osobno, zostanie użyta tylko ostatnia, to jeden z możliwych powodów, dla których twój kolor nie jest widoczny:
GeminiDakota,
30
Aby przyciemnić obraz, możesz użyć CSS3 backgrounddo układania obrazów i linear-gradient. W poniższym przykładzie używam linear-gradientbez rzeczywistego gradientu. Przeglądarka traktuje gradienty jako obrazy (myślę, że faktycznie generuje mapę bitową i nakłada ją), a zatem układa wiele obrazów w stos.
Otrzymasz papier milimetrowy z jasnoniebieskim odcieniem, jeśli miałeś png. Zauważ, że kolejność układania może działać odwrotnie do modelu mentalnego, przy czym pierwszy przedmiot będzie na wierzchu.
Dobry dodatek Zdarzyło mi się to, gdy użyłem .jpg zamiast .png
corbin 24.04.13
1
Nie publikuj tego jako odpowiedź lepiej jako komentarz.
Iharob Al Asimi,
2
Widziałeś od kiedy to jest ?! Praktycznie pokolenia założycieli. To był dziki zachód, żadnych zasad. Wy, nowicjusze, dostaliście to wszystko na złotym talerzu ;-)
Itay Moav -Malimovka
2
Oto przykład użycia background-imagei background-colorrazem:
W rzeczywistości istnieje sposób na użycie koloru tła z obrazem tła. W takim przypadku część tła zostanie wypełniona określonym kolorem zamiast białego / przezroczystego.
Aby to osiągnąć, musisz ustawić backgroundwłaściwość w następujący sposób:
Wątpiłem w to, byłem zaskoczony, że działa całkiem dobrze. Trzeba będzie jednak sprawdzić kompatybilność.! +1
Nicky Thomas
0
Ustaw przezroczystość połowy obrazu, aby widoczny był przez niego kolor tła.
W przeciwnym razie po prostu dodaj kolejny div, pobierając o 50% więcej div div i unoś go w lewo lub w prawo. Następnie zastosuj do niego obraz lub kolor.
Zakłada się, że obraz tła był tak duży, jak zawierający div.
mr-euro
0
Gecko ma dziwny błąd, ustawienie background-colordla htmlselektora będzie zatuszować background-imageelementu ciała, mimo że bodyelementem w efekcie ma większą z-index i powinny móc zobaczyć ciało jest background-imagewraz z htmlbackground-colorwyłącznie w oparciu o prostą logiką.
Bug Gecko
Unikaj następujących ...
html {background-color:#fff;}
body {background-image: url(example.png);}
Obejść
body {background-color:#fff; background-image: url(example.png);}
Jak / dlaczego to odpowiada na pytanie? Opracuj, edytując swoją odpowiedź.
Artjom B.,
Dwie takie linie są niepotrzebne. Można go umieścić w jednej deklaracji. Zobacz inne przykłady tutaj na stronie. background: red url(directoryName/imageName.extention) bottom left no-repeat;
Odpowiedzi:
Jest całkowicie możliwe użycie zarówno koloru, jak i obrazu jako tła dla elementu.
Ty ustawiasz
background-color
ibackground-image
style. Jeśli obraz jest mniejszy niż element, musisz użyćbackground-position
stylu, aby umieścić go po prawej stronie, i aby nie powtarzał się i nie obejmował całego tła, którego używaszbackground-repeat
:Lub używając stylu złożonego
background
:Jeśli użyjesz stylu złożonego,
background
aby ustawić oba oddzielnie, zostanie użyty tylko ostatni, to jeden z możliwych powodów, dla których twój kolor nie jest widoczny:Nie ma sposobu, aby wyraźnie ograniczyć obraz tła tak, aby obejmował tylko część elementu, więc musisz upewnić się, że obraz jest mniejszy niż element lub że ma on przezroczyste obszary, aby kolor tła był widoczny.
źródło
background: -webkit-linear-gradient(bottom, rgb(222,222,222) 19%, rgb(201,201,201) 50%, rgb(219,219,219) 80%); AND background-image: url(icon.png) no-repeat right;
Jak zastosować zarówno gradient, jak i ikonę obrazu. Proszę pomóż.background:
jest krótszy, a następnie zakłada, że nie ma określonego obrazu i idzie pobackground-image
Aby przyciemnić obraz, możesz użyć CSS3
background
do układania obrazów ilinear-gradient
. W poniższym przykładzie używamlinear-gradient
bez rzeczywistego gradientu. Przeglądarka traktuje gradienty jako obrazy (myślę, że faktycznie generuje mapę bitową i nakłada ją), a zatem układa wiele obrazów w stos.Otrzymasz papier milimetrowy z jasnoniebieskim odcieniem, jeśli miałeś png. Zauważ, że kolejność układania może działać odwrotnie do modelu mentalnego, przy czym pierwszy przedmiot będzie na wierzchu.
Doskonała dokumentacja Mozilli, tutaj:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_multiple_backgrounds
Narzędzie do budowania gradientów:
http://www.colorzilla.com/gradient-editor/
Uwaga - nie działa w IE11! Opublikuję aktualizację, gdy dowiem się, dlaczego, skoro ma to zrobić.
źródło
posługiwać się
źródło
Aby dodać do tej odpowiedzi, upewnij się, że sam obraz ma przezroczyste tło.
źródło
Oto przykład użycia
background-image
ibackground-color
razem:źródło
W rzeczywistości istnieje sposób na użycie koloru tła z obrazem tła. W takim przypadku część tła zostanie wypełniona określonym kolorem zamiast białego / przezroczystego.
Aby to osiągnąć, musisz ustawić
background
właściwość w następujący sposób:Zanotuj przecinek i kod koloru po
no-repeat
; to ustawia żądany kolor tła.Odkryłem to w tym filmie na YouTube , jednak nie jestem w żaden sposób powiązany z tym kanałem lub filmem.
źródło
Ustaw przezroczystość połowy obrazu, aby widoczny był przez niego kolor tła.
W przeciwnym razie po prostu dodaj kolejny div, pobierając o 50% więcej div div i unoś go w lewo lub w prawo. Następnie zastosuj do niego obraz lub kolor.
źródło
Gecko ma dziwny błąd, ustawienie
background-color
dlahtml
selektora będzie zatuszowaćbackground-image
elementu ciała, mimo żebody
elementem w efekcie ma większą z-index i powinny móc zobaczyć ciało jestbackground-image
wraz zhtml
background-color
wyłącznie w oparciu o prostą logiką.Bug Gecko
Unikaj następujących ...
Obejść
źródło
Witam wszystkich Próbowałem innego sposobu na połączenie obrazu tła i koloru tła:
HTML
CSS
JAVASCRIPT
Daj mi znać, czy to zadziałało. Dzięki
źródło
źródło
background: red url(directoryName/imageName.extention) bottom left no-repeat;