CSS HTML PHP - Jak skalować elementy na stronie www?
CSS oferuje szeroki wachlarz narzędzi do skalowania elementów, które można dostosować do różnych potrzeb.
%
, vw
, vh
, em
, rem
pozwala na dynamiczne skalowanie elementów w zależności od rozmiaru okna przeglądarki lub elementu nadrzędnego..element {
width: 50%; /* 50% szerokości rodzica */
height: 30vh; /* 30% wysokości okna przeglądarki */
font-size: 1.5rem; /* Skalowanie tekstu względem rozmiaru bazowego */
}
transform: scale()
)scale()
umożliwia wizualne powiększanie lub zmniejszanie elementów..element {
transform: scale(1.5); /* Powiększenie o 50% */
}
transform
nie zmienia rzeczywistych wymiarów elementu w przepływie dokumentu, co oznacza, że układ strony pozostaje nienaruszony.@media (max-width: 768px) {
.element {
width: 100%; /* Pełna szerokość na mniejszych ekranach */
}
}
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 1 200px; /* Skalowanie elementów w zależności od dostępnej przestrzeni */
}
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
max-width
i height: auto
.img {
max-width: 100%;
height: auto;
}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<picture>
: Umożliwia ładowanie różnych wersji obrazów w zależności od rozdzielczości.
<picture>
<source media="(min-width: 650px)" srcset="large.jpg">
<source media="(min-width: 465px)" srcset="medium.jpg">
<img src="small.jpg" alt="Opis obrazu">
</picture>
PHP może być używane do generowania dynamicznych treści, które wpływają na skalowanie.
function isMobile() {
return preg_match("/(android|iphone|ipad)/i", $_SERVER["HTTP_USER_AGENT"]);
}
if (isMobile()) { echo ''; } else { echo ''; }
##### b) Dynamiczne generowanie obrazów
- **Przykład**:
```php
$filename = 'image.jpg';
list($width, $height) = getimagesize($filename);
$newWidth = $width / 2;
$newHeight = $height / 2;
$src = imagecreatefromjpeg($filename);
$dst = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
header('Content-Type: image/jpeg');
imagejpeg($dst);
transform
jest efektywne, ale nie zmienia rzeczywistych wymiarów elementu.vw
i vh
pozwala na skalowanie względem okna przeglądarki, co jest szczególnie przydatne w projektach responsywnych.Skalowanie elementów na stronie internetowej można osiągnąć za pomocą CSS (jednostki relatywne, transformacje, media queries), HTML (meta tag viewport, <picture>
), oraz PHP (dynamiczne generowanie treści). Kluczowe jest projektowanie responsywne i optymalizacja wydajności.