CSS

CSS Grid: Web Sayfası Şabolunu Oluşturma

CSS Grid Layout, CSS içinde bulunan en güçlü yerleşim düzenidir.  Tek boyutlu flexbox’ın aksine hem sütun hemde satırları işleyebilme özelliğine sahiptir.  CSS Grid Layout hem anadüzene hem de alt düzenlere kurallar uygulayarak sayfanın şablonunu oluşturmak için kullanılabilir. Ayrıca sayfa şablonu oluşturmak için grid kullanıp alt kısımlarda da flexbox kullanmak mümkündür.

CSS Grid Layout şuan aşağıdaki tarayıcılar ve belirtilen versiyonlar ile çalışmaktadır. (veri:caniuse sitesinden alınmıştır.)

 

CSS Grid Layout kullanarak aşağıdaki sayfa şablonunu oluşturmak için adım adım kodlamaya başlayalım.

 

CSS Grid Layout öncesi sayfa tasarımları sırasıyla tablo,float:left, inline-block gibi CSS özellikleri ile sayfa şablonları oluşturulurdu. Bu tasarımlar sırasında sayfanın sağını düzelttiğimizde solu solunu düzeldiğinde sağı kayması gibi sorunlar ile çok sık karşılaşmışsınızdır. Bu yapacağım basit grid tasarımı ile sayfanın şablonunu nasıl oluşturduğumuzu inceleyeceğiz.

Kodlara geçmeden önce animasyonu dikkatlice incelemenizi tavsiye ederim. Oluşturacağım sayfa tasarımı animasyondaki kurallara birebir uyacak şekilde olacaktır.

 

CSS Grid Şabolunun Oluşturulması

Grid sistemi oluşturmak için şablon ögelerine isim verilebileceği gibi sabit değerler ile de şablonu oluşturmak mümkündür. Aşağıdaki görselde iki sütunlu ve beş satırlı bir sayfa tasarımı görünmektedir. Grid tasarımında nesneleri yerleştirmek için sütun başlangıç ve bitiş çizgilerini iyi bilmek ve ona göre nesneleri yerleştirmek gerekir. Aşağıdaki görselde şablonun ızgara(grid) çizgileri gösterilmektedir. Nesnenin hangi çizgiden yerleştirileceğini göstermek için  grid-column-start / grid-row-start ve nerede biteceğini göstermek için grid-column-end / grid-row-end kullanılır.

 

Adım 1: Öncelikle 1080px genişliğinde sayfa divini, içeride kullancağım diğer divleri  ve sayfa divinin CSS kodlarını oluşturuyoruz.

.sayfa nesnesi grid nesnesidir ve iki sütun olarak oluşturulmuştur. İlk sütun genişliği 350px ikinci sütun genişliği 720px ve arada 10px boşluk olacak şekilde toplam genişlik 1080px olarak ayarlanmıştır.   grid-template-columns özelliği kaç sütundan oluşacağı ve sütunların genişliklerinin ne olacağını belirtmek için kullanılır.

HTML:

 

CSS:

 

Adım 2: .ust etiketinin CSS kodlarının oluşturulması.  Grid nesnesinde sütun başlanıç ve bitiş çizgileri animasyonda gösterilmiştir.  Üst bölüm tüm satırı kapladığı için 1.sütun çizgisinden başlayıp son (3.sütun) çizgisine kadar grid alanını kaplayacaktır.  grid-column-start başlangıç çizgisini, grid-column-end bitiş çizgisini ifade eder. Aynı şekilde grid-row-start, grid-row-end özellikleri de satır başlangıcını ve bitişini ifade eder.

 

Adım 3: .menu nesnesinin oluşturulması için de 2.satırın çizgisinden 3.satır çizgisine kadar ki alanı çizdireceğiz.

 

Adım 4:  .sol  bölümü için 1.sütun çizgisinden başlayıp 2.sütun çizgisine kadar ki 350px genişliğindeki ilk sütunu ve .sag içinde 2.sütun çizgisinden başlayıp 3.sütun çizgisine kadar ki 720px genişliğindeki alanı seçiyoruz. Aynı şekilde her iki nesnenin şimdlik genişliğini 300px olarak ayarlayıp  3. satırda olduğunu ifade ediyoruz.

 

 

Adım 5Son etiket ve tüm css kodları aşağıdaki gibi oluşacaktır. Oluşan sayfanın ekran görüntüsü de aşağıdaki gibi oluşur.

HTML:

 

CSS:

 

CSS Grid Şabolunun Alanları İsimlendirerek Oluşturulması

CSS Grid Layout özelliklerinin bize sunduğu güzelliklerden biri de şablon yerleşimlerine isim vermektir. Bu özellik sayesinde tasarımları her şekilde esnetmek mümkün olmaktadır. Şablon alanlarına isim vererek grid-column-startgrid-column-end, grid-row-startgrid-row-end gibi özellikleri kullanamadan bölümleri yerleştirmek mümkündür.

Bu işlem için tek yapılması gereken Grid şablonuna grid-template-areas  özelliğini yerleştirip aşağıdaki tasarıma uygun olarak şablonu şu şekilde çıkarmaktır.

Yukarıdaki gibi şablonu oluşturduktan sonra şablonun parçalarını oluşturacak alanlara şablonda ki isimleri  grid-area özelliği ile vermektir. Bu özellik kullanıldığında grid-column-startgrid-column-end, grid-row-startgrid-row-end özelliklerine gerek kalmayacaktır.

Şablonun yeni CSS kodları şu şekilde oluşacak ve sadeleşecektir.

 

 

Menü ve diğer bölümlerin oluşturulması

HTML: Alt bölümler dahil tüm kodlar aşağıdaki gibi oluşturulmuş oldu.

CSS:

 

 

 

 

 

 

 

 

Yorum Yap