Karty
Część sekcji Praktyczny frontend ścieżki HTML w Coddy. Lekcja 21 z 35.
Karty to sposób na organizowanie treści w osobnych sekcjach, przy jednoczesnym zachowaniu wszystkiego na jednej stronie. Zamiast przewijać długą stronę, użytkownicy mogą przełączać się między panelami z treścią, klikając kartę. Karty często można znaleźć na stronach ustawień, w panelach lub opisach produktów (np. Szczegóły, Opinie, FAQ).
Możemy tworzyć karty bez JavaScriptu, używając:
- Przycisków opcji (dzięki czemu w danym momencie aktywna może być tylko jedna karta)
- Etykiet, które działają jak klikalne przyciski kart
- Selektorów CSS (
:checked), aby wyświetlać właściwą zawartość
HTML:
<div class="tabs">
<input type="radio" id="tab1" name="tab" checked>
<label for="tab1">Tab 1</label>
<div id="content1" class="tab-content">This is the content of Tab 1.</div>
<input type="radio" id="tab2" name="tab">
<label for="tab2">Tab 2</label>
<div id="content2" class="tab-content">This is the content of Tab 2.</div>
<input type="radio" id="tab3" name="tab">
<label for="tab3">Tab 3</label>
<div id="content3" class="tab-content">This is the content of Tab 3.</div>
</div>CSS:
<style>
/* Ukryj przyciski radiowe */
input { display: none; }
/* Etykiety kart */
label {
padding: 5px 10px;
background: lightgray;
cursor: pointer;
}
/* Treść domyślnie ukryta */
.tab-content { display: none; padding: 10px; border: 1px solid #ccc; }
/* Pokaż treść, gdy przycisk radiowy jest zaznaczony */
#tab1:checked ~ #content1,
#tab2:checked ~ #content2 {
display: block;
}
/* Wyróżnij aktywną kartę */
#tab1:checked + label,
#tab2:checked + label {
background: steelblue;
color: white;
}
</style>Oto krótkie przypomnienie, które możesz przekazać uczniom:
+(sąsiedni element) → wybiera bezpośrednio następny element.~(dowolny element siostrzany) → wybiera dowolny kolejny element siostrzany (nie tylko następny).
Wyzwanie
ŁatwyOtrzymujesz początkowy kod HTML z dwiema skonfigurowanymi kartami. Twoim zadaniem jest rozbudować i ulepszyć system kart.
- Dodaj kolejną kartę „Sleep”:
- Etykieta:
Sleep - Zawartość: „Good sleep helps recovery and focus. Aim for 7 to 9 hours per night and keep a regular schedule.”
- Etykieta:
- Dodaj
#tab3:checked ~ #content3do selektora CSS, który wyświetla zawartość karty po jej zaznaczeniu.
Spróbuj swoich sił
<!DOCTYPE html>
<html>
<head>
<title>Tabs</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
background: #f9f9f9;
}
.tabs {
display: flex;
flex-direction: column;
width: 350px;
}
/* Hide the radio inputs */
.tabs input {
display: none;
}
/* Tab labels */
.tabs label {
padding: 10px;
background: #eee;
cursor: pointer;
border: 1px solid #ccc;
}
.tabs label:hover {
background: #ddd;
}
/* Tab content */
.tab-content {
display: none;
border: 1px solid #ccc;
padding: 10px;
background: #fff;
line-height: 1.5;
}
/* Show content when radio is checked */
#tab1:checked ~ #content1,
#tab2:checked ~ #content2 {
display: block;
}
/* Highlight active tab */
#tab1:checked + label,
#tab2:checked + label,
#tab3:checked + label {
background: #4cafef;
color: white;
}
</style>
</head>
<body>
<div class="tabs">
<input type="radio" id="tab1" name="tab" checked>
<label for="tab1">Nutrition</label>
<div id="content1" class="tab-content">
<h3>Nutrition</h3>
<p>A balanced diet fuels your body and mind. Focus on fruits, vegetables, whole grains, and lean proteins. Avoid too much processed food.</p>
</div>
<input type="radio" id="tab2" name="tab">
<label for="tab2">Exercise</label>
<div id="content2" class="tab-content">
<h3>Exercise</h3>
<p>Daily movement strengthens your body and reduces health risks. Even a 30-minute walk or stretching makes a difference.</p>
</div>
</div>
</body>
</html>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Praktyczny frontend
2Strategia mobile-first
Co oznacza „mobile-first”Typografia w podejściu mobile-firstNawigacja w podejściu mobile-firstObrazy w podejściu mobile-firstFormularze w podejściu mobile-firstWyzwanie podsumowujące5Komponenty interfejsu użytkownika
Menu rozwijaneKartyOdznakiPodpowiedziBanery powiadomieńWyzwanie podsumowującePoćwicz samodzielnie: Edytor online Web