Web sitelerini oluşturmaya başlamak için, belge içinde yer alan farklı içerik öğelerini, sayfa akışını oluşturabilmek içinse hangi HTML öğelerinin ne şekilde görüntülendiği hakkında biraz bilgi sahibi olmamız gerekir.
Web tarayıcıları her HTML öğesini bir kutu gibi ele almaktadır. Ancak bu tarayıcılar öğelerin anlam doğası gereği, tüm kutuları aynı şekilde sayfanıza yerleştirmezler. Her HTML öğesinin, kendi türüne bağlı olarak varsayılan bir görüntüleme değeri vardır.
Çoğu öğenin varsayılan görüntü değeri block veya inline şeklindedir:
- Block Level : Blok Seviyesi Etiketler
- Inline Level : Satır İçi Etiketler
Blok Seviyesi Etiketler
Bir blok düzeyi eleman her zaman yeni bir satıra başlar ve mevcut olan tüm satır genişliği alır. (mümkün olduğunca sola ve sağa doğru uzanır) Bir blok, diğerinin üstünde istiflenir ve mevcut genişliği tamamen işgal eder. Blok düzeyindeki öğeler birbirinin içine yerleştirilebilir ve satır içi düzeydeki öğeleri sarabilir. Çoğu zaman, paragraflar gibi daha büyük içerik parçaları için kullanılan blok düzeyinde öğeler görürüz.
Blok Seviyeli öğelerden bazıları aşağıda listelenmiştir.
- <div>
- <hx>
- <p>
- <table>
- <ul>,<ol>,<dl>,<li>
- <form>
- <header>
- <footer>
- <section>
Satır İçi Etiketler
Satıriçi bir öğe yeni bir satıra başlamaz. Bir belgenin normal akışına girer, birbiri ardına sıralanırlar ve yalnızca kendi içeriğinin genişliğini korurlar. Satıriçi düzeydeki öğeler birbirinin içine yerleştirilebilir; Ancak, blok düzeyindeki öğeleri kaydıramazlar.
Satır içi öğelerden bazıları aşağıda listelenmiştir.
- <a>
- <img>
- <span>
- <strong>
- <em>
display Özelliği
CSS display özelliği bir öğenin nasıl görüntüleneceğini belirtir. Sayfanın akışı HTML öğelerinin yerleşimi ile olur. Belirtildiği gibi, her öğenin varsayılan görüntü değeri vardır. Ancak özgün tasarımlarımızı yapabilmek için öğelerin bu varsayılan görüntü değerlerini değiştirmemiz gerektiği durumlar olabilir. Böyle durumlarda display özelliği kullanılarak örneğin satır içi bir öğeyi bir blok öğesine veya tersine değiştirme, sayfayı belirli bir şekilde görünmesi için yararlı olabilir. display özelliğinin alabileceği değerler aşağıda verilmiştir.
- none
- inline
- block
- inline-block
display : inline;
Blok seviyeli öğelere uyguladığınızda satır içi davranışı gösterirler.
Örnek;
En yaygın örnek, <li>ile yatay menüler için satır içi öğeler hazırlamaktır; Aşağıdaki gibi bir CSS ile <li> öğeleri kullanarak basit bir menü yapabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<!DOCTYPE html> <html> <head> <style> li { display: inline; } </style> </head> <body> <p>CSS Display ile menü yapabilirsiniz</p> <ul> <li><a href="yazilimbilisim.net" target="_blank">HTML</a></li> <li><a href="yazilimbilisim.net" target="_blank">CSS</a></li> <li><a href="yazilimbilisim.net" target="_blank">JavaScript</a></li> </ul> </body> </html> |
<li> öğeleri normal görüntüleme değeri blok yapıdadır. Bu yüzden standart olarak <li> alt alta sıralanırlar. Blok oldukları için her bir <li>öğesi yeni satırda başlar. Ancak display özelliğine inline değeri vererek <li> etiketini satır içi duruma getirebilirsiniz. Aşağıdaki ekran çıktısında görüldüğü üzere öğeler satır içi davranış gösterecek ve yan yana sıralanacaklardır.
display : block;
Satır içi HTML öğelere uyguladığınızda sayfa akışı içinde blok seviyeli öğeler gibi davranış gösterirler.
Örnek;
Aşağıdaki örnek, <a> öğelerini blok öğeleri olarak görüntüler:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<!DOCTYPE html> <html> <head> <style> a { display: block; } </style> </head> <body> <p>CSS Display Kullanımı</p> <a href="yazilimbilisim.net" target="_blank">HTML</a> <a href="yazilimbilisim.net" target="_blank">CSS</a> <a href="yazilimbilisim.net" target="_blank">JavaScript</a> </body> </html> |
display : none;
HTML öğelerini, silinmeden veya yeniden oluşturmadan, gizlemek veya göstermek için genellikle JavaScript ile sıklıkla kullanılır. Bir öğeyi gizlemek için “display:none” CSS bildirimini kullanmanız yeterlidir. Öğe gizlenecek ve sayfanız, öğe yokmuş gibi görüntülenecektir.
Örnek;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!DOCTYPE html> <html> <head> <style> h1.hidden { display: none; } </style> </head> <body> <h1>CSS display kullanımı</h1> <h1 class="hidden">Bu Gizli Bir Başlıktır.</h1> <p>Bu belgede bir başlık bulunmaktadır. Ancak onu görememektesiniz.</p> </body> </html> |
Buna benzer olarak CSS’te kullanılan visibility özelliği vardır. visibility özelliğine atanacak olan hidden değeri uygulanan HTML öğesini görünmez yapar. Ancak “display:none” kullanımından farkı öğe gösterilmiyor olsa da sayfa akışı içinde yerini muhafaza eder.
Örnek;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!DOCTYPE html> <html> <head> <style> h1.hidden { visibility: hidden; } </style> </head> <body> <h1>CSS display kullanımı</h1> <h1 class="hidden">Bu Gizli Bir Başlıktır.</h1> <p>Bu belgede bir başlık bulunmaktadır. Ancak onu görememektesiniz.</p> </body> </html> |
Örnek;
Aşağıdaki örneğimizde display özelliğini Javascript ile kontrol ederek, tıklamayla bir öğeyi göstermek için CSS ve JavaScript’in nasıl kullanılacağını göstermektedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<!DOCTYPE html> <html> <head> <style> #panel , .buton{ font-size: 16px; padding: 10px; text-align: center; background-color: #33c1ff; color: white; border: solid 1px #000000; margin: auto; } #panel { display: none; } </style> </head> <body> <p class="buton" onclick="myFunction()">Panel'e Tıklayınız</p> <div id="panel"> <h3>Lorem Ipsum Nedir?</h3> <p>Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur.</p> </div> <script> var i=0; function myFunction() { i++; if(i%2==0){ document.getElementById("panel").style.display = "block";} else{ document.getElementById("panel").style.display = "none"; } } </script> </body> </html> |
display : inline-block;
Bir öğeyi hem blok hem de satır içi eleman gibi hareket ettirebilirsiniz. Satır içi blok ayarı, bir öğenin her iki şekildeki görüntülenme etkilerine sahip olduğunu ifade eder. Bu özellik aslen satır içi gibi davranması istenen bir elemanın sahip olamayacağı margin, padding, width, height gibi özelliklerin işlevsel hale gelebilmesini sağlamaktadır. Bir örnekle inceleyelim;
Örnek;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!DOCTYPE html> <html> <head> <style> span.bir{ background-color: chartreuse; border: 1px solid green; margin: 20px; } span.iki{ background-color: green; border: 1px solid green; margin: 20px; padding: 20px; } span.uc{ background-color: mediumaquamarine; border: 1px solid green; margin: 20px; padding: 20px; width: 100px; height: 100px; } span.dort{ display: inline-block; background-color: red; border: 1px solid green; margin: 20px; padding: 20px; } </style> </head> <body> <p>Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. <span class="bir">Beşyüz yıl boyunca</span>Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur.</p> <p>Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. <span class="iki">Beşyüz yıl boyunca</span>Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur.</p> <p>Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. <span class="uc">Beşyüz yıl boyunca</span>Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur.</p> <p>Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. <span class="dort">Beşyüz yıl boyunca</span>Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur.</p> </body> </html> |
Yukarıdaki örnek incelendiğinde, bir paragrafın içinde satır içi olarak bilinen <span> öğesine margin, padding, width, height özelliklerini CSS ile değiştirmeye çalıştığımızda uygun davranışlarda bulunmadığı, ancak bu durumun son paragrafta display özelliğine inline-block değeri verilerek, hem satır içi kalması hem de bir blok öğesi gibi stilden etkilenmesi sağlanmıştır.
Örnek;
display Özelliği kullanarak sayfa düzeni yapmak mümkündür.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<!DOCTYPE html> <html> <head> <style> code { background: #2db34a; border-radius: 6px; color: #fff; display: block; font: 14px/24px "Source Code Pro", Inconsolata, "Lucida Console", Terminal, "Courier New", Courier; padding: 24px 15px; text-align: center; } header, section, aside, footer { margin: 0 1.5% 24px 1.5%; } section { display: inline-block; width: 30%; } footer { margin-bottom: 0; } </style> </head> <body> <header> <code><header></code> </header> <section> <code><section> <br> display: <br> inline-block;</code> </section><section> <code><section> <br> display: <br> inline-block;</code> </section><section> <code><section> <br> display: <br> inline-block;</code> </section> <footer> <code><footer></code> </footer> </body> </html> |
[…] CSS Display Kullanımı […]