Bootstrap grid sistemi bir sayfayı 12 eşit parçaya ayrılmış kolonlar olarak tasarlanmıştır. Eğer 12 kolon kullanılmak istenmiyorsa bu kolonlar istenildiği gibi birleştirilebilir. Bootstrap kolonları ekranın boyutuna göre otomatik değişen duyarlı kolonlardır.

span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1
 span 4  span 4  span 4
span 4 span 8
span 6 span 6
span 12

 

Bootstrap grid sistemi 4 class içerir:

  • xs (for phones)
  • sm (for tablets)
  • md (for desktops)
  • lg (for larger desktops)

Daha esnek ve dinamik görünümler için bu classlar kombine edilebilir.

Bootstrap Grid Sistemin Temel Yapısı:

<div class=”row”>
<div class=”col-*-*”></div>
</div>
<div class=”row”>
<div class=”col-*-*”></div>
<div class=”col-*-*”></div>
<div class=”col-*-*”></div>
</div>
<div class=”row”>

</div>

 

İlk olarak bir row oluşturulur. (<div class="row">) Sonra bu row içinde olan kolonlar için istenen kolon sayısı kadar .col-*-* classı ile tanımlama yapılır. Dikkat burada col değerlerinin toplamı 12 olmalıdır.

 

Örneğin 3 eşit parçaya ayrılmış bir satır için col-sm-4 kullanılmalıdır.

<div class=”row”>
<div class=”col-sm-4″>.col-sm-4</div>
<div class=”col-sm-4″>.col-sm-4</div>
<div class=”col-sm-4″>.col-sm-4</div>
</div>

 

Örneği sayfanın toplamda 2 kolona, sağdaki kolonun genişliğinin soldaki kolunun 2 katı olacak şekilde tasarlanması için col-sm-4 ve col-sm-8 kullanılmalıdır.

<div class=”row”>
<div class=”col-sm-4″>.col-sm-4</div>
<div class=”col-sm-8″>.col-sm-8</div>
</div>

 

.col-xs-$ Extra Small Phones Less than 768px
.col-sm-$ Small Devices Tablets 768px and Up
.col-md-$ Medium Devices Desktops 992px and Up
.col-lg-$ Large Devices Large Desktops 1200px and Up

 

Sayfa Örneği

Örnek Görünüm

Bootstrap nedir?

Bootstrap web, tablet ve telefonlar için geliştirilmiş HTML, CSS ve Javascript kütüphanesidir. Teknolojinin gelişmesiyle birlikte son yıllarda hayatımıza giren tablet ve telefonlarla farklı ekran boyutları ortaya çıkmıştır. İşte bu ekran boyutlarında web sayfalarının görüntülenmesi çok zor bir hal almıştır. Farklı çözünürlükteki ekranlar için ortak bir tasarım yapma ihtiyacı gerekmektedir. Bu noktada yardımımıza responsive tasarım dediğimiz ekrana göre görünüm boyutlarını değiştiren, ekrana sığmayıp taşan ve görüntülenemeyen nesnelerin aşağı kaydırılarak gösterilmesini sağlayan responsive tasarım geliştirmemize yardımcı olan kütüphanelerden en yaygın olan Bootstrap ile tanışıyoruz. Küçük telefonlardan büyük ekranlara kadar tüm cihazlar üzerinde iyi bir görünüm için otomatik boyut ayarlaması yapan tasarıma responsive tasarım denir.

 

Bootstrap daha hızlı ve kolay web sayfaları tasarlamamız için geliştirilmiş ücretsiz bir frameworktür.

Bootstrap form, button, tablo, menü, modal, resim, slayt ve daha bir çok HTML, CSS ve Javascript şablonu içerir.

Bootstrap farklı çözünürlüklere sahip ekranlar için ortak tasarım geliştirmemizi ve ekran çözünürlüklerine göre dinamik tasarımlar yapmamızı sağlar.

Twitter ekibinden Mark Otto ve Jacob Thornton tarafından Github üzerinde Ağustos 2011’de açık kaynak kod olarak geliştirilmiştir.

 

Bootstrap’in Avantajları:

Kolay Kullanım: Temel düzeyde HTML ve CSS bilen herkes kolayca Bootstrap öğrenebilir.

Duyarlı Tasarım: Telefon, tablet ve masaüstü ekranlar için responsive tasarım sağlar.

Mobil Yaklaşım: Son yıllarda hayatımızın her alanında yer alan mobil cihazlara uygundur.

Tarayıcı Uyumlu: Chrome, Firefox, Internet Explorer, Safari, ve Opera gibi birçok tarayıcı için uyumludur.

 

Bootstrap Nasıl Kullanılır?
Bootstrap kullanmanın iki yolu vardır:

Birinci yol: Bootstrap kütüphaneleri getbootstrap.com adresinden indirilerek projelere referans eklenebilir.

