26 Mayıs 2012 Cumartesi

HTML ve XHTML - Intro

Merhaba arkadaşlar.
Bu yazım bir nevi "XML Intro" makalemin devamı niteliğindedir.Bildiğiniz üzere "markup language" (işaretleme dilleri) ne "XML Intro" makalemde giriş yapmıştım. Bu makalemde de diğer bir işaretleme dili olan HTML işaretleme dilini inceleyeceğiz. Html ve xml işaretleme dillerinin, yine bu dillere çok benzer xHtml diliyle olan benzerliklerini ve farklılıklarını inceleyeceğiz.

  • HTML (Hyper Text Markup Language)

Açılımının anlamı "yüksek metin işaretleme dili" dir. Programlama dili değildir, çünkü sadece Html dilinin çalışabilen bir yapısı yoktur. Diğer programlar tarafından yorumlanabilir. Yine Xml in tasarımcısı Tim Berners Lee tarafından Isviçre 'nin Cern kentinde tasarlanmıştır. Internet üzerinden text, resim, müzik, video gibi değişik tipteki verilerin nasıl taşınması gerektiğini belirtmek için kullanılan bir işaretleme dilidir. Browser lar bu html dosyalarını yorumlayarak son kullanıcıya web sayfasını gösterirler. Tüm browser ların bir html sayfasını okuyabilmesi için belirli bir standatı verdır. Html de bize bu standartı sağlar. Fakat yine de her browser ın bir HTML sayfasını yorumlama şekli kasıtlı olarak farklı olabilir.

Html sayfası sunulur ve daha sonra bu sayfayı okumak isteyenler okur. Yani bir publisher (yayıncı) birden fazla da subscriber (abone) vardır. Html in çıkış amacıda zaten Tim Berners Lee 'nin makalelerini yayınlamak ve paylaşmak istemesiydi. Önceleri intranetti daha sonra 1989-90 yıllarında tüm www tarafından erişilebilidi. Yayını yapan kişi yazının bazı yerlerini bold, italik vs.. yapmak isteyebilir. Yada başlık kullanmak isteyebilir. 

Bir html çıktısı birden fazla sayfanın bağlanmasıyla da üretilebilir. Ve bileşenlerinde "ccs, javascript, jquery" gibi öğerler de barındırabilir. "Client Side" tarafından "Server Side" tarafına yapılan "get request" (istek), sunucuda sayfanın oluşmasını sağlar. Oluşan sayfa bileşenleriyle birlikte bir "Html" sayfasına "render" edilir ve gelen isteğe karşı "response" (tepki yada yanıt) verilmiş olur. Ayrıca "page life cyle" makalemde bu süreci anlatacağım.

Html dosyaların aktarımı için HTTP (Hyper Text Transfer Protocol) protokolü kullanılır. Html sayfalar sunucuda .html yada .htm uzantılı olarak kaydedilir. Fakat eğer browser da görüntülenen kaynak, aynı makinedeki bir dosya sisteminden okuyorsam ftp protocol u görünecektir. Asp.net development tools yayınlar, biz de erişebiliriz. Localhost sunucuyu ve port u gösterir. Normalde 80 nolu internet portundan yayınlanır ama kendi makinemizde çalışıyorsak, hem sunucu hem de istemci olduğumuzdan dolayı (localhost), farklı gösterecektir.

Xml de bir kök element olurdu ve bu kök elementin altında birçok element olurdu. Html de ise kök element html tag idir. Aşağıdaki gibi bir html dosyası ekliyorum.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
       <head>
             <title></title>
       </head>
       <body>
      
       </body>
</html>
Html kök elementinin altında iki tane alt element bulunur. "Head" ve "Body" elementleri olmak üzere. Head elementinde, sayfanın browserdaki başlağı (<title>Gaffar Salkım</titleyazarsak browser daki başlık"Gaffar Salkım" olacaktır.), site bilgileri, meta (temel) bilgiler, sayfanın kullandığı diğer document ler (css, javascript, jquery gibi..), arama mototuna verilen diğer komutlar, indexler, görünmeyen ama sayfa ile ilgili direktifler verilir. Body de ise yayınlamak istediğimiz verileri bulunur.
<head>
    <title>Yazılımda Son Nokta</title>
    <meta name="author" content="Gaffar Salkım />
    <meta name="description" content="Bu site bir başka site" />
    <meta name="keywords" content="c#, programlama, web, html, xHtml, css, javascript" />
</head>
 Yukarıdaki meta bilgileri tamamiyle arama motorlarına yardımcı olmak için kullandığımız bilgilerdir. Bu bilgiler sayesinde anahtar kelimelerimizi, site yazarını, sitede kullanılan teknolojileri gibi, tüm meta bilgileri sitenizin "Head" tegleri içerisinde kullanabilirsiniz.

