2011-01-16 14 views
5

Czy istnieje sposób na utworzenie gradientu z zatrzymaniem pikseli od dolnej krawędzi elementu?CSS 3 Gradient n pikseli od dołu - Webkit/Safari

Na przykład z Moz/Firefox to będzie wyglądać:

-moz-linear-gradient(center bottom , #f00 2%, #d00 31px)

Należy również zauważyć, że nachylenie ma gradient towarzysz zrobić to samo na samej górze okna. Tak naprawdę css wygląda tak dla FF i muszę odtworzyć dla webkita:

background-image: 
     -moz-linear-gradient(center top , rgba(255,0,0,0.75) 2%, rgba(255,0,0,0) 31px), 
     -moz-linear-gradient(center bottom , rgba(255,0,0,0.75) 2%, rgba(255,0,0,0) 31px); 

Odpowiedz

5

Nie można tego zrobić przy użyciu aktualnej składni zestawu stron internetowych. Dobra wiadomość! Pojawi się nowa właściwość -webkit-linear-gradient (właśnie ogłoszona na blogu webkita), która zasadniczo pasuje do składni -moz i pozwoli ci to zrobić. Ta składnia powinna stać się definitywną składnią CSS3, więc będziesz mógł w pewnym momencie upuścić w pełni -webkit i -moz. (Stara nieruchomość -webkit gradientem będzie kontynuować pracę na czas nieokreślony, ale nie jest faworyzowany w przyszłości.)

+0

Właściwie widziałem ten raport o błędzie i sprawdzałem poprawkę z tego miesiąca ... Miałem nadzieję, że jest coś, czego brakowało mi w obecnej składni. Również dla każdego, kto jest zainteresowany, nowa składnia jest zaimplementowana w wersji 528 + (Nightly Build). – prodigitalson

0

Próbowałeś czegoś takiego?

-webkit-gradient(linear, center bottom , #f00 2%, #d00 31px) 

Mam nadzieję, że this site pomoże ci więcej.

+1

Problemem jest 'kolor stop' zajmuje tylko procentów (lub notacji dziesiętnej z procentowego), nie jest to wartość ostateczna. Tymczasem "punkt" nie wydaje się figurować w pozycji zatrzymania, tylko kierunek - tj. cała definicja px jest pobierana z górnej części okna. Nie mogę obliczyć procentu, ponieważ gradient nie powinien być proporcjonalny, powinien zawsze zatrzymać dokładnie 31px od dołu pola, czy pudełko ma 10px wysokości lub 1000px wysokości. Mogę użyć obrazu, ale staram się utrzymać css możliwie jak najbardziej. – prodigitalson

5

Można użyć -webkit-background-size do wielkości gradientu w pikselach i background-position, aby umieścić go na dole.

+0

hmmm, które mogłyby działać ... źle to sprawdzić. DZIĘKI! – prodigitalson

4

Nie dość pewien, czego szukali, ale udaje mi się zatrzymać gradient w pikselach za pomocą tego -

background-size:100% 31px; background-repeat:no-repeat; 
+0

Masz rację! Dzięki! Oto działający JSFiddle http://jsfiddle.net/cfTwf/ – ProblemsOfSumit

+0

to działało również dla mnie –