İkinci yol: Bootstrap CDN (Content Delivery Network) dediğimiz dünyanın bir çok yerinden kullanıma açılan tarayıcıların çalışma anında bulut sunuculardan referans ekleme olayıdır. Bu referans bir kere tarayıcıya yüklenip cache olarak saklanır ve bir sonraki girişte yüklenmesine gerek kalmadığından iyi performans sağlar.

 

Bootstrap’i kullanabilmek için Bootstrap’in CSS ve Javascript dosyalarını aşağıdaki gibi projemize referans eklemeliyiz.

<!– Latest compiled and minified CSS –>
<link rel=”stylesheet” href=”http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css”>

<!– jQuery library –>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”></script>

<!– Latest compiled JavaScript –>
<script src=”http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js”></script>

 

Bootstrap Kulanarak İlk Web Sayfamız:

1-HTML5 doctype’ın eklenmesi:

Bootstrap HTML elementlerini ve CSS özelliklerini HTML5 doctype ile birlikte kullanır.

Her zaman lang özniteliği ve doğru bir karakter seti ile birlikte sayfanın başında HTML5 doctype kullanılır.

<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”utf-8″>
</head>
</html>

2-Mobil uyumluluğun ayarlanması:

Bootstrap 3 mobil cihazlara duyarlı olacak şekilde tasarlanmıştır. Mobile-first stili core fremawork’ün bir parçasıdır.

Dokunmatik yakınlaştırma ve mobil uyumluluğu sağlamak için aşağıdaki meta tag’ını head elementine eklememiz gerekir.

Meta viewport elementinin bazı özellikleri aşağıda listelenmiştir:

  • width : Piksel olarak verilen viewport genişliği. Değer olarak device-width ile cihazın ekran genişliği de verilebilir
  • height: Piksel olarak verilen viewport yüksekliği. Değer olarak device-height ile cihazın ekran yüksekliği de verilebilir
  • initial-scale: Sayfayı ilk gösterilirken ne kadar ölçekli (scale) olarak verileceği. Örneğin 1.0 değeri verilirse başlangıç görünütüsü ölçeklenmeden gösterilir. 0 ile 10.0 arası bir değer olabilir
  • minimum-scale: Kullanıcının en çok yapabileceği zoom out (küçültme) oranı.
  • maximum-scale: Kullanıcının en çok yapabileceği zoom in (büyültme) oranı.
  • user-scalable: Kullanıcının ölçekleme veya zoom yapıp yamamayacağını vermek için kullanılır. yes veya no değerini alır ve varsayılan olarak yes değerini alır

Yukarıdaki özellikler aşağıdaki gibi kullanılmaktadır :

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no”/>

3-İçeriğin ayarlanması:

Sayfa içeriğinin kaydırılması ve uyumlu olması için container element’e ihtiyaç duyar.

.container classı duyarlı sabit bir container sağlar.

.container-fluid classı tüm genişliği kapsayan tam genişlikte bir container sağlar.

Not: container classları iç içe kullanılamaz.

 

Temel Bootstrap Sayfası (Duyarlı sabit genişlikli container):

<!DOCTYPE html>
<html lang=”en”>
<head>
<title>Bootstrap Example</title>
<meta charset=”utf-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<link rel=”stylesheet” href=”http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css”>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”></script>
<script src=”http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js”></script>
</head>
<body>

<div class=”container”>
<h1>My First Bootstrap Page</h1>
<p>This is some text.</p>
</div>

</body>
</html>

Temel Bootstrap Sayfası (Tam genişlikli container):

<!DOCTYPE html>
<html lang=”en”>
<head>
<title>Bootstrap Example</title>
<meta charset=”utf-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<link rel=”stylesheet” href=”http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css”>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”></script>
<script src=”http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js”></script>
</head>
<body>

<div class=”container-fluid”>
<h1>My First Bootstrap Page</h1>
<p>This is some text.</p>
</div>

</body>
</html>

 

 

 

 

 

 

 

 

Öncelikle aşağıdaki fonksiyonu create ediyoruz.

CREATE FUNCTION ProperCase(@OriginalText VARCHAR(8000))
RETURNS VARCHAR(8000)
BEGIN
DECLARE @CleanedText VARCHAR(8000);
with
a1 as (select 1 as N union all select 1 union all
select 1 union all select 1 union all
select 1 union all select 1 union all
select 1 union all select 1 union all
select 1 union all select 1),
a2 as (select 1 as N from a1 as a cross join a1 as b),
a3 as (select 1 as N from a2 as a cross join a2 as b),
a4 as (select 1 as N from a3 as a cross join a2 as b),
Tally as (select top (len(@OriginalText)) row_number() over (order by N) as N from a4)

