poniedziałek, 26 listopada 2012

Zaslyszane w necie - blad chrystusowy

"To jest tak zwany błąd chrystusowy. Myślisz, że go przygwoździłeś, tymczasem mija parę dni i on znów wyskakuje."

Nie wiem, kto jest autorem, przeczytalam dzis to na jakiejs stronie :)

Nieplanowany odstep miedzy obrazkami

Mam sobie <figure> a w srodku 2 <img>. <figure> ma ustawiona szerokosc, zeby obrazki wyswietlaly sie jeden pod drugim. Wszystko niby gra i buczy, ale... pomiedzy obrazkami pojawila sie przestrzen. Tak na oko jakies 2 pixele szerokosci.

No ki diabel... zaczelam sprawdzac moje style, czy aby nie mam gdzies jakiegos marginesu, paddinga czy innej ramki ustawionej, ale nic, czysto.

Roywiazanie oczywiscie jest banalnie proste. Wystarczy dodac obrazkom wlasciwosc display: block; i wszystkie tajemnicze odstepy, przestrzenie itp znikaja :D

wtorek, 13 listopada 2012

CSS3 media queries nie dzialaja?!?

No wlasnie, zakodowalam layout dla wersji mobilnej naszej strony, pod zwykla przegladarka moje czary z fluid layout i CSS3 media queries dzialaja az milo. Ale zanim pokaze komukolwiek wyniki swojej pracy postanowilam sama przetestowac. No i zonk... Strona i owszem laduje sie... ale... w stylach dla szerokosci ekranu 481-980px, a skrypt JS mi wyswietla, ze ekran ma 320px.

No ki diabel??

Szukam i szukam, sprawdzam, czego mi zabraklo i...

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Winowajca sie znalazl. meta viewport jest jednak niezbedne :)

wtorek, 6 listopada 2012

funkcje w JavaScript, part 4 - funkcje prywatne

W poscie zasieg zmiennych (scope) w JavaScript pisalam o zasiegu zmiennych. Tworzenie funkcji prywatnych (lub wewnetrznych - private, inner functions) dziala w opisany w wyzej wymienionym poscie sposob:
function a {
  var abc = 12;
  function b () {
    console.log(abc);
  }
  b();
}

Funkcje sa danymi, wiec mozemy je definiowac wewnatrz innych funkcji. I zachowuja sie dokladnie tak samo jak zmienne. Jesli teraz wywolamy funkcje a:
a();

to na konsoli zostanie wypisana liczba 12. Jesli natomiast sprobujemy wywolac b:
b();

to otrzymamy ReferenceError: b is not defined. Ten sam blad (tylko z nazwa innej zmiennej) pojawi sie, jesli sprobujemy wyswietlic wartosc zmiennej abc. Zarowno funkcja b jak i zmienna abc sa zdefiniowane wewnatrz funkcji a, wiec sa widoczne tylko w jej wnetrzu, a poza nia srodowisko ich nie zna.