1ts menu rozwijane
*
{
box-sizing: border-box;
}
body
{
height: 100%;
margin: 0;
font-family: Arial, Helvetica, sans-serif;
background-color: #0b0b0b;
color: #f5f5f5;
}
header
{
background-color: #070707;
padding: 25px 20px;
text-align: center;
border-bottom: 3px solid rgba(255,43,43,0.10);
box-shadow: 0 2px 8px black;
}
header h1
{
margin: 0;
color: #ff2b2b;
letter-spacing: 1.5px;
text-transform: uppercase;
font-size: 24px;
font-weight: 700;
}
.top-nav
{
background-color: #070707;
border-top: 1px solid rgba(255,43,43,0.03);
border-bottom: 1px solid rgba(255,43,43,0.03);
}
.menu
{
list-style: none;
margin: 0;
padding: 0;
text-align: center;
}
.menu > li
{
display: inline-block;
position: relative;
}
.menu > li > a
{
display: block;
padding: 12px 18px;
color: #f5f5f5;
text-decoration: none;
transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}
.menu > li > a:hover, .menu >li > a:focus
{
background-color: #121212;
color: #ff2b2b;
box-shadow: 0 4px 18px rgba(255,43,43,0.12);
outline: none;
}
.submenu
{
list-style: none;
padding: 0;
margin: 0;
display: none;
position: absolute;
top: 100%;
left: 0;
min-width: 200px;
background: #0f0f10;
border: 1px solid rgba(255,43,43,0.06);
box-shadow: 0 8px 24px rgba(0,0,0,0.7);
z-index: 50;
}
.menu li:hover > .submenu, .menu li:focus-within > .submenu
{
display: block;
}
.submenu li a
{
display: block;
padding: 10px 14px;
color: #e9e9e9;
text-decoration: none;
border-bottom: 1px solid rgba(255,43,43,0.03);
transition: background 0.14s ease, color 0.14s ease;
}
.submenu li a:hover, .submenu li a:focus
{
background: #1a1a1b;
color: #ff2b2b;
}
.container
{
width: 100%;
max-width: 1200px;
margin: 18px auto;
padding: 0 12px;
}
.side-menu
{
width: 20%;
float: left;
background: #0f0f10;
padding: 16px;
margin-right: 2%;
box-shadow: 0 4px 12px rgba(255,43,43,0.06);
border-left: 4px solid rgba(255,43,43,0.12);
}
.side-menu h3
{
margin-top: 0;
color: #ff2b2b;
}
/* struktura drzewa w menu bocznym */
.side-menu ul
{
list-style: none;
margin: 0;
padding-left: 25px;
}
.side-menu li
{
margin-bottom: 8px;
color: #ddd;
}
.side-menu a
{
text-decoration: none;
color: #f5f5f5;
transition: color 0.14s ease, text-decoration 0.14s ease;
}
.side-menu a:hover, .side-menu a:focus
{
color: #ff2b2b;
text-decoration: underline;
}
/* treść główna */
main
{
width: 78%;
float: left;
background: #0f0f10;
padding: 20px;
box-shadow: 0 4px 12px rgba(0,0,0,0.6);
min-height: 420px;
color: #eaeaea;
border-bottom: 4px solid rgba(255,43,43,0.06);
}
main h2
{
margin-top: 0;
color: #ff2b2b;
}
footer
{
clear: both;
background: #070707;
color: #f5f5f5;
text-align: center;
padding: 14px 10px;
margin-top: 22px;
border-top: 3px solid rgba(255,43,43,0.06);
}
a
{
color: #ff2b2b;
}
a:hover
{
text-decoration: underline;
}
:focus
{
outline: 3px solid rgba(255,43,43,0.12);
outline-offset: 2px;
}
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FitnesShop - sklep sportowy</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>FitnesShop - super sklep sportowy</h1>
</header>
<nav class="top-nav">
<ul class="menu">
<li>
<a href="#">Odzież</a>
<ul class="submenu">
<li><a href="#">Koszulki</a></li>
<li><a href="#">Bluzy</a></li>
<li><a href="#">Spodnie</a></li>
<li><a href="#">Buty</a></li>
<li><a href="#">Czapki</a></li>
</ul>
</li>
<li>
<a href="#">Siłownia</a>
<ul class="submenu">
<li><a href="#">Ciężarki</a></li>
<li><a href="#">Hantle</a></li>
<li><a href="#">Uchwyty treningowe</a></li>
<li><a href="#">Ławeczki</a></li>
</ul>
</li>
<li>
<a href="#">Akcesoria</a>
<ul class="submenu">
<li><a href="#">Torby</a></li>
<li><a href="#">Bidony</a></li>
<li><a href="#">Ochraniacze</a></li>
<li><a href="#">Rękawiczki</a></li>
</ul>
</li>
<li><a href="#">Kontakt</a></li>
</ul>
</nav>
<div class="container">
<aside class="side-menu">
<h3>Kategorie</h3>
<ul>
<li>Odzież
<ul>
<li><a href="#">Koszulki</a></li>
<li><a href="#">Bluzy</a></li>
<li><a href="#">Spodnie</a></li>
<li><a href="#">Buty</a></li>
<li><a href="#">Czapki</a></li>
</ul>
</li>
<li>Siłownia
<ul>
<li><a href="#">Ciężarki</a></li>
<li><a href="#">Hantle</a></li>
<li><a href="#">Uchwyty treningowe</a></li>
<li><a href="#">Ławeczki</a></li>
</ul>
</li>
<li>Akcesoria
<ul>
<li><a href="#">Torby</a></li>
<li><a href="#">Bidony</a></li>
<li><a href="#">Ochraniacze</a></li>
<li><a href="#">Rękawiczki</a></li>
</ul>
</li>
<li><a href="#">Kontakt</a></li>
</ul>
</aside>
<main>
<h2>Witamy w FitnesShop</h2>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ea id, commodi, voluptatibus accusamus beatae asperiores necessitatibus eveniet mollitia eius iste consectetur placeat, quae assumenda a. Voluptas praesentium ea facilis qui!</p>
</main>
</div>
<footer>
<p>Mateusz Siemież © 2025 FitnesShop</p>
</footer>
</body>
</html>STRONA W STYLU ONE PAGE
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Nowoczesna Strona Szkoleniowa - Bazy Danych & SQL</title>
<style>
:root {
--primary: #2563eb;
--secondary: #1e40af;
--light: #f8fafc;
--dark: #0f172a;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, sans-serif;
}
body {
background: var(--light);
color: var(--dark);
line-height: 1.6;
}
header {
background: linear-gradient(135deg, var(--primary), var(--secondary));
color: white;
padding: 70px 20px;
text-align: center;
border-bottom-left-radius: 40px;
border-bottom-right-radius: 40px;
box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
header h1 {
font-size: 2.8rem;
}
nav {
background: white;
display: flex;
justify-content: center;
gap: 30px;
padding: 15px;
position: sticky;
top: 0;
z-index: 1000;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
nav a {
text-decoration: none;
font-weight: 600;
color: var(--primary);
transition: 1s;
}
nav a:hover {
color: var(--secondary);
}
section {
padding: 70px 20px;
max-width: 1000px;
margin: auto;
}
.block {
background: white;
padding: 40px;
border-radius: 20px;
margin-bottom: 50px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
animation: fadeIn 1s ease;
}
h2 {
color: var(--primary);
margin-bottom: 15px;
font-size: 1.9rem;
}
footer {
background: var(--dark);
color: white;
text-align: center;
padding: 30px;
margin-top: 30px;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(40px); }
to { opacity: 1; transform: translateY(0); }
}
</style>
</head>
<body>
<header>
<h1>Szkolenie z Baz Danych i SQL</h1>
<p>Nowoczesny przewodnik dla uczniów technikum TEB</p>
</header>
<nav>
<a href="#o_kursie">O kursie</a>
<a href="#bazy">Podstawy baz danych</a>
<a href="#sql">SQL w praktyce</a>
<a href="#zadania">Zadania</a>
<a href="#kontakt">Kontakt</a>
</nav>
<section id="o_kursie" class="block">
<h2>O kursie</h2>
<p>Ten kurs został stworzony, aby wprowadzić uczniów technikum w świat baz danych i języka SQL. Jest on fundamentem dla większości zawodów IT — od programistów, przez analityków danych, aż po administratorów systemów.</p>
<p>W ramach kursu poznasz:</p>
<ul>
<li>jak działają relacyjne bazy danych,</li>
<li>jak planować strukturę danych,</li>
<li>jak pisać zapytania SQL na poziomie początkującym i średniozaawansowanym,</li>
<li>jak analizować dane i wyciągać wnioski.</li>
</ul>
</section>
<section id="bazy" class="block">
<h2>Podstawy relacyjnych baz danych</h2>
<p>Relacyjne bazy danych to systemy, w których dane przechowywane są w tabelach. Każda tabela składa się z:</p>
<ul>
<li><strong>kolumn</strong> — opisujących typ danych (np. imię, nazwisko, wiek),</li>
<li><strong>wierszy</strong> — pojedynczych rekordów danych.</li>
</ul>
<p>Najważniejsze pojęcia:</p>
<ul>
<li><strong>Primary Key (Klucz główny)</strong> — unikalny identyfikator rekordu.</li>
<li><strong>Foreign Key (Klucz obcy)</strong> — połączenie między tabelami.</li>
<li><strong>Normalizacja danych</strong> — proces eliminacji duplikacji danych.</li>
<li><strong>Relacje</strong>: 1:1, 1:N, N:M.</li>
</ul>
<p>Najpopularniejsze systemy baz danych to: MySQL, PostgreSQL, SQL Server oraz Oracle. W szkolnych warunkach pracujemy najczęściej z <strong>phpMyAdmin</strong> wykorzystującym silnik MySQL.</p>
</section>
<section id="sql" class="block">
<h2>SQL – praktyczne komendy</h2>
<p>SQL (Structured Query Language) to język służący do komunikacji z bazą danych. Poznasz najważniejsze polecenia:</p>
<h3>1. Pobieranie danych – SELECT</h3>
<pre>SELECT imie, nazwisko FROM uczniowie WHERE srednia > 4.0;</pre>
<h3>2. Dodawanie rekordów – INSERT</h3>
<pre>INSERT INTO uczniowie (imie, nazwisko, klasa) VALUES ('Jan', 'Kowalski', '2TI');</pre>
<h3>3. Aktualizowanie danych – UPDATE</h3>
<pre>UPDATE uczniowie SET nazwisko = 'Nowak' WHERE id = 3;</pre>
<h3>4. Usuwanie danych – DELETE</h3>
<pre>DELETE FROM uczniowie WHERE id = 5;</pre>
<h3>5. Tworzenie tabel – CREATE TABLE</h3>
<pre>CREATE TABLE przedmioty (
id INT PRIMARY KEY AUTO_INCREMENT,
nazwa VARCHAR(50),
nauczyciel VARCHAR(50)
);</pre>
</section>
<section id="zadania" class="block">
<h2>Zadania praktyczne</h2>
<ol>
<li>Stwórz bazę danych <strong>szkola</strong> i zaprojektuj 3 tabele: <em>uczniowie</em>, <em>przedmioty</em>, <em>oceny</em>.</li>
<li>Dodaj przykładowe rekordy do każdej tabeli (minimum 5 uczniów, 5 przedmiotów i 15 ocen).</li>
<li>Wyświetl uczniów z najwyższą średnią.</li>
<li>Połącz tabele za pomocą JOIN, aby wyświetlić listę ocen z nazwą przedmiotu.</li>
<li>Usuń wszystkie oceny poniżej 2.0.</li>
<li>Przygotuj raport SQL z liczbą ocen z każdego przedmiotu.</li>
</ol>
</section>
<section id="kontakt" class="block">
<h2>Kontakt</h2>
<p>Masz pytania? Skontaktuj się ze swoim nauczycielem poprzez:</p>
<ul>
<li>Microsoft Teams</li>
<li>E-dziennik</li>
<li>Konsultacje po lekcjach</li>
</ul>
</section>
<footer>
<p>© 2025 Bazy danych dla technikum</p>
</footer>
</body>
</html>