Merhaba arkadaşlar,
2011’den bu yana 2010 da diyebiliriz, arabirim konusunda kendimi pek geliştirmiyordum sadece kazanmış olduğum bilgimi tecrübe ile sabitliyordum(Şuan günümüzdeki psd to css işlerinde bile hala geçerli bilgiler). Ama gün geçtikçe css yazmaktan nefret eder oldum, çok boğucu ve sıkıcı geliyordu( bu konuda yazılarımda vardır ) sonra Onur dediki “eğer bir işten sıkılıyorsan kendini geliştirmiyorsundur” Bende bu cümleyi yorumlamayacak kadar css’den soğuduğum için pek önemsemedim. Gel gelelim bu konu üstünden baya zaman geçtikten sonra bir takım arabirim gruplarında insanların ne kadar kibirli, bilmediği konularda artistik hareketler yapması beni baya şevke getirdi (o arkadaşlardan Allah razı olsun 🙂 ) ve hemen LESS CSS‘e girdim. Less css’i kullanabilmek 10 dk’mı almadı ama tabiki 10 dk’da öğrenilecek konu değildir benim şuanki bilgim genel şeyler ve LESS’in at ile deve olmadığını size anlatabilecek kadar.
LESS Css nedir ?
LESS dinamik bir stil dosyasıdır, kısaca açıklayacak olursak padding: 10px; diye tanımlayacağımız kuralı padding: @degisken; diye tanımlıyoruz veya padding :5px demek istiyorsak padding: @degisken/2; diye tanımlama yapabiliyoruz. Fonksiyonlar tanımlayabiliyoruz (bu konuya değineceğim). Detaylı bir bilgi için buraya tıklayınız.
LESS’in Faydaları ?
LESS büyük projelerde çok fazla kullanım kolaylığı sağlayacaktır. Bu kullanım kolaylıkları
1 – Hızlı bir css yazımı,
2 – Daha az kural yazımı,
3 – Daha hafif css dosyaları olacaktır (ama less.js version 1.3.0’nin +49KB olduğunu unutmayalım)
LESS’in sevmediğim yönleri
1 – Editörlerde renk tanımlaması gerçekten çok kötü, bunu editör ayarlarından düzeltebiliriz ama bunu biz değil lesscss yapmış olmalıydı.
2 – 49kb’lık js her zaman canımı sıkar
LESS yazarken dikkat etmemiz gereken noktalar neledir ?
1 – Noktalama hatalarında komple stil.less dosyasını uçuruyor ve stil dosyası yokmuş gibi okuyor.
2 – Var olmayan veya yanlış yazılmış değişken isimleri olduğunda stil dosyasını yokmuş gibi okuyor.
3 – Sayısal işlemlerde “-” değerini kullanmadan önce mutlaka boşluk bırakılmalı çünki – değerini tire gibi okuyor.
LESS’e başlangıç
İlk önce yapacağımız şey bir proje klasoru oluşturmak (her yiğidin bir yoğurt yiyişi vardır o yüzden “ben nasıl bir projeye başlıyorum” bunu yakında detaylı bir şekilde anlatacağım.)
Buradan less.js dosyasını(güncel sürümü indirin faydalıdır) indirip index.html dosyamıza aşağıdaki gibi ekliyoruz.
1 |
<script src="less.js"></script> |
hemen bir tane stil.less uzantılı bir dosya oluşturuyoruz ve aşağıdaki gibi index.html dosyamıza ekliyoruz. Buraya kadar yaptık çalışıyormu diye test edelim. stil.less dosyasınızı herhangi bir editör ile açalım ve arkaplan rengi verelim.
1 2 3 4 5 |
@renk1 : #143352; body { background: @renk1; } |
İndex.html dosyamızı tarayıcıdan açtıkdan body aşağıdaki gibi oluyorsa. İşlem bitmiştir arkadaşlar. İşin aslı LESS’de bitmiştir bundan sonraki işlemlerin hepsi size(ruhunuza) kalmış. Ama ben genede bir kaç örnek daha vererek hiyerarşik yapıyada değineceğim.
Şimdi bir başlık, konu içeriği ve konu içeriğinde bir kaç resim tarzı bir şablon yapalım
div#ust div’i için html ve less kodlarını yazalım
1 2 3 4 5 |
<div id="ust"> <h1><a href="http://www.aycan.net/less-nedir-nasil-kullanilir/">LESS nedir, nasıl kullanılır ?</a></h1> </div> <!-- ust DIV kapanis --> |
yukarıda gördüğünüz gibi html kodlarımızda hiç bir değişiklik yok, şimdi lise less kodlarını yazalım.
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 52 53 54 55 56 57 58 59 |
//Degiskenler //Renkler @renk1 : #143352; @renk2 : #f9f9f9; @renk3 : #cd1821; @renk4 : #eee; //Genislik ve Yukseklik tanimlamalar @genislik1 : 990px; @genislik2 : 205px; @yukseklik1 : 20px; // temel tanimlar .sol { float: left; } .sag { float: right; } .overflow { overflow: hidden; } .display { display: block; } .td { text-decoration: none; } .td2 { text-decoration: underline; } .font1 { font-family: 'Tahoma'; } .font2 { font-family: 'Verdana'; } .yaziOrtala { text-align: center; } //Fonksiyonlar .ortala(@yukaridanVeAsagidan : 0px) { margin: @yukaridanVeAsagidan auto; } .border(@deger : 0px) { border: @deger dashed #f9f9f9; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
div#ust'un less tanımlamaları #ust { width: @genislik1; .overflow; .border(3px); h1{ a{width: @genislik1; .display; padding: @yukseklik1 0 @yukseklik1 @yukseklik1*0; color: @renk2; .td; font-size: @yukseklik1*1.5; .font1; .yaziOrtala; &: hover { color: @renk3; } } } } |
Yukarıdaki less kodlarını tek tek açıklayacak olursak;
Css kısmındaki en üstünde degiskenler kismini kafamıza göre düzenliyoruz.
Less ile değişken tanımlama
1 |
width: @genislik1; |
Yukarıdaki kodda tanımlama methodlarından birisidir. Css kodlarını yazarken “width” değerini yazıp yanına bizim belirlediğimiz değişkeni(css dosyasının üstünde değişkenleri tanımlamıştık) yazıyoruz.
1 |
@genislik1:990px; |
Daha fazla bilgi : http://lesscss.org/#-variables
Less ile statik fonksiyon tanımlama
1 |
.display; |
Yukarıdaki tanımlama ise sabit bir fonskiyon tanımlıyoruz(aşağıdaki gibi).
1 |
.display{display:block;} |
Daha fazla bilgi : http://lesscss.org/#-variables
Şuanda 2 tür tanımlamayı anlar
div#orta tanımlamarı :
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 |
<div id="orta"> Merhaba arkadaşlar, 2011'den bu yana 2010 da diyebiliriz, arabirim konusunda kendimi pek geliştirmiyordum sadece kazanmış olduğum bilgimi tecrübe ile sabitliyordum(Şuan günümüzdeki <a href="http://www.aycan.net/psdyi-css-ve-htmle-aktarirken-vazgecemediklerim/">psd to css</a> işlerinde bile hala geçerli bilgiler). Ama gün geçtikçe css yazmaktan <strong>nefret eder</strong> oldum, çok boğucu ve sıkıcı geliyordu( bu konuda yazılarımda vardır ) sonra <a title="Onur SALGİT" href="http://www.onur.org">Onur</a> dediki <strong>"eğer bir işten sıkılıyorsan kendini geliştirmiyorsundur"</strong> Bende bu cümleyi yorumlamayacak kadar css'den soğuduğum için pek önemsemedim. Gel gelelim bu konu üstünden baya zaman geçtikten sonra bir takım arabirim gruplarında insanların ne kadar kibirli, bilmediği konularda artistik hareketler yapması beni baya şevke getirdi (o arkadaşlardan Allah razı olsun :) ) ve hemen <strong>LESS CSS</strong>'e girdim. Less css'i kullanabilmek 10 dk'mı almadı ama tabiki 10 dk'da öğrenilecek konu değildir benim şuanki bilgim genel şeyler ve LESS'in<strong> at ile deve olmadığını</strong> size anlatabilecek kadar. <a href="http://www.aycan.net/less-nedir-nasil-kullanilir/">Devamı >>></a> <ul> <li> <img src="http://lorempixel.com/400/200" alt="resim" /> </li> <li> <img src="http://lorempixel.com/g/400/200/" alt="resim" /> </li> <li> <img src="http://lorempixel.com/400/200/sports/1" alt="resim" /> </li> <li> <img src="http://lorempixel.com/400/200/sports" alt="resim" /> </li> <li> <img src="http://lorempixel.com/400/200" alt="resim" /> </li> <li> <img src="http://lorempixel.com/400/200" alt="resim" /> </li> <li> <img src="http://lorempixel.com/400/200" alt="resim" /> </li> </ul> <ul> <li><a href="http://www.aycan.net">aycan.net</a> asıl iş : arabirim geliştiricisi yan işler : koordinatör, proje yöneticisi , ders veren şahsiyet(css,jquery,php), yazılım, freelance işler vs.</li> <li><a href="http://www.buokulbitmez.com">buokulbitmez.com</a> 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.</li> <li><a href="http://www.2satir.com">2satir.com</a> Yinelenen bir sayfa içeriğinin okuyucunun dikkatini dağıttığı bilinen bir gerçektir. Lorem Ipsum kullanmanın amacı, sürekli 'buraya metin gelecek, buraya metin gelecek' yazmaya kıyasla daha dengeli bir harf dağılımı sağlayarak okunurluğu artırmasıdır. Şu anda birçok masaüstü yayıncılık paketi ve web sayfa düzenleyicisi, varsayılan mıgır metinler olarak Lorem Ipsum kullanmaktadır. Ayrıca arama motorlarında 'lorem ipsum' anahtar sözcükleri ile arama yapıldığında henüz tasarım aşamasında olan çok sayıda site listelenir. Yıllar içinde, bazen kazara, bazen bilinçli olarak (örneğin mizah katılarak), çeşitli sürümleri geliştirilmiştir.</li> </ul> </div> <!-- orta DIV kapanis --> |
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 |
#orta { width: @genislik1 - (@yukseklik1 * 2); .overflow;.ortala(20px);.border(3px); padding: @yukseklik1; p { color: @renk4; .font2; font - size: @yukseklik1 - 5; line - height: @yukseklik1 + 5; padding: 0 0@ yukseklik1 0; a {.td; color: @renk3; & : hover { .td2; } } } } //Orta icerisindeki ul.resimliListe'yide hiyerarsik yapi olmadan yazalim. .resimliListe { width: @genislik1 - 40;.overflow; } .resimliListe li {.sol;.overflow; } .resimliListe li img { width: @genislik2; margin: 26px 0 0 26px; } //ikinci ul #orta ul.linkler {.resimliListe; margin: 50px 0 0 0; li { .overflow; padding: 0@ yukseklik1 + 5; a { font - size: @yukseklik1 + 10;.font1; color: @renk4;.td; padding: 0 0 10px 0; display: block; & : hover { color: @renk3;.td2; } } p { font - style: italic; font - size: @yukseklik1 - 5; } } |
Dinamik fonksiyon tanımlama
Arkadaşlar hemen hemen en çok sevdiğim noktalardan birisi dinamik fonskiyon tanımlama,
1 |
.ortala(20px); .border(3px); |
Fonskiyonların içeriği
1 2 3 4 5 6 7 |
.ortala(@yukaridanVeAsagidan : 0px) { margin: @yukaridanVeAsagidan auto; } .border(@deger : 0px) { border: @deger dashed #f9f9f9; } |
Fonksiyon tanımlamaları gördüğünüz gibidir, aşağıda ise çoklu değerli fonksiyondan bahsedeceğim.
1 2 3 4 5 |
.border(3px, solid, #cd1821); .border(@a: 0, @b: 0, @c: 1px) { border: @a @b @c9; } |
Yukarıda gördüğün gibide birden fazla değişken ile alışveriş yapabiliyoruz.
Sayısal değerleri
1 |
width: @genislik1 - (@yukseklik1*2); padding : @genislik1 / 5 @genislik1 / 4 @genislik1 *5 @genislik1 - 10 |
Yukarıdaki gibi sayısal değerlerde matematik işlemleri yapabiliyoruz ama burada dikkatli olmamız gereken bir olay var
eğer bir değişkene “-” li matematik işlemi uygulayacaksak
1 |
width: @genislik1 - (@yukseklik1*2); |
Yukarıdaki gibi -‘nin önünde bir boşluk olmak zorunda.
Hiyerarşik Yapı
Benim en çok sevdiğim kısımlardan birisi Hiyerarşik yapı.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#orta ul.linkler { .resimliListe; margin: 50px 0 0 0; li { .overflow; padding: 0 @yukseklik1 + 5; a { font-size: @yukseklik1 + 10; .font1; color: @renk4; .td; padding: 0 0 10px 0; display: block; &: hover { color : @renk3; .td2; } } p { font-style: italic; font-size: @yukseklik1 - 5; } } } |
Yukarıda gördüğünüz gibi iç içe yazım gerçekten insana kod yazarken haz veriyor.
Arkadaşlar şimdilik diyeceklerim bu kadar, uzun makaleler yazmayı hiç sevmiyorum ama uzun bir konu. Makaleyi 1 hafta gibi zamanda anlattığım için cümleler arası kopuklu, yanlışlık olabilir şimdiden özür:)
Kalın sağlıcakla….
Geçen gün senin ufak bir denemeden yola çıkarak araştırdım ancak çok fazla detay bilgi edinemedim. Bu yazıyı derlemen çok iyi olmuş abi… Şu an vaktim yok ama akşam okuyacağım. Yenilik lazım artık..
Eline sağlık.
Js dosyasını geliştirme sürecinde kullan. Siten yayına hazır olduğunda less to css yap. Böylece js doyasını yayınlayacan sitede kullanmamış olursun.
Hmm.. dikkat çekici, heyecan verici, ve kesin denemem gereken bişiy bu sanırım 🙂
Güzel yazı olmuş, eline sağlık..
çok hoşuma gitti bu less, hoş bir yapıya benziyor kullanmaya başlıycam.
böyle konuları görünce diyorum ki yanlış bir meslek seçmişiz, hergün yeni bir icat bi durun lan
LESS nedir, nasıl kullanılır bilgisi için teşk
hocam bilgi için çok çok tşk LESS nedir, nasıl kullanılır ?
selamlar less severek kullandığım bir uygulama anlatımınız gayet hoş olmuş. arada dikkatimi çeken eksilerde yazmış olduğunuz kod renklendirmesi konusu oldu. sublimetext2 + less plugini ile kod renklendirmeleri gayet başarılı tavsiye ederim.
.ortala
{
margin: 0px auto;
}
yazmak varken
.ortala(@yukaridanVeAsagidan : 0px)
{
margin: @yukaridanVeAsagidan auto;
}
diye daha uzun yazmak + 49KB less.js dosyası eklemekteki fayda nedir anlamış değilim.
Güzel bir yazı olmuş teşekkürler
LESS gerçekten herşeyi hızlandıran bir şey. Bende bir uygulamada yeni kullanamya başladım, bundan sonra gerekmese bile her yerde kullanmayı düşünüyorum.
Güzel yazı olmuş daha ilk aramada ortaya çıktın 🙂
Standart bir sekilde css yaziyordum ama artik less e gecmeyi dusunuyorum. Hocam sorum arkaplani mavi yaptiginiz resimde gozuken text editor ne acaba?
Netbeans -> Oblivion Teması
Sevgili @aycan yazı şahane olmuş. Daha detaylı bir şekilde less konusunda bir inceleme ve eğitim yazı dizisi hazırlamay başladım. http://www.fatihtoprak.com/icerik/less+nedir.html Şu linkten arkadaşlar yararlanabilir. Kaynak olarak eklersek de (uygun görürsen tabi) geliştirici arkadaşlar için şahane olucağı kanısındayım.
İyi çalışmalar.
Bu yazıyı derlemen çok güzel olmuş eline sağlık
Güzel bir yazı olmuş. ben de yavaş yavaş başlayayım bari.
less css ‘ in sunucuda derlenmiş halinin çıktısı .css mi olacak? yoksa .scss falan mi?
Çok güzel bir anlatım olmuş. Teşekkürler