Aslında bunun en kolay çözümü flex
kullanmak. Örnek vermek gerekirse;
<div class="container">
<div class="item">
1. item
</div>
<div class="item">
2. item
</div>
<div class="item">
3. item <br>
uzun değer
</div>
<div class="item">
4. item
</div>
<div class="item">
5. item
</div>
<div class="item">
6. item <br>
uzun değer
</div>
</div>
<style>
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 500px;
margin: 0 auto;
}
.container .item {
width: 49%;
background: #ddd;
margin-bottom: 20px;
}
</style>
bu sayede yan yana listelenen elemanların yükseklikleri aynı olmasa bile eşitlenecektir.
Ya da jquery masonry eklentisini kullanabilirsin.
https://masonry.desandro.com/layout.html
O zamanda tek bir include yerine her case içerisinde ayrı ayrı include edeceksin, tasarımlarını da ona göre yapacaksın.
Eğer bunu veritabanı ile birleştirip yapacaksanda, wordpress gibi şablon oluşturma yapabilirsin, yani x sayfası senin oluşturuğun x şablonuyla gözüksün kısaca senin oluşturduğun php dosyası düzeninde gözüksün diyebilirsin :)
statik dediğin zaman ayrı ayrı sayfalar demek oluyor ama :) Şöyle basit bir örnek olabilir;
<?php
$sayfa = isset($_GET['sayfa']) ? $_GET['sayfa'] : '';
switch($sayfa){
case 'hakkimda':
$baslik = 'Hakkımda';
$icerik = 'Burası hakkımda sayfası';
break;
case 'galeri':
$baslik = 'Galeri';
$icerik = 'Burası galeri sayfası';
break;
case 'iletisim':
$baslik = 'İletişim';
$icerik = 'Burası iletişim sayfası';
break;
default:
$baslik = 'Anasayfa';
$icerik = 'Burası anasayfa';
break;
}
include __DIR__ . '/sayfa.php';
?>
sayfa.php'de şöyle olur;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><?=$baslik?></title>
</head>
<body>
<?=$icerik?>
</body>
</html>
sonuç olarak şu linkerle giriş yapabilirsin;
localhost/index.php
localhost/index.php?do=iletisim
localhost/index.php?do=hakkimda
localhost/index.php?do=galeri
Bir çok şifreleme algoritması var, örneğin AES (Advanced Encryption Standart - Gelişmiş Şifrelem Standardı) kullanılabilir.
function encrypt($string, $key)
{
$encrypted_string = openssl_encrypt($string, "AES-128-ECB", $key);
return $encrypted_string;
}
function decrypt($string, $key)
{
$decrypted_string = openssl_decrypt($string, "AES-128-ECB", $key);
return $decrypted_string;
}
$anahtar = 'prototurk.2019';
$deger = 5; // örneğin kategori idsi olsun
$sifreliDeger = encrypt($deger, $anahtar);
echo $sifreliDeger// Çıktı: vJeZ6vqVNnLG5AELjajNug==
$gercekDeger = decrypt($sifreliDeger, $anahtar);
echo $gercekDeger; // Çıktı: 5
Tam olarak şöyle;
<div class="fixed">
Hello PROTOTURK
</div>
<style>
.fixed {
position: fixed;
top: 0;
left: 50%;
transform: translate(-50%);
background: red;
}
</style>
burada olay soldan 50% verip translate(-50%)
diyerek dinamik genişliği olan bir alanı ortalamak :)
Bence en kolay şöyle olur, header
ve footer
divlerini fixed olarak eklemek. Örnek vermek gerekirse;
<header class="header">
Header
</header>
<main class="contaner">
.. içeriğin ..
</main>
<footer class="footer">
Footer
</footer>
Tabi burada header ve footer'ı sadece yazdırma yaparken görmek için şöyle bir CSS gerekir;
.header, .footer {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100px;
display: none;
}
.footer {
top: auto;
bottom: 0;
}
@media print {
.header, .footer {
display: block;
}
.container {
padding: 100px 0;
}
}
İşine yarar diye tahmin ediyorum :D En kötü ihtimalle tüm ihtimaller burada açıklanmış ufak bir gezinti işini görecektir :)
jQuery 1.7 sürümünde live()
metodu kaldırıldı. Yerine on()
metodu kullanılabilir. Örnek olması adına;
$(document.body).on('click', '.link', function(){
// ...
});
bu tam olarak senin yazdığın kodun alternatifidir.
Bunun için flex-wrap: wrap
kullanabilirsin. Yani;
.container {
display: flex;
flex-wrap: wrap;
.box {
width: 50%;
}
}
böylece 50% dediğin için 100%lük bir alana max. 2 tane sığacaktır. Taşanlar ise alta gelecektik ve ikişer ikişer gösterecektir.