CSS ile %100 Genişlik ve %100 Yükseklite Sayfa İskeleti Hazırlama

Gelişen teknolojiyle birlikte ekran boyutları artıyor ve sayfalar daha fazla yer kaplaması için artık tasarımlarda eskiye nazaran daha geniş ekran genişlikleri kullanılıyor. Eskiden sayfalarımızı 800×600 genişlik için 760 piksel genişliğinde tasarlardık. Son zamanlarda 1024×768 (960 px)göre tasarımlar yapılmaktadır. Web tarayıcılarının tüm alanını kullanmak için elastik sayfalar kodlanıyor artık. Bana da genişliği %100 ve yüksekliği %100 lazım oldu. Aradım bulamadım bulduklarımın birleştirip böyle bir sayfa elde ettim. Belki sizede lazım olur diye buraya yazayım dedim.

Aslında yüksekliğin %100 olması alt alanın web tarayıcısının alt kısmına yapıştırılması ile elde ediyoruz.
İki Kolonlu Yapı

İki Kolonİlk olarak başlığı, iki kolonlu içeriği(solda menü, sağda içerik) ve alt kısmı olan bir sayfa iskeleti oluşturalım. Burada sol menü alanının genişliğini sabit tutup sağdaki içerik alanının genişliğini esnek yapacağız. Xhtml kodu:

01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02 <html xmlns="http://www.w3.org/1999/xhtml">
03 <head>
04 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
05 <title>%100 Genişlik %100 Yükseklik ? İki Kolon</title>
06 <style type="text/css">
07 <!--
08 @import url("style/iki_kolonlu_yuzdeyuz.css");
09 -->
10 </style>
11 </head>
12 <body>
13 <div class="kapsul">
14 <div id="ustAlan"> üst alan
15 </div>
16 <div id="solAlan">Menü</div>
17 <div id="icerikAlani">
18 Lorem ipsum dolor sit amet, ..., tempor at, sem.
19 <p>Sed adipiscing, ... in ligula. </p>
20 </div>
21 <div class="tampon"></div>
22 </div>
23 <div id="altAlan">
24 <p>Alt Kısım</p>
25 </div>
26 </body>
27 </html>

CSS Kodu

01 * {
02 margin: 0;
03 }
04 html, body {
05 height: 100%;
06 font-size:62.5%;
07 font-family:Arial, Helvetica, sans-serif;
08 }
09 body{
10 background:#F78200 url(../images/genel_zr.gif) top left repeat-y;
11 }
12 /* usalan tanimlari */
13 #ustAlan {
14 height: 6.4em;
15 background-color:#CCCCCC;
16 }
17 /* icerik alani */
18 .kapsul {
19 min-height: 100%;
20 height: auto !important;
21 height: 100%;
22 margin: 0 auto -4em; /* altAlan yukseklik degeri ile ayn olmali */
23 }
24 #solAlan
25 {
26 float: left;
27 clear:both;
28 width: 15em;
29 height: 15em;
30 margin-bottom: 1em;
31 }
32 #icerikAlani
33 {
34 margin: 0 0 1em 16em;
35 font:1em Arial, Helvetica, sans-serif;
36 }
37 #altAlan, .tampon {
38 height: 4em; /* .tampon ile altAlan yuksekligi ayni olmali */
39 }
40 #altAlan{
41 text-align:center;
42 color:#036;
43 background-color:#cfc;
44 }

Örnek kodu görmek için tıklayınız.

Burada değinmemiz gereken önemli alanları belirtelim. .kapsul alanındaki tanımlarda 100% yüksekliği yakalamak için yükseklik değerine birden fazla tanımlama yapılmıştır. Buradaki amaç Firefox ve IE için aynı sonucu elde etmektir. Kapsul?ün Alt margin değeri #altAlan değerinin eksi değeri olarak atayarak kapsul alanının altAlan üzerine kaymasını engelliyoruz.

İçerik Alanı(#icerikAlani) genişliğinin esnek olması için bir genişlik tanımı yapmıyoruz ve soldaki alanın sınırlarına girmemek için margin değerini #solAlan içeriği kadar + 1em boşluk veriyoruz.

Alt alanın web tarayıcısının küçültülmesi durumunda veya düşük ekran çözünürlüklerinde içerik alanı üzerine çıkmaması için araya #altAlan yüksekliği kadar .tampon bir katman koyuyoruz. Burada anlamlı(semantik) kod yazma kuralının dışına çıkıyoruz ama bu kadar kusur kadı kızında da olur.:D

Üç Kolonlu Yapı

Üç kolonŞimdide 3 kolonlu olanını yapalım. İki kolonlu ile üç kolonlu arasında pek bir fark yoktur aslında. Sadece .icerikAlani tanımında bir iki değişiklik ve sağ alan eklemesi yapılmıştır. Ayrıca kapsul içine bir sağa dayalı bir zemin resmi daha koyarak sağ kolonun zemini yeşil yapılmıştır. Yapılan değişiklikler kalın olarak işaretlenmiştir.

Xhtml kodu:

01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02 <html xmlns="http://www.w3.org/1999/xhtml">
03 <head>
04 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
05 <title>%100 Genişlik %100 Yükseklik ? İki Kolon</title>
06 <style type="text/css">
07 <!--
08 @import url("style/iki_kolonlu_yuzdeyuz.css");
09 -->
10 </style>
11 </head>
12 <body>
13 <div class="kapsul">
14 <div id="ustAlan"> üst alan
15 </div>
16 <div id="solAlan">Menü</div>
17 <div id="sagAlan">
18
19 <p>Sağ Alan </p></div>
20 <div id="icerikAlani">
21 Lorem ipsum dolor sit amet, ... sem.
22 <p>Sed adipiscing, ... ligula. </p>
23 </div>
24 <div class="tampon"></div>
25 </div>
26 <div id="altAlan">
27 <p>Alt Kısım</p>
28 </div>
29 </body>
30 </html>

CSS Kodu

01 * {
02 margin: 0;
03 }
04 html, body {
05 height: 100%;
06 font-size:62.5%;
07 font-family:Arial, Helvetica, sans-serif;
08 }
09 body{
10 background:#F78200 url(../images/genel_zr.gif) top left repeat-y;
11 }
12 /* usalan tanimlari */
13 #ustAlan {
14 height: 6.4em;
15 background-color:#CCCCCC;
16 }
17 /* icerik alani */
18 .kapsul {
19 background:url(../images/sag_zr.gif) right top repeat-y;
20 min-height: 100%;
21 height: auto !important;
22 height: 100%;
23 margin: 0 auto -4em; /* altAlan yukseklik degeri ile ayn olmali */
24 }
25 #solAlan{
26 float: left;
27 clear:both;
28 width: 15em;
29 height: 15em;
30 margin-bottom: 1em;
31 }
32 #icerikAlani
33 {
34 margin: 0 16em 1em 16em;
35 font:Arial, Helvetica, sans-serif;
36 }
37 #altAlan, .tampon {
38 height: 4em; /* .tampon ile altAlan yuksekligi ayni olmali */
39 }
40 #altAlan{
41 text-align:center;
42 color:#036;
43 background-color:#cfc;
44 }
45 /* 3 kolon lu yapi */
46 #sagAlan
47 {
48 float: right;
49 width: 15em;
50 }

Örnek kodu görmek için tıklayınız.

Kodlar IE6, IE7 ve FF da denenmiştir.

Kaynak:

Kaynak : Fatih HAYRİOĞLU, CSS dersleri

Bana Ders Anlat © 2008-2022