Her yazı tipinin, şeklinin, boyutunun, altsatırın, boşluğun vs.. gibi ifadelerin Html de bir karşılığı vardır. Şimdi gelin bu standartlar bir gözatalım.
Altsatıra geçmek için satır sonunda "br" (breaking return) tag i kullanılır:
 <body>
     Gaffar Salkım<br />    
 </body
kullanılırHtml document içerisinde başı boş bir metnin olması önerilmez. Bu metin "span" teglerine alınabilir.Bu teg c sharp kontrollerindeki Label dır.Label lar Html e render edildiğinde span olarak dönüştürülürler. Yada metnimi "p" (paragraf) teglerine de alabilirim.
<span>Gaffar Salkım</span>
 <p>Gaffar Salkım</p>

6 çeşit başlık boyutu vardır. "h1" en büyük, "h6" (h-header) en küçüktür. Ne kadar bir kısıtlama olarak görünse de web browser ları için "SEO" (Search Engine Optimization - Arama Motoru Optimizasyonu) için gerekli bir standart oluşturmada faydalıdır.
    <h1>
        gaffar salkım</h1>
    <h2>
        gaffar salkım</h2>
    <h3>
        gaffar salkım</h3>
    <h4>
        gaffar salkım</h4>
    <h5>
        gaffar salkım</h5>
    <h6>
        gaffar salkım</h6>
 Çıktısı ise;
şeklindedir.

 Html document i içerisinde yazdığınız yazılarda kelimeler arası bir boşluk koymak istediğinizde hiç bir html ifadesi kullanmanıza gerek yoktur. 
<body>
    Gaffar Salkım
</body>
Fakat birden fazla boşluk koymak istiyorsanız, boşluk başına "&nbsp;" (non-breaking space) keyword unu kullanmalısınız. Örneğin iki boşluk koymak istiyorum. Ya böyle yapabiliriz:
<body>
    Gaffar&nbsp;&nbsp;Salkım
</body>
 yada
<body>
    Gaffar&nbsp; Salkım
</body>
şeklinde bir "space" hakkımızı da kullanarak yazabiliriz. 

Metnimizin italik olması için i (italic) tegleri arasında, kalın olması için b (bold) tegleri arasında, altı çizili olması için u (underline) tegleri arasında yazmalıyız. 
       <i>gaffar salkım</i> 
       <u>gaffar salkım</u> 
       <b>gaffar salkım</b>
gaffar salkım gaffar salkım gaffar salkım

Metnimizin hem italik, hem de bold olması için:
       <i><b>gaffar salkım</b></i>
yada
       <b><i>gaffar salkım</i></b>
şeklinde yazmalıyız.
gaffar salkım

"strong" tegi "bold" tegine çok benzerdir, yazı tipine göre benzerlik azalı yada artar. Makalede vurgulanmak istenilen metinler bu teg arasında yazılmalıdır. "small" küçük, "big" tagi ise metni büyük bir font size ile yazar.
       <strong>gaffar salkım</strong>  
       <small>gaffar salkım</small> 
       <big>gaffar salkım</big><br />
gaffar salkım gaffar salkım gaffar salkım

"cite" tegi makalelerde alıntıyı belirtmek için kullanılır. İtalik bir fonta sahiptir. Yazı rengi ve fontu da farklıdır. 
       <cite>Bu bir alıntıdır.. </cite>
Bu bir alıntıdır.. 

Bir paragraf şeklinde bir alıntı yapılacaksa "blockquote" (blok alıntı) tegi kullanılır. Girintili bir şekilde belirtilir.
<blockquote>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras luctus quam 
    imperdiet sit amet pretium elit lobortis. Integer nulla augue, elementum 
    in, dapibus et ligula. Nunc augue enim, cursus id facilisis at, lobortis 
    Aliquam convallis sollicitudin pretium. Pellentesque a tincidunt est.
    turpis.
</blockquote>
Source tarafta "pre" teglerine yazılan girintili bir metin, design tarafında da aynı o şekil girintili bir şekilde görünür.
    <pre>
         Lorem
            ipsum dolor sit amet,
                     consectetur adipiscing elit.
     Cras luctus quam at libero
    </pre>
 Design da <br/> yazmak istersem, "&lt;(less than)=<" ile "&gt;(greater than)=>" işaretlerini kısaltılmış bir şekilde yazmalıyım:
&lt;br/&gt;
Metni sağdan sola yazmak istersek "bdo" tegleri arasında "dir" (direction) attribute değerine "rtl" (right to left) vererek yazabiliriz. Yine "ltr" (left to right) diyerek duz yazabiliriz.
<bdo dir="rtl">gaffar salkım</bdo>
mıklas raffag

