CSS için arşiv
Saydam Kenar Çizgileri Oluşturmak
Ocak 3rd, 2012 • 6 yorum CSS
Etiketler: css3, saydam köşeler
İlk olarak Facebook’un popup ve lightbox olarak uyguladığı, en azından benim orada gördüğüm bir uygulama idi.
Benzer bir uygulamayı yapmak için kodları yazdım. Daha önce bahsettiğim rgba tanımı ile bu iş çok basit olacaktı.
#popup{
position:absolute;
top:90px;
left:40%;
border:10px solid rgba(0,0,0, 0.5);
text-align:center;
font-size:24px;
background-color:#FFFFFF;
width:350px;
padding:50px 0;
border-radius:10px;
z-index:100;
}
Ancak aşağıdaki gibi bir görüntü elde ettim.
Çözümü biraz araştırdım ancak pek bir şey bulamadım derken css-tricks’in çözümü bana ilaç gibi geldi. Çözüm background-clip özelliği tanımı ile sağlanıyor.
#popup{
position:absolute;
top:90px;
left:40%;
border:10px solid rgba(0,0,0, 0.5);
text-align:center;
font-size:24px;
background-color:#FFFFFF;
width:350px;
padding:50px 0;
border-radius:10px;
z-index:100;
-moz-background-clip: padding; /* Firefox 3.6 */
-webkit-background-clip: padding; /* Safari 4? Chrome 6? */
background-clip: padding-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */
}
Kaynak
CSS3 Metin Özellikleri
Aralık 2nd, 2011 • 4 yorum CSS
Etiketler: hanging-punctuation, text-align-last, text-overflow, text-rendering, text-stroke, text-wrap, word-wrap
word-wrap özelliği
CSS3 word-wrap özelliği diğer CSS3 özelliklerinden farklı olarak tüm tarayıcılar(IE dahil) tarafından desteklenmektedir.
Aldığı Değerler: normal | break-word
Başlangıç değeri: normal
Uygulanabilen elementler: Tüm Elemanlara
Kalıtsallık: Var
word-wrap özelliği belirtilen alandaki metnin kapsayıcı eleman sınırlarını zorlayan uzunlukta arada boşluk olmadan uzadığında kelimeyi satır başına atmak için kullanılır.
Bir örnek verecek olursak 150px genişliğindeki bir alan içinde bir metnimiz olsun.
<div id="link"> Loremipsumdolorsitametconsecteturadipiscingelit. Nam semper venenatis lobortis. Donec odio nisl, vehicula vitae molestie ac, euismod ac nibh. </div>
CSS kodu
#link{
width:150px;
border:1px solid #999;
}
word-wrap ile bu uzun kelimeyi aşağı atarak sayfadaki patlaklığı düzeltebiliriz.
Önceki yazımda bu işi white-space ile halletmiştim, ama mantıklı olan word-wrap ile çözmek.
Firefox 3.5+
Chrome 1+
Safari 3.1+
Opera 10.5+
İnternet Explorer 5.5+
Mobil Tarayıcılar
iOS Safari 3.2+
Opera Mini 5+
Opera Mobile10+
Android Browser 2.1+
text-wrap
text-wrap özelliği word-wrap’e benzer bir özelliktir. word-wrap’in kelimeye yaptığı etkiyi text-wrap metinlere yapar.
Aldığı Değerler: normal | none | unrestricted | suppress
Başlangıç değeri: normal
Uygulanabilen elementler: Tüm Elemanlara
Kalıtsallık: Var
text-wrap 4 adet değer alır.
- normal: Satır sadece belirlenen yerlerden sonra satır başı yapar.
- none: Satır herhangi bir yerden satırbaşı yapmaz. Metin kapsayıcı üzerinden aşar.
- unrestricted: Satır herhangi iki karakter arasından satırbaşı yapılabilir.
- suppress: Satır içinde eğer satırbaşı yapacak bir nokta yoksa elemanı satırbaşı yaptırır
Bu özelliği henüz hiç bir tarayıcı desteklemiyor.
text-stroke
CSS3 ile birlikte text-outline olarak standartlara giren bu özellik daha sonra standartlardan çıkarıldı, ancak webkit tabanlı tarayıcıların -webkit-text-stroke olarak desteklemektedir.
CSS3 ile birlikte metinlerin etrafına dış çizgisi çizmemize olanak sağlıyor. Şu an sadece webkit tabanlı tarayıcıların(Safari, Chrome) desteği mevcut.
Aldığı Değerler : thickness | blur | color
Başlangıç değeri: none
Kalıtsallık: Var
Tanım yaparken ilk olarak yazı tipinin rengini yaparız, sonrada dış hat çizgisini tanımlarız.
font:bold 24px Arial, Helvetica, sans-serif; color: #c00; -webkit-text-stroke: 1px #000;
<iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/3dsPG/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
text-stroke tanımının ilk değeri dış çizgisinin kalınlığını ikinci tanım rengini belirler.
Dış Çizgili ve Saydam zeminli Yazı Tipleri Oluşturmak
Saydam zeminli yazı tipleri tanımlamak için text-fill-color özelliği kullanılır.
ont:bold 24px Arial, Helvetica, sans-serif; color: #c00; -webkit-text-stroke: 1px #000; -webkit-text-fill-color: transparent;
Firefox desteklemiyor
Chrome 4+ (-webkit- öneki ile)
Safari 3.2+ (-webkit- öneki ile)
Opera desteklemiyor
İnternet Explorer desteklemiyor
Mobil Tarayıcılar
iOS Safari 4.1+ (-webkit- öneki ile)
Opera Mini desteklemiyor
Opera Mobile destelemiyor
Android Browser 2.1+ (-webkit- öneki ile)
text-align (yeni değerler)
text-align özelliği CSS3’den öncede vardı ancak CSS3 ile bu özelliğe iki tane daha yeni değer atandı. Burada bunları inceleyeceğiz. start ve end değerleri. Türkçe ve İngilizce metinler solda-sağa doğru akar., ancak bazı dillerde akış sağdan-sola doğrudur, örneğin Arapça. Böyle sağdan-sola doğru akan dillerde için bu iki değer işe yarıyor.
- start: Eğer akış soldan sağa ise left etkisi yapacaktır. Akış sağdan-sola ise right etkisi yapacaktır.
- end: Eğer akış soldan sağa ise right etkisi yapacaktır. Akış sağdan-sola ise left etkisi yapacaktır.
text-align-last
CSS3 ile birlikte gelen bu özellik son satırın veya justify tanımlanmış elemanların satırlarının hizalanmasını sağlar. Bu özellik text-align ile aynı etkiyi yapar.
Aldığı Değerler : center | end | justify | left | right | start
Başlangıç değeri: start
Kalıtsallık: Var
justify uygulanmış bir metnin son satırının sağa yaslı olmasını istiyorsak
p {
text-align: justify;
-ms-text-align-last: right;
}
text-overflow
Blok kapsayıcı elemanı içindeki satır içi elemanın içeriğini overflow uygulamak için kullanılır. Blok kapsayıcı elemana overflow:visible tanımı yapılmamış olmalıdır.
Aldığı Değerler : clip | ellipsis
Başlangıç değeri: clip
Uygulanabilen elementler: Blok-level Elemanlara
Kalıtsallık: yok
resim kaynağı: https://developer.mozilla.org/en/CSS/text-overflow
Başlangış değeri clip’dir. clip değeri alan satır içi eleman kapsayıcı eleman sınırlarından kırpılacaktır. Diğer aldığı değer ellipsis’dir. ellipsis değeri alan eleman clip gibi davranacaktır ancak farklı olarak sonuna üç nokta(…) koyacaktır.
CSS3 ile birlikte üç nokta yerine kendi istediğimiz özel karkateri cümle satır sonuna ekleyebiliyoruz.
p {
text-overflow: 'herhangibirsey';
}
Firefox 7+
Chrome 1+
Safari 3.1+
Opera 9.0 (-o- ön eki ile)
İnternet Explorer 6+
Mobil Tarayıcılar
iOS Safari 3.2+
Opera Mini 5.0+ (-o- öneki ile)
Opera Mobile 10.0 (-o- öneki ile)
Android Browser 2.1+
text-rendering
text-rendering özelliği okunabilirliği ayarlamamızı sağlana bir özelliktir. Bu özellik sayesinden tarayıcının metinlerimizi nasıl tarayacağını belirleyebiliyoruz. Tarayıcılar metinleri hız, okunabilirlik ve geometrik hassasiyet bakımından farklı şekilde yorumlarlar; text-rendering özelliği bu farklılıkları bizim kontrolümüze sunana bir özelliktir.
Aldığı Değerler : auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit
Başlangıç değeri: auto
Uygulanabilen elementler: Tüm Elemanlara
Kalıtsallık: Var
- auto değeri metin tarama işini tarayıcıya bıraktığımız anlamına geliyor.
- optimizeSpeed değeri hızlı yüklemeyi okunabilirlik ve geometrik hassasiyetin önünde tutar. Karkater aralığı ve bitişik farf özelliklerinin pasifize eder.
- optimizeLegibility değeri okunabilirliği hız ve geometrik hassasiyetin önünde tutar. Karakter aralığı ve bitişik harf özelliklerinin aktiftir.
- geometricPrecision değeri geometrik hassasiyeti hız ve okunabilirliğin önünde tutar. Geometrik hassasiyet ile yazı tipi oranlı olarak yorumlanmasını sağlar ve buda yazı tiplerinin daha güzel görünmesini sağlar.
resim kaynağı: https://developer.mozilla.org/en/CSS/text-rendering
Tanımlarda dikkatimiz çeken karakter aralığı olarak Y ve o arasındaki mesafe ve ffl görünümündeki farklar kendini gösteriyor.
Firefox 3.0+
Chrome 4.0+
Safari 5+
Opera desteklemiyor
İnternet Explorer desteklemiyor
Chrome auto değerini optimizeSpeed olarak yorumluyor, geometricPrecision değerini tam olarak 13. sürümden itibaren yorumluyor.
Firefox auto değerini yazı boyutu 20px ve üzerinde optimizeLegibility gibi, diğerlerini ise optimizeSpeed gibi yorumluyor. geometricPrecision ise optimizeLegibility gibi yorumluyor.
Safari auto değerini optimizeSpeed gibi yorumluyor.
hanging-punctuation
CSS3 metinleri yönetmek açısından bizim elimizi kuvvetlendirdiği kesin. hanging-punctuation özelliği bize ayrıntı bir özellik kazandırıyor. hanging-punctuation özelliği metin bloğunun dışına çıkarmamızı sağlıyor. Liste ikonları ve çift tırnakları metin bloğu dışına çıkararak daha güzel sonuçlar almamızı sağlıyor.
Aldığı Değerler : none | start | end | end-edge
Başlangıç değeri: none
Kalıtsallık: Var
Yukarıdaki resimde görüldüğü gibi ilk resimde hanging-punctuation uygulanmamış halini görürken ikinci resimde uygulanmış halini görüyoruz. Çift tırnak ve keme işaretleri metin bloğu dışına çıkarak daha blok bir metini ortaya koyuyor.
Bu özelliği henüz herhangi bir tarayıcı desteklememektedir.
Sonuç
CSS3 birçok yönden elimiz güçlendirmektedir. CSS3 metinler üzerinde düzenleme yapmamıza olanak sağlıyor. Henüz tam olarak tamamlanmaya birçok yönü var CSS3 metin özellikleri zamanla daha iyi oturacaktır.
Önceden tarayıcılar ve işletim sistemlerinin inisiyatifinde olan özellikleri CSS3 ile birlikte kod yazarlarının eline vermeye çalışıyor.
Kalın sağlıcakla.
Kaynaklar
- http://www.w3.org/TR/css3-text/
- http://www.impressivewebs.com/word-wrap-css3/
- http://www.opera.com/docs/specs/presto27/css/text/
- http://caniuse.com/wordwrap (wordp-wrap destek listesi)
- https://developer.mozilla.org/En/CSS/Word-wrap
- http://www.w3.org/TR/css3-text/
- http://www.cardeo.ca/2010/adding-an-outline-to-your-text-using-the-css3-text-stroke-property (text-stroke)
- http://css-tricks.com/7405-adding-stroke-to-web-text/ (text-stroke)
- http://www.webkit.org/blog/85/introducing-text-stroke/
- http://code.stephenmorley.org/html-and-css/white-space-handling/
- http://www.impressivewebs.com/css-white-space/
- http://www.quirksmode.org/css/stroke.html
- http://www.impressivewebs.com/word-wrap-css3/
- http://www.fatihhayrioglu.com/satir-donusuword-wrap-firefox-sorunu-nasil-cozulur/#idc-cover
- http://webdesignerwall.com/tutorials/word-wrap-force-text-to-wrap
- https://developer.mozilla.org/en/CSS/text-align
- https://developer.mozilla.org/en/CSS/text-overflow
- http://www.456bereastreet.com/archive/201105/clipping_text_with_css3_text-overflow/
- http://www.cssplay.co.uk/menu/text-overflow.html (örnek)
- http://www.css3.info/preview/text-overflow/
- http://deepubalan.com/blog/2010/11/27/text-overflow-css3-property-explained-pure-css-solution-to-get-ellipsis/
- http://caniuse.com/text-overflow (destek listesi)
- https://developer.mozilla.org/en/CSS/text-rendering
- http://trentwalton.com/2010/06/29/css-text-rendering/
- http://htmlcss.wikia.com/wiki/Text-rendering
- http://coding.smashingmagazine.com/2010/03/01/css-and-the-future-of-text/
- http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-better-typography-part-2
- http://www.webreference.com/programming/corecss/2/4.html
CSS3 Yazı Tipi Özellikleri
Kasım 16th, 2011 • CSS
Etiketler: font-effect, font-emphasize, font-face, font-smooth, font-stretch
Yazı tipi özellikleri her ne kadar CSS2.1 standartlarında olsada tipografik birçok ihtiyacı karşılamadığı zamanla görüldü. En büyük sorun kullanıcının bilgisayarında olmayan yazı tiplerini kullandığımızda bu yazı tiplerini resim olarak kullanmak zorunda olmamızdı veyahut sIFR veya cufon gibi çözümler üretilse dahi bunlar yan yol ile çözüm üretmektir. Bu sorunu @font-face özelliği ile büyük ölçüde halleden CSS standartları bunu dışında diğer sorunlarıda görüp CSS3 ile birlikte çözüme kavuşturmaya çalışıyor.
Burada sizlere bu özellikleri anlatmaya çalışacağım.
@font-face
Bu konuyda daha önce derinlemesine değinmiştim. @font-face kullanımı bağlantısından detaylı bilgi alabilirsiniz. Bu özelliği diğerlerine göre avantajı mevcut tüm tarayıcılar tarafından desteklenmesidir.
font-size-adjust
font-size-adjusting özelliği yazı tipinin x-yüksekliği değerini orantılı olarak ayarlamamızı sağlar. x-yüksekliği değeri; aşağıdaki görselde de görüldüğü gibi küçük x harfinin yüksekliğini gösterir.
Bu özellik farklı platformlar için kod yazarken çok önem kazanacaktır. Tasarımınız eğer belli sınırları var ise ve farklı işletim sistemlerinde aynı görüntüyü elde etmek istiyorsanız yükseklik için aynı oranı yakalamamıza yaracak güzel bir özellik.
Bir örnek verecek olursak; Verdana, Arial ve Trebuchet MS uyguladığımız 3 aynı metinin sonucu aşağıdaki gibi olacaktır.
Arial uyguladığımız 2. kolon ve Trebuchet Ms uyguladığımız 3. kolon aynı yüksekliğe sahipken ilk kolondaki verdana uyguladığımız metin yüksekliği daha yüksektir. Aynı yüksekiği yakalamak için
.kolon1{
font:12px/18px Verdana, Geneva, sans-serif;
font-size-adjust:0.47;
}
aynı yüksekliği yakalamamızı sağlayacaktır.
Bu özelliği daha iyi anlamak için http://brunildo.org sitesindeki örnek çok güzel.
Örneği görmek için tıklayınız.
font-stretch
font-stretch özelliği CSS2 ile birlikte gelip CSS2.1 ile birlikte kalkan özelliklerden biridir. CSS3 ile birlikte tekrar standartlara girmeye çalışıyor. Henüz hiç bir tarayıcı desteklemiyor.
font-stretch özelliği metinlerin geniş veya dar olmasını ayarlar.
Aldığı değerler;
normal
Yazı tipinin normal boyutlara getirir
semi-condensed, condensed, extra-condensed, ultra-condensed
Metni belirlene ölçülerde daraltır. Yarı, ekstra, normal ve ultra
semi-expanded, expanded, extra-expanded, ultra-expanded
Metni belirlene ölçülerde genişletir. Yarı, ekstra, normal ve ultra
wider, narrower CSS3’de bu değerler önerilmiyor
Göreceli değerlerdir. Kapsayıcı elemana göre göreceli olarak değer alır. wider değeri alan eleman kapsayıcısından daha geniş olurken, narrower değeri alan eleman kapsayıcısından daha dar olur.
font-effect
Metinlere oymacılık efektlerini vermek için kullanabileceğimiz bir özellik. CSS3 standartların eklenen bu özellik sayesinde biz kabartma, oyma ve dış hat çizgisi uygulayabiliriz. Kullanma için pek mantıklı gelmedi bana ama zaman vermek gerekiyor biraz.
font-smooth
Yazı tipi uygulamalarında yumuşatma işlemi çok önemlidir. Ancak bu sistemi işletim sistemleri ele aldığı için biz kod yazarları için işin bu tarafı için ancak bir iki çakma yöntem uygulamak kalıyordu. Bu özellik şimdilik pek etkili olmasada ilerisi için bir ümit benim için. Her bilgisayar Mac olsa yada PC’ler daha iyi yazı tipi tarasa font-face’in en büyük eksikliği ortadan kalkacaktır.
Gelecekle ümitle bakmak için bu özelliği daha etkin olması lazım.
font-emphasize
Asya kökenli yazı tipleri için kullanılabilecek bir özellik. Zamanla daha detaylı inceleriz. Lazım oldukça incelemek gereken bir özellik.
Sonuç
Tipografi çok detaylı bir mecra zamanla daha güzel sonuçlar alacağımızı düşünsemde şimdilik çok başarılı olduğunu söyleyemem. CSS3 ile Yazı tipi özellikleri arasında en önemlisi font-face özelliği bence, hala belli sorunları olsada tüm tarayıcıların destekliyor olması çok büyük bir katkıdır.
İleride her şey daha güzel olacak.
Kalın sağlıcakla
Kaynaklar
- http://www.w3.org/TR/css3-fonts/
- http://www.css3.info/more-type-control-with-css3-fonts/
- http://www.quackit.com/css/properties/css_font-size-adjust.cfm
- http://webdesignernotebook.com/css/the-little-known-font-size-adjust-css3-property/
- http://www.fonttester.com/help/css_property/font-size-adjust.html
- http://www.blackinci.com/css/15-css-font-ozellikleri.html#adjust
- http://webdesign.about.com/od/styleproperties/p/blspfontsizeadj.htm
- https://developer.mozilla.org/samples/cssref/font-size-adjust.html
- http://css-infos.net/property/-webkit-text-size-adjust
- http://www.emdpi.com/cssfontsizeadjust.html
- http://www.impressivewebs.com/little-known-css3-type/
- https://developer.mozilla.org/en/CSS/font-size-adjust
- http://www.w3.org/TR/WD-font/#font-size-adjust
- http://www.siku-siku.com/blog/2010/11/22/preserving-the-x-height-of-your-preferred-font-choice/
- http://babylon-design.com/mais-c-est-quoi-au-juste-font-size-adjust/ ()
- http://www.peterkroener.de/schoenes-neues-css-font-size-adjust/ (Almanca güzel)
- http://www.webspaceworks.com/resources/fonts-web-typography/43/ (oran değerleri)
- http://www.fonttester.com/help/css_property/font-size-adjust.html
- http://www.opera.com/docs/specs/presto27/css/fonts/ (font desteği)
- http://stuff4designers.com/2011/03/15/how-to-use-font-size-adjust/
- http://www.fatihhayrioglu.com/css-ve-tipografi/
- http://webforfreaks.com/cssandtype/index.php?chemin=content/2011-06-11/
- http://brunildo.org/test/xheight.pl (font-size-adjusting – örnek)
- http://www.xhtml-lab.com/css3-reference/font-size-adjust (güzel)
- http://www.w3schools.com/cssref/css3_pr_font-stretch.asp (font-stretch)
- https://developer.mozilla.org/en/CSS/font-stretch (font-stretch)
- http://msdn.microsoft.com/library/ff974090.aspx (font-stretch)
- http://meyerweb.com/eric/css/tests/css3/show.php?p=font-stretch (font-stretch)
- http://log.edds.me.uk/post/436921532/firefox-3-6s-css-font-stretch-support (font-stretch)
- http://clagnut.com/blog/2265/ (font-stretch)
- http://www.cssportal.com/css-properties/font-effect.htm
- http://www.handycss.com/wiki/font-effect/
- http://szafranek.net/works/articles/font-smoothing-explained/
- http://maxvoltar.com/archive/-Webkit-font-smoothing (webkit-macos)
- http://www.usabilitypost.com/2010/08/26/font-smoothing/ (webkit-macos)
- http://daneden.me/2010/12/css-font-smoothing/
ie7 Renk Geçişi Sorunu ve Çözümü
Ekim 20th, 2011 • 2 yorum CSS
Etiketler: css sorunları, filtre, ie7, renk geçişi
CSS3 artık bazı özellikleri ile hayatımıza giriyor, tabi kod yığını halinde girse de güzel sonuçları gördükçe kod yığını sorununu dert etmiyoruz. Tabi sorunlardan bir taneside İnternet Explorer desteklememesi. Daha önce İnternet Explorer için çözüm üretmiş olduğumuz box-shadow özelliğini anlatmıştık. Her şey buraya kadar güzel, ancak geçenlerde bir sorunla karşılaştım ve sizlerle paylaşmak istedim.
Sorun şu ki ie7’de(ki ie6’yı öldürdük ama ie sorunlarından kurtulamadık) uyguladığım filtre: uygulanmıyor. http://www.colorzilla.com/gradient-editor/ sitesindeki aracı kullanarak renk geçişi kodlarımı oluşturuyorum.
div{
background: #f6e6b4; /* Old browsers */
background: -moz-linear-gradient(top, #f6e6b4 0%, #ed9017 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f6e6b4), color-stop(100%,#ed9017)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* IE10+ */
background: linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6e6b4', endColorstr='#ed9017',GradientType=0 ); /* IE6-9 */
padding:5px 10px;
}
Şöyle bir kodumuz olsun uygulamaya ie7’de baktığımızda background: #ffd65e; /* Old browsers */ satırının sonucunu görüyoruz, halbuki ie7 doğrusal renk geçişini destekliyor, ancak hasLayout sorunu nedeni ile bu özelliği uygulamıyor. Bir yükseklik veya genişlik tanımı yapınca düzeliyor, ancak bu benim işime yaramıyor. Gerçek çözüm ise hasLayout sorunlarının kahramanı zoom:1 tanımı
div{
background: #f6e6b4; /* Old browsers */
background: -moz-linear-gradient(top, #f6e6b4 0%, #ed9017 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f6e6b4), color-stop(100%,#ed9017)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* IE10+ */
background: linear-gradient(top, #f6e6b4 0%,#ed9017 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6e6b4', endColorstr='#ed9017',GradientType=0 ); /* IE6-9 */
padding:5px 10px;
zoom:1;
}
Kaynaklar
CSS3 background-origin ve background-clip özellikleri
Eylül 23rd, 2011 • 5 yorum CSS
Etiketler: -webkit-background-clip:text, -webkit-text-fill-color:transparent, background-clip, background-origin, css3
background özelliklerini anlatırken background tanımlarının içerik ve padding alanının ardalanını etkilediğini söylemiştik. CSS2.1’de tanımladığımız ardalan resimleri içeriği ve padding uygulanan alanları kapsıyor. CSS3 ile birlikte buradaki kabul değişti. Artık kenar çizgileride dahil edilebiliyor veya içerik alanı ile sınırlandırılabiliyor. Bize bu imkanı CSS3’ün background-clip ve background-origin özellikleri sağlıyor.
İlk olarak background-origin özelliğini inceleyerek başlayalım.
background-origin
background-image konumunu hesaplamada elementin kutusunun sınırlarını belirler. CSS3’den önce bu sabit bir değer olarak padding-box idi. Bu özellik bize farklı konumlandırma imkanı sağlar.
Yapısı: background-origin: <bg-box>
Aldığı Değerler: <bg-box> border-box | padding-box | content-box
Başlangıç değeri: padding-box
Uygulanabilen elementler: Tüm elementler
Kalıtsallık: Yok
Aldığı değerleri kısaca açıklarsak
- border-box: background-image konumu border alanından başlar
- padding-box: background-image konumu padding alanından başlar
- content-box: background-image konumu içerik alanından başlar
#kutu1 {
-moz-background-origin: border;
-webkit-background-origin: border;
-webkit-background-origin: border-box;
background-origin: border-box;
}
#kutu2 {
-moz-background-origin: padding;
-webkit-background-origin: padding;
-webkit-background-origin: padding-box;
background-origin: padding-box;
}
#kutu3 {
-moz-background-origin: content;
-webkit-background-origin: content;
-webkit-background-origin: content-box;
background-origin: content-box;
}
background-position:fixed tanımlı elementlere etki etmez.
Tarayıcı Destekleme Listesi
Firefox 3.6+ (-moz- öneki ile) 4+ (öneksiz)
Chrome 1+ (-webkit- öneki ile)
Safari 3.0+ (-webkit- öneki ile)
Opera 10.5
İnternet Explorer 9+
background-clip
background-clip ardalanın nerede gösterileceğini tanımlar. Daha önce padding dahil içerik alanı sabit olarak geliyordu, artık border alanıda dahil edilebiliyor veya padding alanı kapsamdan çıkarılabiliyor
Yapısı: background-clip: <bg-box>
Aldığı Değerler: <bg-box> border-box | padding-box | content-box
Başlangıç değeri: border-box
Uygulanabilen elementler: Tüm elementler
Kalıtsallık: Yok
Aldığı değerleri kısaca açıklarsak
- border-box: Ardalan içerik alanı + padding alanı + border alanını kapsar.
- padding-box: Ardalan içerik alanı + padding alanını kapsar
- content-box: Ardalan sadece içerik alanını kapsar.
border-box tanımı eğer background-origin:border-box ise uygulanır.
#kutu1{
-moz-background-origin: border;
-webkit-background-origin: border;
-webkit-background-origin: border-box;
background-origin: border-box;
-moz-background-clip:border;
-webkit-background-clip:border;
-webkit-background-clip:border-box;
background-clip:border-box;
}
#kutu2{
-moz-background-origin: border;
-webkit-background-origin: border;
-webkit-background-origin: border-box;
-moz-background-clip:padding;
-webkit-background-clip:padding;
-webkit-background-clip:padding-box;
background-clip:padding-box;
}
#kutu3{
-moz-background-origin: border;
-webkit-background-origin: border;
-webkit-background-origin: border-box;
-moz-background-clip:content;
-webkit-background-clip:content;
-webkit-background-clip:content-box;
background-clip:content-box;
}
background-origin:border-box olarak tanımladığımızda background-clip özelliğini daha iyi anlarız. Her üç kutudaki farkları gördüğünüz gibi. Resim sırası ile border, padding ve içerik alanından kırpılmıştır.
Tarayıcı Destekleme Listesi
Firefox 3.6+ (-moz- öneki ile) 4+ (öneksiz)
Chrome 1+ (-webkit- öneki ile)
Safari 3.0+ (-webkit- öneki ile)
Opera 10.5
İnternet Explorer 9+
backgroun-origin özelliği background-image konumunun kapsama alanını belirlerken, background-clip ise background alanını kırpmak için kullanılır. background-origin sadece ardalan resmini etkilerken background-clip ardalan resmi ve ardalan renginide etkiler.
Bu özellikleri destekleyen farklı tarayıcılar için önek ile çözüm üretilir. Diğer önek uygulamalarında farklı olarak bu özelliklerin değerlerinde de tarayıcı sürümleri arasında farklılıklar vardır. Firefox ve Webkit’in eski sürümlerinde değer olarak border, content ve padding değerlerini desteklerken son çıkan sürümler standartlaşan content-box, border-box ve padding-box değerlerini desteklemektedirler.
background-clip: text Değeri
Webkit tabanlı tarayıcılarda diğerlerinden farklı olarak text değeride vardır. Henüz standartlarda bulunmayan bu değeri sadece webkit kullanan Chrome ve Safari desteklemektedir. Bu değer atandığında metinin ardalanına resim uygulanıyor geri kalan kısımlara ise saydam ardalan olarak kalıyor.
#kutu1 {
-moz-background-origin: border;
-webkit-background-origin: border;
-webkit-background-origin: border-box;
background-origin: border-box;
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
font:bold 72px Arial, Helvetica, sans-serif;
}
-webkit-text-fill-color:transparent ile metnin ardalanını saydamlaştırıyoruz ve elemanın ardalanındaki resmi gösteriyoruz. Çok güzel görsel çalışmaları bu şekilde yapabiliriz, ancak henüz sadece Chrome ve Safari desteklediği için pek kullanışlı değil.
Kaynaklar
- http://www.css3.info/preview/background-origin-and-background-clip/
- http://www.w3.org/TR/css3-background/
- http://www.quirksmode.org/css/background.html
- http://www.w3schools.com/cssref/css3_pr_background-clip.asp
- http://www.standardista.com/css3/css3-background-properties/
- http://css-tricks.com/7423-transparent-borders-with-background-clip/
- https://developer.mozilla.org/en/CSS/background-clip
- https://developer.mozilla.org/en/CSS/background-origin
- http://dev.opera.com/articles/view/css3-border-background-boxshadow/
- http://www.sitepoint.com/new-properties-and-values-in-backgrounds-with-css3/
- http://www.css3.info/webkit-introduces-background-cliptext/ (text)
- http://www.cssreset.com/2010/css-tutorials/fun-with-webkit-background-clip-and-font-face/ (text)
- http://www.webkit.org/blog/164/background-clip-text/ (text)
- http://www.impressivewebs.com/background-clip-css3/ (güzel)
- http://css-class.com/test/css/backgrounds/background-origin1.htm
- http://css-infos.net/property/background-origin
- https://www.youtube.com/watch?v=7xVS2FX2Mao&feature=related (video)
Webkit Tabanlı Tarayıcılar(Chrome ve Safari) İçin Düzeltme(Hack) Sorunu ve Çözümü
Eylül 21st, 2011 • CSS
Etiketler: chrome, css düzeltme, media, safari, WebKit
Genelde tarayıcı düzeltmelerini ie için yaparız. Ancak bu sefer Chrome için bir düzeltme yapmam gerekti(Chrome’un line-height ile olan sorun) araştırdım ve media sorgusu ile bir düzeltme kodu buldum.
@media screen and (-webkit-min-device-pixel-ratio:0) {
.arama { background-color: #FF0000; }
#solAlan {color: #0000FF;}
}
Şeklinde bir kod işimi gördü, ancak projeyi yayına atarken sıkıştırıp gönderiyoruz ve sıkıştırılınca
@media screen and(-webkit-min-device-pixel-ratio:0)
Satırındaki and ve ( arasındaki boşluğu sıkıştırma esnasında yok ediyor ve buda bu düzeltmenin uygulanmamasına neden oluyor. Çözüm için araya çakma bir yöntem(/*!*/) ile boşluk bırakmalıyız.
@media screen and/*!*/(-webkit-min-device-pixel-ratio:0) { ... }
Şeklinde çözüm üretebiliyoruz.
Belki küçük bir ipucu ama lazım olur günün birinde