Modern Web Tasarımının Kalbi: Cascading Style Sheets
CSS3 (Cascading Style Sheets Level 3), HTML veya XML belgelerinin sunumunu (görünümünü) tanımlamak için kullanılan bir stil dilidir. CSS2'den farklı olarak CSS3 "modüler" bir yapıya sahiptir.
-webkit- veya -moz- gibi ön ekler gerekebilir (günümüzde çoğu standartlaşmıştır).
<h1 style="color:blue;"><style> etiketleri arası.<link rel="stylesheet" href="style.css">Seçiciler, stil vermek istediğiniz HTML öğelerini hedeflemenizi sağlar.
/* Etiket Seçici */
p { font-size: 16px; }
/* Class (Sınıf) Seçici */
.ozel-metin { color: green; }
/* ID Seçici */
#ana-baslik { font-weight: bold; }
/* Torun (Descendant) Seçici */
div p { margin: 10px; }
/* Çocuk (Child) Seçici */
ul > li { list-style: none; }
/* N-inci Çocuk (Pseudo-class) */
li:nth-child(odd) { background: #eee; }
li:hover { color: red; }
CSS3 ile gelen gelişmiş seçiciler sayesinde JavaScript kullanmadan karmaşık seçimler yapabilirsiniz. Örneğin: input:required, p:empty veya [attribute^="value"].
Her HTML öğesi aslında bir kutudur. Bu kutu şu katmanlardan oluşur:
.box {
width: 300px;
padding: 20px;
border: 5px solid black;
margin: 15px;
box-sizing: border-box; /* Önemli! Genişliğe padding ve border'ı dahil eder. */
}
CSS3 renk tanımlama konusunda büyük esneklik sağlar.
rgba(255, 0, 0, 0.5) (Yarı saydam kırmızı).background: linear-gradient(to right, #3498db, #2ecc71);
Kutu ve yazı gölgeleri tasarıma derinlik katar:
box-shadow: 10px 10px 5px grey;
text-shadow: 2px 2px 4px #000000;
Flexbox, tek boyutlu (satır veya sütun) yerleşimler için mükemmeldir.
.flex-container {
display: flex;
justify-content: space-around; /* Yatay hizalama */
align-items: center; /* Dikey hizalama */
flex-wrap: wrap; /* Sığmazsa alt satıra geç */
}
align-items: center) ile yapılabiliyor.
Grid, iki boyutlu (satır VE sütun) yerleşimler için kullanılan en güçlü sistemdir.
.grid-container {
display: grid;
grid-template-columns: 1fr 2fr 1fr; /* 3 sütun */
gap: 20px; /* Hücreler arası boşluk */
}
JavaScript kullanmadan hareketli öğeler oluşturun.
Bir durumdan diğerine yumuşak geçiş sağlar:
button {
transition: background-color 0.5s ease;
}
button:hover {
background-color: darkblue;
}
@keyframes ornek {
from { left: 0px; }
to { left: 200px; }
}
.element {
animation-name: ornek;
animation-duration: 4s;
animation-iteration-count: infinite;
}
Media Queries kullanarak web sitenizi tüm cihazlara uyumlu hale getirin.
/* Masaüstü standart ayarlar */
.sidebar { width: 30%; float: left; }
/* Tablet ve Telefonlar için (768px altı) */
@media screen and (max-width: 768px) {
.sidebar {
width: 100%;
float: none;
}
}
Modern CSS'te değerleri bir kez tanımlayıp her yerde kullanabilirsiniz.
:root {
--ana-renk: #ff5733;
}
h1 {
color: var(--ana-renk);
}
450 satırlık bir bilgi birikimini özetlemek gerekirse;
.block__element--modifier yapısı ile isimlendirme yapın.width: calc(100% - 50px);