Bir kod örneği paylaşmak istiyorsak "code" ve "pre" tegleri içerisine yazdığımız kodlar aynı şekilde görünecektir.
<code>
  <pre>
    public class Category
    {
        public int Id { get; set; }
        public string CategoryName { get; set; }
        private List&lt;Book&gt; _book;
        public List&lt;Book&gt; Books
        {
            get
            {
                return _book = _book ?? new List&lt;Book&gt;();
            }
            set
            {
                _book = value;
            }
        }
    }
  </pre>
</code>

"Abbr" tegi, içerdiği kelimenin, bir kelime veya kelimelerin kısaltılmış hali olduğunu belirtir. Bununla birlikte baş harflerinden oluşan kısaltma tanımlanmasını sağlayan "acronym" tegine HTML 5 te hiç yer verilmediği için kısaltmalarda "abbr"  kullanılması tavsiye olunmuştur.
<abbr title="Eğitmen">gaffar salkım</abbr>
<acronym>gaffar salkım</acronym>

"center" tegleri arasındaki öğeler tahmin edildiği üzere sayfanın ortasında yer alırlar.
<center>
    Gaffar Salkım
</center>

"tt" tegi tele type fontu ile yazıldığını belirtir. Bu teg ve aşağıdaki tegler genelde program kodları göstermek için kullanılır.
<code>Bilgisayar kod yazısı
<kbd>Klavye yazısı
<samp>Örnek bilgisayar kod yazısı
<tt>Defines teletype text
<var>Bir değişken/kararsız yazı
<pre>Biçimlendirilmiş yazı
<tt>Teletype text</tt>
 Teletype text

"sub" tegi, altyazı, "suo" tegi ise üst yazı belirtir.
H<sub>2</sub>O X<sup>2</sup>+Y<sup>2</sup>=1
H2O X2+Y2=1
"dl" tegi terim listesi oluşturmamızı sağlar. "dl" tegleri içerisinde "dt" teginde terim, "dd" teginde ise açıklaması yazılır. Böylece açıklamalar girintili bir yapı şeklinde görünür.
<dl>
      <dt>Terim1</dt>
      <dd>Terim1 açıklama</dd>
      <dt>Terim2</dt>
      <dd>Terim2 açıklama</dd>
</dl>
Terim1
Terim1 açıklama
Terim2
Terim2 açıklama

  • XHTML (Extensible HTML )

XHTML, Html 4.0 dilinin Xml 1.0 dilindeki extensible (genişletilebilirlik) ilkesine göre yeniden düzenlenmiş halidir. 20 Ocak 2000 de W3C tarafından bir web standartı olarak kabul edilmiştir. Html in hemen hemen aynısı olmasına rağmen kodlamada farklılıklar vardır. Genişletilebilir olduğundan dolayı yeni elementler eklenebilir. 

Html e göre daha kesin kurallar konulmuştur. Html de bir tag i açtıktan sonra kapatmasak da olurdu ve attribute lerde değer verirken tırnak kullanmasak da, tek tırnak kullansak da olurdu. Fakat xHtml de bir tag açılmışsa mutlaka kapanmalıdır. Vaya atrribute değeri mutlaka çift tırmakla verilmelidir. İlk açılan element son kapanmalıdır. Bu da şu anlama gelmektedir ki standartlaşma daha iyi olduğundan dolayı, hızlı okuma gibi avatajlar sağlanmıştır. XHtml deki elementlerin özellikleri ve nerelerde kullanılabileceği DDT dosyasında belirlenmiştir. Ayrıca Html den farklı olarak, bu kesin standartlaşma sayesinde, XHtml deki bilgiler başka amaçlarla da kullanılabilir. Örneğin bir XHtml dökümanı Xslt sayesinde pdf formatına dönüştürülebilir.

XHtml, herhangi bir xml i okuyan editör ile editlenebilir. Namespace kullanarak, bir xml dökümanın içerisinde  
başka bir xml dökümanından element kullanılabilir. XHtml de bu geçerlidir.

Bir XHtml dökümanını oluştururken yine Html deki gibi bir Html root elementi olmalıdır. Ayrıca xmlns (xml namespace) attribute u ileXHtml namespace i belirtilmelidir. 

<html xmlns="http://www.w3.org/1999/xhtml">

XHtml de de büyük-küçük harf duyarlılığı vardır. Ama element isimleri ve attribute ler küçük harf olmalıdır. 

Başka bir yazıda görüşmek dileğiyle, hoşçaklın..

Hiç yorum yok:

Yorum Gönder