JavaScript - lekcja 3
ELEMENTY SEMANTYCZNE - https://webaim.org/intro/
CHECKBOXY
- Checkbox jest dobry w formularzach, kiedy oczekujemy wyrażenia zgody przez użytkownika (zgody RODO, na przetwarzanie danych - takie, jakie nie mogą być domniemane, muszą być wyrażone osobno)
- Checkbox przydaje się do wielu wyborów, np do wyboru preferencji.
- atrybut checked - domyślnie zaznaczony checkbox,
- value="programming" - checkbox wysyła od razu do serwera
- dobry checkbox to taki, ze moge nacisnąć na napis obok niego i zaznaczy opcje
RADIO BUTTONS:
- Wybór jest tylko jeden
- wartość w atrybucie value zostanie wysłana
- dobrze mieć domyślną wartość - taka, która zostanie zaznaczona podczas ładowania strony, dzięki temu zawsze będzie cos wyslane
INPUT TYPE="file"
- użytkownik moze cos wyslac
- jak damy wartość do accept to ograniczamy jakie typy przyjmujemy, multiple pozwala na kilka plikow
- uwaga na bezpieczeństwo, ktoś może zobaczyć, sposób uploadu, gdzie itd. to moze wyslac cos innego
- po stronie serwera decyduje się dozwolony rozmiar, ponieważ dzieje się to dopiero po probie wyslania - bo tak to ktoś moze oszukać przegladarke i wyslac zly plik
INPUT TYPE="date"
- Pole po kliknięciu otwiera nam NASZ lokalny kalendarz
- można ustalić zakres dat i godzin
- datetime=local pozwala pominąć strefe czasowa
- stare przeglądarki zdegradują do pliku tekstowego
INPUT TYPE="date"
- dobry do organizacji czasu/spotkań itp.
LISTY ROZWIJANE:
- pierwsza opcja ma value="", czyli pusta i dobrze jest jej nadac instrukcje, co ma użytkownik zrobić
- bez pierwszej opcji pustej - zawsze chcemy mieć jakas wartość, a użytkownik chce zmienić
- tag optgroup z etykietą i pod nim opcje - dużo wartości, grupowanie opcji za pomocą taga
- multiple (size) atrybut pozwala na wybór wielu opcji, ctrl+klik daje opcje wyboru kilku-jak jest dużo podkatalogów z roznymi opcjami
- atrybut disabled - opcja jest wyłączona/niedostępna
- pola min i max w input ustawiają zakres (minlength i maxlength dla tekstow)
- atrybut step ustawia o ile zwieksza liczbe
- pattern ustawia regexa, jakie znaki mogą być uzyte
Aria-label
- mowi o dostepnosci, o tym czego brakuje itp.
CSS - sposoby dodawania PLUS ich ważność (kaskada stylów):
- zdefiniowanie stylu w tagu za pomocą atrybutu style ZŁY
- osobna sekcja style - dodaje style do WYBRANYCH rzeczy, zwykla klasa zaczyna się od kropki a potem nazwy, każdy wybrany tag - nazwa tagu, unikatowe id - #nazwa
- ładowanie css z zewnętrznego pliku
dodanie obok stylu !important robi z niego priorytet, ale tylko wtedy gdy jest naprawde potrzebny
priorytet: id (#), klasa (.), tag (np. p), wszystko (*)
dzieci priorytyzują swoje style!
SPAN NIE ROZPYCHA SIĘ, TAK JAK RESZTA INLINOWYCH ELEMENTOW - nie ustawia sie im wielkosci height i width
SELEKTOR * - dotyka wszystko, zazwyczaj stosuje sie go do resetu elementów (margin:0, padding:0, box-sizing: border-box)
:hover do elementu oznacza, ze bedzie miec okreslony styl po najechaniu na dany element myszką, jest to jedna z pseudoklas
:active - podczas kliknięcia
:focus - ma fokus w formularzu
:visited - odwiedzony link
reszta w kodzie
div p - wszystkie p wewnątrz div
no-repeat przy obrazku (background) oznacza, ze obrazek nie powtarza się w tle jesli zostalo jeszcze wolne miejsce do wypełnienia
font-family -> kolejność ważności czcionek
by dostać gradient w kolorach wystarczy użyć wartości
linear-gradient(to left/right, kolor1, kolor2) lub (stopnie, kolor1 procent, kolor2 procent....)
radiant-gradient(circle, kolor1, kolor2)