SELECT @CleanedText = ISNULL(@CleanedText,”) +
–first char is always capitalized?
CASE WHEN Tally.N = 1 THEN UPPER(SUBSTRING(@OriginalText,Tally.N,1))
WHEN SUBSTRING(@OriginalText,Tally.N -1,1) = ‘ ‘ THEN UPPER(SUBSTRING(@OriginalText,Tally.N,1))
ELSE LOWER(SUBSTRING(@OriginalText,Tally.N,1))
END

FROM Tally WHERE Tally.N <= LEN(@OriginalText) RETURN @CleanedText END Sonrasında aşağıdaki gibi fonksiyonu parametremiz ile çağırıyoruz. select dbo.ProperCase('MUSTAFA ALİ DOĞAN')

Javada aritmetik operatörlerde işlem yapılırken byte, char ve short tipinindeki değerler işlem öncesi int tipine dönüştürülür. Değişkenlerden biri long tipinde ise diğer değişken de long tipine dönüştürülür ve sonuc long tipinde olur. Örneğin;

public class Operatorler {

public static void main(String[] args){
byte b1 = 3, b2 = 4, b3;
b3 = b1 + b2;
}
}

 

Yukarıdaki kod parçası derleme sırasında “Type mismatch: cannot convert from int to byte” hatası verir. Yani byte olan b1 ve b2 olan değerler toplanıp byte olan b3 değişkeninde saklanamaz. Byte olan değerler int tipine dönüştürülür ve sonuç int tipindeki bir değişkene atanması gerekir. Aşağıdaki gibi değiştirilirse bu hata giderilir.

public class Operatorler {

public static void main(String[] args){
byte b1 = 3, b2 = 4;
int b3;
b3 = b1 + b2;
}
}

int tipine örnek verdik. Şimdi de long tipine örnek verelim.

 

public class Operatorler {

public static void main(String[] args){
long degisken1 = 4;
int degisken2 = 6, degisken3;
degisken3 = degisken1 + degisken2;
}
}

Yukarıdaki kod paraçasında long olan bir değişken başka bir int değişken ile toplanıp int tipindeki değişkene atanmıştır. Long tipinden daha büyük olan bir değerin long tipinde olan bir değişkende tutulması mümkün olmayacağından “Type mismatch: cannot convert from long to int” hatası alırız. Bu durumu çözmek için ise degisken3 long tipinde olmak zorundadır. degisken2 long türünde olmak zorunda değildir.Ama olursa sorun olmaz. Kod parçası aşağıdaki gibi değiştirilince hata giderilecektir.

public class Operatorler {

public static void main(String[] args){
long degisken1 = 4, degisken3;
int degisken2 = 6;
degisken3 = degisken1 + degisken2;
}
}

Burada degisken2 aritmetik toplama operatörü sırasında otomatik long tipine gizli bir dönüşüm vardır. Daha küçük olan int tipi long tipine dönüştürülce bir sorun olmayacaktır. Aynı durum degisken1 için de geçerlidir. degisken1 long tipindeki veri tipine long tipinde olmayan byte,short veya int tipinde olabilen(örneğimizde 4) değer otomatik gizli dönüştürme ile atanmıştır. Java nümerik olan veri tiplerinden küçük olanı büyük olanda saklayabilir ancak büyük olan veri tipi küçük tipte saklanamayacaktır çünkü değer kaybı olacaktır.

Bizim yazdığımız kodların belli kurallara uygun olması başkaları  kodlarımızı incelediğinde anlayabilmesi için kolaylık sağlayacaktır.

Kendi yazdığımız kodları zamanla unutmamızdan dolayı anlamamız ve üzerinde değişiklik yapmamız okunabilirlik ve kod estetiği ne kadar düzenli olursa o kadar kolay olacaktır.

İşte bu nedenlerden dolayı kodlama yaparken belli ortak kodlama kurallarına uymamız iyi bir yazılım ve yazılımcı için çok önemlidir.Bu kodlama kuralları standart değildir ancak bir çok yazılımcı tarafından kabul görmüştür.

1-Harflerin büyük küçük olması önemsizdir. Yani SELECT,Select ve select aynı şeydir. Ancak okunabilirlik adına kurallara uymamız gerekir.Türkçe karakterlerin nesne adlarında kullanılmaması tavsiye edilir.

2-Boşluk karakterinin önemi yoktur.Yani SELECT kolonAdi arasında 1 boşluk da olsa 2 boşluk da olsa önemsizdir.

3-Sql anahtar kelimeler büyük harfle yazılmalı.Örneğin; SELECT, FROM, AND, OR, ORDER BY, WHERE, NOT, INTO, UPDATE, DELETE gibi…

4-Hazır gelen fonksiyonlar büyük harfle yazılmalı.Örneğin; AVG, SUM, COUNT, SUBSTRING gibi…

