Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
YZM 3215
İleri Web Programlama
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi
Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yazılım Mühendisliği
1
BÖLÜM - 4
Bootstrap
2
Bu bölümde;
Responsive Web Design Bootstrap
Container
Grid
Table
Page
Navigation
Form Oluşturma
ile ilgili konular anlatılacaktır.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Responsive Web Tasarımı Nedir?
• Sayfa yerleşim ve düzeninin, sayfayı
görüntüleyen cihazın özelliklerine göre
otomatik olarak kendini ayarlamasıdır.
– PC
– Tablet
– Telefon
– TV
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Responsive Web Tasarımı Nedir?
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Responsive Web Tasarımı Nedir?
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Responsive Web Tasarımı Nedir?
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap Nedir?
• Front-End yazılım geliştiriciler için geliştirilmiş açık
kaynak kodlu ve ücretsiz bir CSS çatısıdır.
• Twitter çalışanları Mark Otto ve Jacob Thornton
tarafından geliştirilmiş ve Ağustos 2011’de Github
üzerinde ilk defa yayınlanmıştır.
• HTML5’in tüm özelliklerini desteklemektedir.
• Altyapısı sayesinde
– Masaüstü, tablet, mobil cihaz ve tüm tarayıcılara uyumlu
web siteleri geliştirilmesine imkan sağlar.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap Nedir? (devam…)
• Bir web uygulaması için
gerekli olan tüm bileşenleri
yapısında barındırır.
– Form öğeleri, tablolar,
butonlar, uyarılar, navigasyon
bar, sayfalama, etiketler,
açılan menüler vb. tasarım
öğeleri.
– Bu hazır bileşenleri kullanarak
hem gelişmiş bir görünüm
hem de her cihaza uygun bir
tasarım gerçekleştirilebilir.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap Nedir? (devam…)
• Bootstrap 3 sürümü, Chrome, Safari, Firefox,
Internet Explorer, Opera gibi neredeyse tüm popüler
web tarayıcılarının son sürümlerinde sorunsuz
çalışmaktadır.
• Windows işletim sisteminde, Internet Explorer 8-11
desteklenmektedir.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap CDN
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
<!-- Derlenmiş CSS --><link rel="stylesheet"href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<!-- jQuery kütüphanesi--><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!– Derlenmiş JavaScript --><script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
Bootstrap – HTML5
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Bootstrap, belirli HTML elemanlarını ve CSS
özelliklerini kullandığı için HTML5 doctype
kullanılmasını gerekmektedir.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
</head></html>
Bootstrap – Mobil Öncelik
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Bootstrap 3 mobil öncelikli (mobile-first) olarak baştan
tasarlanmıştır. İsteğe bağlı mobil stilleri eklemek yerine,
doğrudan çekirdeğin içine dahil edilmiştir.
• Uygun render ve dokunmatik yakınlaştırma sağlamak
için, "viewport" meta etiketi <head> arasına eklenmelidir.
• Mobil cihazlarda yakınlaştırma özelliğini viewport meta
etiketine user-scalable=no ekleyerek devre dışı
bırakılabilir. Kullanıcılara sadece kaydırma çubuğuna
erişim imkanı sağlanarak ve siteye biraz daha doğal
(native) uygulama hissi verilebilir.
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no ">
Bootstrap – Konteyner
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Bootstrap site içeriğini (elemanlar, bileşenler, ızgara sistemi
vb.) barındırmak için en dışta bir barındırıcı elemana
ihtiyaç duyar. Klasik div etiketi olan bu eleman için özel iki
sınıf tanımlanmıştır.
– .container: Duyarlı sabit genişliğe sahip konteyner.
– .container-fluid: Tam ekran genişlikteki konteyner.
• Detaylı bilgi için
– http://stackoverflow.com/questions/22262311/container-fluid-vs-
container
<div class="container">... </div>
<div class="container-fluid">... </div>
• ÖRNEK 1: Tam ekran ve sabit uzunluğa sahip
konteynerler içeren ayrı iki web sayfası yapalım.
14Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – Konteyner (devam…)
• ÖRNEK 1: Tam ekran ve sabit uzunluğa sahip
konteynerler içeren ayrı iki web sayfası yapalım.
15Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – Konteyner (devam…)
www.bootply.com/4YwXa2M0KY
Bootstrap – Izgara Sistemi
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Bootstrap duyarlı, mobil öncelikli Izgara (Grid) sistemi
içermektedir.
• Cihaz veya ekranın boyutu arttıkça 12 sütuna kadar uygun
olarak ölçeklenir.
• Bu sayede farklı cihazlara göre sütunların görüntülenme
şekli değiştirilmiş olur.
Bootstrap – Izgara Sistemi (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Grid sistemindeki kullanılan 4 sınıf aşağıdaki gibidir:
1. xs (extra small) (Telefon, <768px)
2. sm (small medium) (Tablet, ≥768px)
3. md (medium) (Masa üstü, ≥992px)
4. lg (large) (Geniş masa üstü, ≥1200px)
• Aşağıdaki örnekte col-md-6 tanımlaması, medium (orta)
boyutlardaki cihazlarda, ekranın 12’de 6’sını (yarısını)
kaplayacak şekilde pozisyon alır.
Bootstrap – Izgara Sistemi (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Satırlar doğru hizalama ve dolgu için .container veya
.container-fluid içine yerleştirilmelidir.
• Konteyner içerisindeki satırlar <div class="row"> ile
yaratılır.
• Daha sonra satırlar içerisine kolonlar .col-*-* kullanılarak
yerleştirilir.
<div class="container"><div class="row"><div class="col-*-*"></div><div class="col-*-*"></div><div class="col-*-*"></div>
</div><div class="row">...
</div></div>
Bootstrap – Izgara Sistemi (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 2: Telefonlar için ekranı üç eşit parçaya
bölerek aşağıdaki ekran görüntüsünü elde eden
uygulamayı yazalım.
Bootstrap – Izgara Sistemi (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 2:
Soru: Genişliği iyice küçültsek de kolonlar neden hep yatay kalıyor?
Alt alta (stacked) olmuyor?
Bootstrap – Izgara Sistemi (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 3:
– Masa üstü için ekranı 4 eşit sütuna,
– Tablet için ekranı ikişerli 2 sütuna,
– Telefonlar içinse ekranı 1 sütun şeklinde gösterecek
uygulamayı yazalım.
Bootstrap – Izgara Sistemi (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 3:
Bootstrap – Tablolar
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Bootstrap tablolar için özel bir .table sınıfına sahiptir.
• Tablolar için kullanılan özel sınıflardan bazıları
aşağıdaki gibidir:
– table-striped: Şeritli bir tablo oluşturmak için kullanılır.
– table-bordered: Kenarlıklı bir tablo oluşturmak için
kullanılır.
– table-hover: Tablo üzerindeki satırların üzerine geldiğinde
satırın aktif olduğunu göstermek için kullanılır.
– table-condensed: Tablonun hücrelerini biraz daha
küçültmek ve özetlerini yapmak için kullanılır.
Bootstrap – Tablolar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 4: Aşağıdaki gibi bir tablo oluşturup, tablo
sınıflarını deneyiniz (table-striped table-bordered
table-hover table-condensed).
Bootstrap – Tablolar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 4: Aşağıdaki gibi bir tablo oluşturup, tablo
sınıflarını deneyiniz (table-striped table-bordered
table-hover table-condensed).
Bootstrap – Page Header
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 5: Aşağıdaki gibi görünen bir sayfa yapalım.
Bootstrap – Panel
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Paneller, köşeleri yuvarlatılmış kutular içerisinde
metin veya resim görüntülemek için kullanılır.
• ÖRNEK 6: Aşağıdaki gibi görünen bir sayfa yapalım.
Bootstrap – Panel (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
– Panel ile ilgili class’lara dikkat edin:
• panel-heading, panel-body, panel-footer
Bootstrap – List Group
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Klasik listelerin daha iyi görünmesini sağlamak ve
ekstra bazı özellikler katabilmek için List Group
bileşeni kullanır.
• ÖRNEK 7: Aşağıdaki gibi görünen bir sayfa yapalım.
Bootstrap – List Group (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – List Group (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Liste elemanlarına formatlı başlık ve içerik de
verilebilir.
• ÖRNEK 7.2: Aşağıdaki gibi görünen bir sayfa
yapalım.
Bootstrap – List Group (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – Navigasyon Bileşenleri
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Navigasyon, web siteleri için temel bir özelliktir.
• Bootstrap çeşitli navigasyon özellikleri sağlamaktadır
– Nav
– Navbar
– Breadcrumb
Bootstrap – Nav
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 8: Aşağıdaki gibi farklı nav seçeneklerini bir
arada içeren bir sayfa yapalım.
Bootstrap – Nav (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – Navbar
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Navbar, bootstrap’in en önemli navigasyon
özelliklerinden biridir.
• Sayfanın geniş ya da dar olmasına göre sergilediği
davranışla farklı ekran boyutlarında işlevsel bir üst
menü oluşturmaya imkan sağlar.
Bootstrap – Navbar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 9: Farklı sayfa genişliklerinde aşağıdakiler
gibi görünen bir sayfa yapalım.
Bootstrap – Navbar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – Navbar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 9.2: Ürünler seçeneğine drop-down menü
ekleyelim.
Bootstrap – Navbar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 9.2: Ürünler seçeneğine drop-down menü
ekleyelim.
Bootstrap – Navbar (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Bootstrap – Breadcrumb
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Sayfanın, sitenin sayfa hiyerarşisi içerisindeki yerini
göstermek ve üst sayfalara bağlantılar sağlamak için
breadcrumb (ekmek kırıntısı) adı verilen teknik
kullanılır.
• Bootstrap’te breadcrumb yapmak çok kolaydır.
• ÖRNEK 10: Aşağıdaki gibi bir sayfa yapalım.
Bootstrap – Label
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Herhangi bir HTML elemanının yanında belirgin bir
yazı göstermek için label bileşeni kullanılabilir.
• Span elemanına label class’ını eklemek yeterlidir.
• Farklı renklerde label’lar için ek label class’ları
kullanılmalıdır.
– label-default gray
– label-primary dark blue
– label-success green
– label-info blue
– label-warning orange
– label-danger red
Bootstrap – Label (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 11: Aşağıdaki gibi görünen bir sayfa
yapalım.
Bootstrap – Button
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• Herhangi bir a, button ya da input HTML elemanını
hoş görünen bir butona çevirmek için bu elemanlara
btn class’ını eklemek yeterlidir.
• Farklı renklerde button’lar için ek btn class’ları
kullanılmalıdır.
– btn-default beyaz
– btn-primary dark blue
– btn-success green
– btn-info light blue
– btn-warning orange
– btn-danger red
Bootstrap – Button (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• ÖRNEK 12: Aşağıdaki gibi görünen bir sayfa
yapalım.
Bootstrap – Form Oluşturma
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• HTML form elemanına form class’ı eklenmelidir.
• Formda yer alacak her bir etiket ve input elemanı için
form-group class’ına sahip bir div elemanı
kullanılmalıdır.
• ÖRNEK 13: Aşağıdaki gibi görünen bir form sayfası
yapalım.
Bootstrap – Form Oluşturma (devam…)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Yararlanılan Kaynaklar
49
• http://www.w3c.org
• http://www.w3schools.com/jquery
• Ders Notları, Yrd. Doç. Dr. Yuriy Mishchenko
• Jump Start Bootstrap, Syed Fazle Rahman, 2014,
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
50
İYİ ÇALIŞMALAR…
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama