Czy istnieje sposób, aby zrzucić cień tylko na spód ?. Mam menu z 2 obrazkami obok siebie. Nie chcę odpowiedniego cienia, ponieważ nakłada się on na właściwy obraz. Nie lubię do tego używać obrazów, więc istnieje sposób, aby upuścić go tylko na dole, na przykład:
box-shadow-bottom: 10px #FFF;
lub podobne?
-moz-box-shadow: 0px 3px 3px #000;
-webkit-box-shadow: 0px 3px 3px #000;
box-shadow-bottom: 5px #000;
/* For IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000')";
/* For IE 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000');
box-shadow-bottom
które nie istnieją i nie są przez nikogo obsługiwane. Zobacz nicolasgallagher.com/css-drop-shadows-without-images/demo, aby uzyskać informacje na temat legalnych technik tworzenia cieni.filter
będą działać również w IE8 i IE9.-ms-filter
W tym przypadku nie ma takiej potrzeby .Odpowiedzi:
AKTUALIZACJA 4
To samo co aktualizacja 3, ale z nowoczesnym css (= mniej reguł), dzięki czemu nie jest wymagane specjalne pozycjonowanie na pseudoelemencie.
AKTUALIZACJA 3
Wszystkie moje poprzednie odpowiedzi wykorzystywały dodatkowe znaczniki, aby uzyskać ten efekt, który niekoniecznie jest potrzebny. Myślę, że to znacznie czystsze rozwiązanie ... jedyną sztuczką jest zabawa z wartościami, aby uzyskać właściwe ustawienie cienia, a także odpowiednią siłę / krycie cienia. Oto nowe skrzypce, wykorzystujące pseudoelementy :
http://jsfiddle.net/UnsungHero97/ARRRZ/2/
HTML
CSS
AKTUALIZACJA 2
Najwyraźniej możesz to zrobić za pomocą dodatkowego parametru w CSS-cieniu, jak wszyscy inni właśnie zauważyli. Oto demo:
http://jsfiddle.net/K88H9/821/
CSS
To byłoby lepsze rozwiązanie. Dodany dodatkowy parametr jest opisany jako:
AKTUALIZACJA
Sprawdź wersję demo na jsFiddle: http://jsfiddle.net/K88H9/4/
To, co zrobiłem, to stworzenie „elementu cienia”, który ukryłby się za faktycznym elementem, który chciałbyś mieć cień. Sprawiłem, że szerokość „elementu cienia” była dokładnie mniejsza niż rzeczywisty element o 2 razy większy niż określony cień; potem wyrównałem to poprawnie.
HTML
CSS
Oryginalna odpowiedź
Tak, możesz to zrobić przy użyciu tej samej składni, którą podałeś. Pierwsza wartość steruje pozycjonowaniem poziomym, a druga wartość steruje pozycjonowaniem pionowym. Więc po prostu ustaw pierwszą wartość,
0px
a drugą dowolne przesunięcie, jakie chcesz:Aby uzyskać więcej informacji na temat cieni, sprawdź te:
Mam nadzieję, że to pomoże.
źródło
box-shadow: 0 2px 4px #000000
jest wartością rozmycia. Zobacz tutaj http://jsfiddle.net/K88H9/7/ . Ale zauważysz, że jest trochę rozmycia po lewej i prawej stronie elementu, gdzie w rozwiązaniu Hristo nie ma.box-shadow-bottom
, choć twórczy, tak naprawdę nie istnieje.Wystarczy użyć parametru spread, aby zmniejszyć cień:
Demo na żywo: http://dabblet.com/gist/a8f8ba527f5cff607327
Aby nie widzieć cienia po bokach, (wartość bezwzględna) promienia rozproszenia (czwarty parametr) musi być taki sam jak promień rozmycia (trzeci parametr).
źródło
box-shadow:0 8px 4px -6px
a zobaczysz tylko dolny cień!Jeśli masz ustalony kolor tła, możesz ukryć efekt cienia bocznego za pomocą dwóch cieni maskujących o tym samym kolorze tła i rozmycia = 0, przykład:
Zwróć uwagę, że czarny cień musi być ostatni i ma ujemną rozpiętość (-3px), aby zapobiec jego wysunięciu poza rogi.
Oto skrzypce (zmień kolor cieni maskujących, aby zobaczyć, jak to naprawdę działa).
źródło
transparent
koloru do maskowania cieni, prawda?Myślę, że o to ci chodzi?
źródło
Zawsze lepiej jest przeczytać specyfikację . Nie ma żadnej
box-shadow-bottom
własności, a jak zauważa Lea, zawsze należy umieszczać nieprefiksowaną właściwość na dole, za prefiksami.Więc jest to:
źródło
Co powiesz na użycie zawierającego div, który ma ustawioną opcję przepełnienia ukrytą i wypełnienie u dołu? To wydaje się być najprostszym rozwiązaniem.
Przykro mi to mówić, że sam o tym nie myślałem, ale widziałem to gdzie indziej .
Jak powiedział Jorgen Evens .
źródło
padding-bottom
(powiedzmy 5px) możesz również ustawić wartość ujemnąmargin-bottom
(-5px), aby zrekompensować dodatkowe miejsce.Możesz także użyć
clip-path
do przycinania (ukrywania) wszystkich przelewających się krawędzi, ale tej, którą chcesz pokazać:Zobacz clip-path (MDN) . Argumenty do
polygon
to : lewy górny punkt, prawy górny punkt, prawy dolny punkt i lewy dolny punkt. Ustawiając dolną krawędź na200%
(lub dowolną liczbę większą niż100%
), ograniczasz przepełnienie tylko do dolnej krawędzi.źródło
Potrzebowałem też cienia, ale tylko pod obrazem i ustawiłem lekko w lewo i prawo. To działało dla mnie:
Elementem, do którego się to stosuje, jest obraz na całej stronie (980px x 300px).
Jeśli pomaga to w majstrowaniu przy ustawieniach, działają one w następujący sposób:
cień poziomy, cień pionowy, odległość rozmycia, rozkład (tj. rozmiar cienia) i kolor.
źródło
Lepiej sprawdzić cień:
ten kod jest obecnie używany w sieci Stackoverflow.
źródło
To pióro kodowe (nie przeze mnie) pokazuje bardzo prosty sposób na zrobienie tego i innych stron samemu całkiem nieźle:
https://codepen.io/zeckdude/pen/oxywmm
źródło
Jeśli tło jest solidne (lub możesz je odtworzyć za pomocą CSS), możesz użyć gradientu liniowego w ten sposób:
To wygeneruje gradient 5px na dole elementu, od czarnego przy 30% kryciu do całkowicie przezroczystego. Reszta elementu ma białe tło. Oczywiście, zmieniając ostatnie 2 punkty przejścia koloru gradientu liniowego, można uczynić tło całkowicie przezroczystym.
źródło
Możesz także zrobić gradient na dole - było to dla mnie pomocne, ponieważ cień, którego chciałem, znajdował się na elemencie, który był już półprzezroczysty, więc nie musiałem się martwić o przycięcie:
Po prostu dopasuj właściwości „bottom” i „height” i ustaw wartości rgba na dowolne, aby były na górze / na dole cienia
źródło
Możesz to zrobić w następujący sposób:
Ogólna składnia:
Przykład: chcemy zrobić cień w dolnym polu z kolorem czerwonym,
więc aby to zrobić, musimy ustawić wszystkie opcje boków, w których musimy ustawić opcje cienia dolnego pola i ustawić wszystkie pozostałe tak puste, jak poniżej:
źródło
zaktualizuj swoją odpowiedź dla kogoś innego, zamiast przezroczystych stron, zamiast białego, aby działał również na innych kolorach tła.
źródło
Wewnętrzny cień
źródło