Zaokrąglanie bloków w HTML

0

Chcąc uzyskać efekt zaogrąglenia rogów bloków w HTML'u dla każdego rogu muszę napisać trzy linijki kody

-moz-border-radius-XY:Zpx;
border-X-Y-radius:Zpx;
-icab-border-X-Y-radius:Zpx;
-webkit-border-X-Y-radius:Zpx;
-khtml-border-X-Y-radius:Zpx;

gdzie zamiast X wpisuje "top" lub "bottom", zamisat Y wpisuje "right" lub "left", a zamias Z podaje wartość pikseli.
Niestety to nie działa na opera mobile, co wpisać żeby uzyskać efekt zaokrąglenia w opera mobile, a może nie można uzyskać tego efektu w tej przeglądarce ?

0

Przetestuj -o-border-radius-top

1

Jeśli dla każdego rogu masz rzeczywiście to samo Z, tj. ten sam promień obramowania, to możesz to napisać dużo prościej, bez żadnych "left" i "top". Wystarczy samo border-radius: Zpx żeby ustawić zaokrąglanie rogów dla każdego narożnika na Z pikseli. Do tego musisz jeszcze dorzucić wersję z prefixem -moz- oraz -webkit-.

Co do Opery Mobile, to ona -- w przeciwieństwie do zwykłej Opery -- nie wspiera chyba jeszcze border-radius. Obczaj ten artykuł:
http://dev.opera.com/articles/view/opera-mobile-10-developers-introduction/

Fragment:

Opera Mobile 10 does not have Vega accelerated rendering enabled, so features such as border-radius, box-shadow, etc. that depend on our Vega graphics library currently aren’t supported.

Plus tabelka kompatybilności:
http://my.opera.com/ODIN/blog/2010/03/16/opera-standards-chart

Trzeba jednak wziąć pod uwagę, żę artykuły te pochodzą sprzed roku i dotyczą Opery Mobile 10 (najnowsza wersja to 11).

0

BTW możesz się wspomóc w tworzeniu CSS'ów używając Sass + Compass. Compass ma w sobie wbudowane include'y, które "pamiętają" za ciebie o wszystkich przeglądarkach.

0

@winerfresh:
A co z debugowaniem arkuszy napisanych w takim Sassie/Compassie? Załóżmy, że coś jest na stronie zwalone, np. jakiś element przesunięty o kilka pikseli.

Normalnie inspektujesz go Firebugiem (lub czymś podobnym), czasem od razu w Firebugu bawisz się przypisanymi do danego elementu regułami, a czasem od razu zapamiętujesz numer linii, przy którym zaczyna się dana reguła, otwierasz plik w normalnym edytorze CSS, znajdujesz regułę po numerze linii i edytujesz.

Jeśli zastosuje się "kompilator" (preprocesor) rozszerzonej składni CSS do normalnego CSS, to numery linii oczywiście kompletnie nie będą się zgadzać, więc ten sposób będzie bezużyteczny.

Czy jest inny, równie wygodny sposób?

Szukanie po selektorze i tak byłoby mniej wygodne, bo łatwiej i szybciej można zapamiętać i skoczyć do danego numeru linii. Poza tym, w tych preprocesorach CSS można także stosować nieco inną składnię selektorów np. dla zagnieżdżonych sekcji elementów, więc i to odpada.

Można korzystać z markerów w komentarzach np. w stylu /* =nav */ i wtedy wystarczy wyszukać w edytorze ciąg "=nav", ale przecież nie umieści się tego przy KAŻDEJ regule.

Podobne problemy występują, gdy używa się scalania i minifikowania arkuszy stylów, tyle że to łatwo ominąć: wystarczy włączyć to tylko na środowisku produkcyjnym, a na testowym pracować i debugować normalne, nieskompresowane i podzielone na pliki style. W tym środowisku testowym używamy więc kodu źródłowego i widzi go również przeglądarka wraz z Firebugiem.

W przypadku preprocesorów nigdy tak nie będzie, bo przeglądarka nigdy nie będzie potrafiła odczytać naszego rozszerzonego kodu źródłowego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1