5-Nesne (object) isimleri nasıl ise öyle yazılmalıdır. Tablo adı Ogrenciler ise sorgu içinde aynen yazılmalı.

6-Önemli anahtar kelimeler ve yan tümceler satır başında yazılmalıdır.

Örnek:

SELECT *

FROM TabloAdi

WHERE Kosul

Çok uzun olmayan sorguları tek satırda yazabiliriz.

Örnek: SELECT * FROM TabloAdi

7-Birden fazla satırda yazılan bir tümce sonraki satırlarda girintili olmalıdır.

Örnek:

SELECT Kolon1,Kolon2,Kolon3

————-,Kolon4,Kolon5,Kolon6

————-,Kolon7

FROM TabloAdi

8-WHERE tümcesinin maddeleri girintili yazılmalıdır.

Örnek:

SELECT *

FROM TabloAdi

WHERE Kosul1 IN(Deger1,Deger2,Deger3)

————-AND Kosul2 = Deger4

————-AND Kosul3 = Deger5

ORDER BY Kolon1

9-Eşit ve eşitsizlik operatörleri aynı formatta olmalıdır.Eşitliğin sağına soluna boşluk bırakıyorsak tüm eşit ve eşitsizliklerde bu kurala uymalıyız.

her ne kadar kaç boşluk olduğu sorgunun çalışması için önemli olmasa da okunabilirlik açısından önemlidir.

10-Parantez kullanımları da okunabilirlik için çok önemlidir.Fonksiyon adları ile parantez arasında boşluk olmamalıdır.

Örneğin; WHERE YEAR(Kolon1)>2015

11-IN operatörü ile parantezler arasında boşluk olmalıdır.

Örneğin; WHERE Kolon1 IN (Deger1)

12-Parantez içine yazılanlar birden fazla satırda yazılacaksa diğer satırlara girintili başlanmalıdır.

Örnek:

WHERE Kolon1 IN (Deger1,

————-Deger2,Deger3,Deger4

————-Deger5,Deger6,Deger7)

 

Örnek2:

WHERE Kolon1 IN

————-(Deger1,Deger2,Deger3)

 

Örnek3:

WHERE Kolon1 IN (

————-Deger1,Deger2,Deger3

————-)

13-İç içe parantezler yeni satırda girintili olarak ya da tek satırda yazılmalıdır.

Örnek:

SELECT UPPER(SUBSTRING(Kolon1,5))

FROM TabloAdi

 

Örnek2:

SELECT UPPER(

————-SUBSTRING(Kolon1,5)

————-)

FROM TabloAdi

 

 

<!DOCTYPE html>
<html>
<head>
<title>JavaScript Fonksiyon</title>
<script type=”text/javascript”>
function KareAl(sayi) {
alert(“Sayı:”+sayi+”, Karesi:”+sayi*sayi);
}
</script>
</head>
<body>

<input type=”button” onclick=”KareAl(7)” value=”Kare Al” />
</body>
</html>

<!DOCTYPE html>
<html>
<body>

<input type=”text” onkeydown=”KarakteriAl(event,this)” />

<script>
function KarakteriAl(event,sender) {
var karakterKodu = event.keyCode;
var karakter = String.fromCharCode(karakterKodu);
alert(“Karakter Kodu:”+karakterKodu+” Karakter:”+karakter);
}
</script>

</body>
</html>

 

Dikkat:onkeypress eventi ile alt, shift, capslock, numlock tuşlarına tıklanınca event çalışmaz.Bu karakterleri de almak istiyorsak onkeydown kullanmalıyız.keyCode ASCII kodunu String.fromCharCode karakteri gösterir.

 

Html5 öncesi siteler tasarlanırken site ana hatları divler ile belirlenirdi.Aşağıdaki örnek kod bloku temel bir sayfanın yapısını göstermektedir.

<div id=”header” class=”header”>
<div id=”menu” class=”menu”>
<div id=”icrik” class=”icerik”>
<div id=”footer” class=”footer”>

Yukarıdaki kod bloklarında görüldüğü gibi div elementi içeriği hakkında tarayıcıya ve geliştiriciye bilgi vermemektedir.Oysa Html5 ile elementlerin adından içeriği hakkında bilgi sahibi olunan elementler geldi.Bu elementlerden section elementi içeriğin bir bölümü olduğunu footer elementi iletişim bilgilerinin kullanıldığı alanları belirten yeni elementlere örnektir.

html5 ile gelen yeni semantik elementler:

  • <article>
  • <aside>
  • <details>
  • <figcaption>
  • <figure>
  • <footer>
  • <header>
  • <main>
  • <mark>
  • <nav>
  • <section>
  • <summary>
  • <time>

Yeni gelen elementler ile örnek web sayfası şu hale geldi:

<header>
<nav>
<section>veya <article>veya <aside>
<footer>