Listy i tabele robicie od dawna - dziś zmieniamy im wygląd CSS-em
list-style-type, list-style-position - wygląd i miejsce punktorów listy
Domyślny margines i wcięcie listy - i jak je zdjąć
border-collapse - jedna linia obramowania zamiast podwójnej
Padding komórek i naprzemienne tła wierszy tabeli
Rozgrzewka · 3 minuty
Trzy pytania z poprzedniej lekcji
Czym różni się min-width od max-width?
Jaki warunek musi spełniać pudełko, żeby margin: auto je wyśrodkowało?
Ile wartości podajecie w box-shadow i co oznaczają?
Część 1 · list-style-type
Jaki znak stoi przed punktem?
list-style-type ustala, jaki znak pojawia się przed każdym elementem listy. Domyślnie lista nienumerowana (<ul>) dostaje wypełnione kółko (disc), a numerowana (<ol>) liczby od 1 (decimal). Wartość none usuwa punktor całkiem.
Ciekawostka z MDN: lista wartości list-style-type nie kończy się na disc, circle, square i decimal. CSS ma osobne systemy numeracji dla różnych krajów, na przykład japanese-informal (japońska numeracja) albo armenian (tradycyjna ormiańska), a część z nich wymaga zainstalowanej odpowiedniej czcionki, żeby dobrze się wyświetlić.
MDN: „disc - a filled circle (default value)” · „decimal - decimal numbers, beginning with 1” · „none - no item marker is shown” · developer.mozilla.org/docs/Web/CSS/list-style-type · ciekawostka: developer.mozilla.org/en-US/docs/Web/CSS/list-style-type
Część 2 · list-style-position
Punktor w linii czy przed nią?
list-style-position decyduje, gdzie stoi punktor względem tekstu elementu. outside (domyślne) stawia go przed wcięciem, poza tekstem. inside wsuwa go do środka - jeśli tekst zawinie się do drugiej linii, ta linia zaczyna się równo pod punktorem, nie pod pierwszą literą.
MDN: „outside (the default value) makes bullets sit outside the list items” · „inside... the bullets will sit inside the lines” · developer.mozilla.org/docs/Learn_web_development/Core/Text_styling/Styling_lists
Część 3 · domyślny margines i skrót list-style
Skąd to wcięcie?
Przeglądarka sama dodaje listom odstęp: górny i dolny margin16px oraz padding-left40px (to wcięcie robi wyłącznie padding-left, nie margin). Żeby zdjąć kropki i wcięcie razem, ustawiacie oba: list-style: none; i padding-left: 0;. Trzy właściwości można też zapisać jednym skrótem list-style.
ul {
list-style: square url("gwiazdka.png") inside;
}
/* kolejność dowolna; brakujące wartości = domyślne: disc, none, outside */
MDN: „<ul> and <ol> elements have a top and bottom margin of 16px (1em) and padding-left of 40px (2.5em)” · „you can use one, two, or all three [wartości list-style] (the default values used for the properties that are not included are disc, none, and outside)” · developer.mozilla.org/docs/Learn_web_development/Core/Text_styling/Styling_lists
Część 4 · border-collapse
Jedna linia obramowania czy dwie?
Gdy komórki tabeli mają obramowanie (border), domyślnie każda trzyma swoje własne - między sąsiednimi komórkami widać podwójną linię z odstępem (separate, wartość domyślna). border-collapse: collapse; sprawia, że sąsiednie obramowania łączą się w jedną wspólną linię.
MDN: „A border-collapse value of collapse is standard best practice for any table styling effort” · „separate - adjacent cells have distinct borders” (wartość domyślna) · „collapse - adjacent cells have shared borders” · developer.mozilla.org/docs/Web/CSS/border-collapse
Część 5 · padding komórek i naprzemienne tła
Żeby tabela dała się czytać
Domyślnie tekst w komórce styka się z linią obramowania - dodajecie padding do th i td, żeby dane miały miejsce do oddychania. Naprzemienne tło wierszy (tzw. zebra) robi selektor :nth-child(odd) - wybiera co drugi wiersz, licząc od pierwszego.
MDN: „giving your header and cell content some space to breathe, making the table look a lot more legible” · „odd is shorthand for 2n+1 (this will select the 1st, 3rd, 5th rows, etc.)” · developer.mozilla.org/docs/Learn_web_development/Core/Styling_basics/Tables
CSS · egzamin
Tak pytają na egzaminie
1. Zapis CSS postaci ul { list-style-image: url('rys.gif'); } sprawi, że na stronie internetowej
punktorem listy nienumerowanej będzie rys.gif
rys.gif będzie stanowił ramkę dla listy nienumerowanej.
wyświetli się rysunek rys.gif jako tło listy nienumerowanej.
każdy z punktów listy będzie miał osobne tło pobrane z grafiki rys.gif
2. Który zapis td { border: 1px solid black; padding: 15px; height: 40px; vertical-align: bottom; } sformatował podaną komórkę tabeli (pozostałe własności domyślne)?
CKE, E.14, styczeń 2017, zadanie 10 · CKE, EE.09, czerwiec 2026, zadanie 31
Ćwiczenie · przy komputerze · 20 minut
Ćwiczenie: style list i tabel
W style.css zdejmij kropki z listy menu: list-style: none; i cofnij domyślne wcięcie padding-left: 0;.
Dla tabeli na swojej stronie ustaw border-collapse: collapse; i padding na th/td.