CSS Şekillerini Kullanmaya Başlama

Özel yolların etrafındaki içeriği sarmalama

Razvan Caliman
Razvan Caliman

Uzun bir süredir, web tasarımcıları dikdörtgenin sınırları içinde içerik oluşturmak zorunda kalmıştır. Web'deki çoğu içerik hâlâ basit kutularda hapsolmuş durumda. Dikdörtgen olmayan düzenlere karışan çoğu yaratıcı girişim, hayal kırıklığıyla son buluyor. Bu durum, Chrome 37 sürümünden itibaren kullanıma sunulan CSS Şekilleri'nin kullanıma sunulmasıyla birlikte değişecek. CSS Şekilleri, web tasarımcılarının içeriği özel yolların (daire, elips ve çokgenler) etrafında sarmasına olanak tanıyarak dikdörtgenin kısıtlamalarından kurtulmalarını sağlar.

Şekiller manuel olarak tanımlanabilir veya resimlerden çıkarılabilir.

Çok basit bir örneği inceleyelim.

İçeriğin boşlukları doldurmasını ve boşluğu doldurmasını umarak şeffaf parçalar içeren bir resmi ilk kez hareket ettirirken öğenin etrafında sürekli olarak kalan dikdörtgen sarmalama şekli sizi hayal kırıklığına uğratabilir. Bu sorunu çözmek için CSS Şekilleri kullanılabilir.

Resimden şekil çıkarma
<img class="element" src="image.png" />
<p>Lorem ipsum…</p>

<style>
.element{
  shape-outside: url(image.png);
  shape-image-threshold: 0.5;
  float: left;
}
</style>

shape-outside: url(image.png) CSS bildirimi, tarayıcıya resimden bir şekil çıkarmasını bildirir.

shape-image-threshold özelliği, şekli oluşturmak için kullanılacak piksellerin minimum opaklık düzeyini tanımlar. Değeri 0.0 (tamamen şeffaf) ile 1.0 (tamamen opak) arasındaki aralıkta olmalıdır. Dolayısıyla, shape-image-threshold: 0.5, şekli oluşturmak için yalnızca% 50 ve üzeri opaklığa sahip piksellerin kullanılacağı anlamına gelir.

Bu durumda float özelliği çok önemlidir. shape-outside özelliği, içeriğin sarmalanacağı alanın şeklini kayma olmadan tanımlar ancak şeklin etkilerini görmezsiniz.

Öğelerin, float değerlerinin karşı tarafında bir kayan alan vardır. Örneğin, kahve fincanı resmi içeren bir öğe sola doğru kaydırılıyorsa bardağın sağ tarafında kayan bir alan oluşturulur. Her iki tarafında boşluklar olan bir görüntü üzerinde çalışabilseniz bile, içerik yalnızca bolluk özelliği tarafından belirtilen karşı tarafta (solda veya sağda) şeklin etrafını sarmalar; her ikisi birden olmaz.

İleride, kullanıma sunulan CSS Hariç Tutmaları sayesinde kayan olmayan öğelerde shape-outside kullanılabilecektir.

Manuel olarak şekil oluşturma

Resimlerden şekilleri ayıklamanın yanı sıra, bunları manuel olarak da kodlayabilirsiniz. Şekil oluşturmak için birkaç işlevsel değer arasından seçim yapabilirsiniz: circle(), ellipse(), inset() ve polygon(). Her şekil işlevi bir dizi koordinat kabul eder ve koordinat sistemini oluşturan bir başvuru kutusuyla eşleştirilir. Birazdan referans kutuları hakkında daha fazla bilgi edinebilirsiniz.

daire() işlevi

daire() şekil değerinin resmi

Çember şekli değerinin tam gösterimi circle(r at cx cy) şeklindedir; burada r dairenin yarıçapıdır, cx ve cy ise X ekseni ve Y eksenindeki daire merkezinin koordinatlarıdır. Çember merkezinin koordinatları isteğe bağlıdır. Bunları çıkarırsanız öğenin merkezi (köşegenlerinin kesişimi) varsayılan olarak kullanılır.

.element{
  shape-outside: circle(50%);
  width: 300px;
  height: 300px;
  float: left;
}

Yukarıdaki örnekte, içerik, dairesel bir yolun dışına çıkar. Tek bağımsız değişken 50%, dairenin yarıçapını belirtir ve bu özel örnekte, öğenin genişliği veya yüksekliğinin yarısına karşılık gelir. Öğenin boyutlarının değiştirilmesi daire şeklinin yarıçapını etkiler. Bu, CSS Şekillerinin nasıl duyarlı olabileceğini gösteren temel bir örnektir.

Devam etmeden önce, CSS Şekillerinin yalnızca bir öğenin etrafındaki kayan alanın şeklini etkilediğini unutmayın. Öğenin arka planı varsa şekle göre kırpılmaz. Bu efekti elde etmek için CSS Maskeleme'deki özellikleri (clip-path veya mask-image) kullanmanız gerekir. clip-path özelliği, CSS Şekilleri ile aynı gösterimi kullandığından değerleri yeniden kullanabilmeniz için kullanışlıdır.

&quot;circle()&quot; şekli + klip yolunun resmi

Bu dokümandaki resimlerde, şekli vurgulamak ve efektleri anlamanıza yardımcı olmak için kırpma kullanılmıştır.

Daire şekline dönün.

Çemberin yarıçapı için yüzdeler kullanılırken, değer aslında biraz daha karmaşık bir formülle hesaplanır: karekök(genişlik^2 + yükseklik^2) / kare(2). Bu yöntemi anlamak, öğenin boyutları eşit olmadığında ortaya çıkacak daire şeklinin nasıl olacağını hayal etmenize yardımcı olur.

Tüm CSS birim türleri şekil işlevi koordinatlarında kullanılabilir: px, em, rem, vw, vh vb. İhtiyaçlarınız için yeterince esnek veya sert olan modeli seçebilirsiniz.

Çemberin konumunu, merkezinin koordinatları için açık değerler ayarlayarak ayarlayabilirsiniz.

.element{
  shape-outside: circle(50% at 0 0);
}

Böylece, çember merkezi koordinat sisteminin merkezinde konumlandırılır. Koordinat sistemi nedir? Bu noktada referans kutularını kullanıma sunuyoruz.

CSS Şekilleri için referans kutuları

Referans kutusu öğenin etrafında sanal bir kutudur. Bu kutu, şekli çizmek ve konumlandırmak için kullanılan koordinat sistemini oluşturur. Koordinat sisteminin başlangıcı sol üst köşesindedir. X ekseni sağı, Y ekseni de aşağıyı gösterir.

CSS Şekilleri için koordinat sistemi

shape-outside işlevinin, içeriğin sarılacağı kayan alanın şeklini değiştirdiğini unutmayın. Kayan alan, margin özelliği tarafından tanımlanan kutunun dış kenarlarına uzanır. Bu, margin-box olarak adlandırılır ve açıkça belirtilmediği takdirde şekiller için varsayılan referans kutusudur.

Aşağıdaki iki CSS bildirimi aynı sonuçlara sahiptir:

.element{
  shape-outside: circle(50% at 0 0);
  /* identical to: */
  shape-outside: circle(50% at 0 0) margin-box;
}

Öğe için henüz bir kenar boşluğu belirlemedik. Bu noktada, koordinat sisteminin başlangıç noktasıyla çember merkezinin, öğenin içerik alanının sol üst köşesinde olduğunu varsaymak güvenlidir. Bir kenar boşluğu ayarladığınızda bu durum değişir:

.element{
  shape-outside: circle(50% at 0 0) margin-box;
  margin: 100px;
}

Koordinat sisteminin kökeni, dairenin merkezi gibi, şimdi öğenin içerik alanının dışındadır (100 piksel yukarı ve 100 piksel sol). Çember yarıçapının hesaplanan değeri de margin-box referans kutusu tarafından oluşturulan koordinat sisteminin artan yüzeyini hesaba katacak şekilde büyütülür.

Kenar boşluğu olan ve olmayan kenar boşluğu-koordinat sistemi
Birkaç referans kutusu seçeneği vardır: "margin-box", "border-box", "padding-box" ve "content-box". Adları, sınırları belirtir. Daha önce "kenarlık kutusu"nu açıklamıştık. "kenarlık-kutusu" öğenin kenarlıklarının dış kenarları ile sınırlanmıştır, "dolgu-kutusu" öğenin dolgusu tarafından sınırlanırken "içerik kutusu" bir öğe içindeki içerik tarafından kullanılan gerçek yüzey alanıyla aynıdır.
Tüm referans kutularının resmi

shape-outside beyanıyla aynı anda yalnızca bir referans kutusu kullanılabilir. Her referans kutusu, şekli farklı ve bazen de fark edilmeyecek şekilde etkiler. Bu konuyu daha ayrıntılı olarak ele alan ve CSS Şekilleri için referans kutularını anlamanıza yardımcı olan başka bir makale daha bulunmaktadır.

ellipse() işlevi

ellipse() şekil değerinin resmi

Üç nokta, sıkıştırılmış dairelere benzer. Bunlar ellipse(rx ry at cx cy) olarak tanımlanır; burada rx ve ry, elipsin X ekseni ve Y eksenindeki yarıçapıdır. cx ve cy ise elipsin merkezinin koordinatlarıdır.

.element{
  shape-outside: ellipse(150px 300px at 50% 50%);
  width: 300px;
  height: 600px;
}

Yüzde değerleri, koordinat sisteminin boyutlarına göre hesaplanır. Burada komik matematik hesabı gerekmez. Elips merkezinin koordinatlarını çıkarabilirsiniz, bu koordinatları koordinat sisteminin merkezinden elde ederiz.

X ve Y eksenlerindeki yarıçap da anahtar kelimelerle tanımlanabilir: farthest-side, elips merkezi ile referans kutusunun kendisinden en uzak kenarı arasındaki mesafeye eşit bir yarıçap sağlar. closest-side ise bunun tam tersini ifade eder; merkez ile kenar arasındaki en kısa mesafeyi kullanın.

.element{
  shape-outside: ellipse(closest-side farthest-side at 50% 50%);
  /* identical to: */
  shape-outside: ellipse(150px 300px at 50% 50%);
  width: 300px;
  height: 600px;
}

Öğenin boyutları (veya referans kutusu) öngörülemeyen şekillerde değişebiliyor ancak elips şeklinin uyum içinde olmasını istiyorsanız bu özellik kullanışlı olabilir.

circle() şekil işlevinde yarıçap için aynı farthest-side ve closest-side anahtar kelimeleri de kullanılabilir.

polygon() işlevi

polygon() şekil değerinin resmi

Daireler ve elipsler fazla sınırlayıcıysa çokgen şekil işlevi size bir dizi seçenek sunar. Biçim polygon(x1 y1, x2 y2, ...) şeklindedir ve bir poligonun her bir köşe noktası (nokta) için x y koordinatlarından oluşan çiftler belirtirsiniz. Bir poligonu belirtmek için gereken minimum çift sayısı üçgendir.

.element{
  shape-outside: polygon(0 0, 0 300px, 300px 600px);
  width: 300px;
  height: 600px;
}

Köşeler, koordinat sistemine yerleştirilir. Duyarlı poligonlarda koordinatların bir kısmı ya da tamamı için yüzde değerleri kullanabilirsiniz.

.element{
  /* polygon responsive to font-size*/
  shape-outside: polygon(0 0, 0 100%, 100% 100%);
  width: 20em;
  height: 40em;
}

SVG'den içe aktarılan isteğe bağlı bir fill-rule parametresi vardır. Bu parametre, tarayıcıya, bir poligonun kendi kendini kesen yollar veya iç içe şekiller olması durumunda nasıl "iç içe olduğunu" nasıl dikkate alacağını bildirir. Joni Trithall, SVG'de dolgu kuralı özelliğinin nasıl çalıştığını çok iyi açıklıyor. Tanımlanmamışsa fill-rule varsayılan olarak nonzero olur.

.element{
  shape-outside: polygon(0 0, 0 100%, 100% 100%);
  /* identical to: */
  shape-outside: polygon(nonzero, 0 0, 0 100%, 100% 100%);
}

inset() işlevi

inset() şekil işlevi, içeriği sarmalamak için etrafında dikdörtgen şekiller oluşturmanıza olanak tanır. CSS'nin basit kutulardan ücretsiz web içeriğini Şekillendirdiği ilk önermesi göz önünde bulundurulduğunda bu durum kulağa çok mantıklı gelmeyebilir. Öyle olabilir. Kayan noktalar ve kenar boşlukları ile ya da polygon() ile halihazırda ulaşılamayacak bir inset() kullanım alanı bulmadım. Bununla birlikte inset(), dikdörtgen şekiller için polygon()'a göre daha okunabilir bir ifade sağlar.

İç içe şekil işlevinin tam gösterimi inset(top right bottom left border-radius) şeklindedir. İlk dört konum bağımsız değişkeni, öğenin kenarlarından içe doğru ofsettir. Son bağımsız değişken dikdörtgen şeklin kenarlık yarıçapıdır. İsteğe bağlıdır, dışarıda bırakabilirsiniz. Halihazırda CSS'de kullandığınız border-radius kısayol gösterimine uygundur.

.element{
  shape-outside: inset(100px 100px 100px 100px);
  /* yields a rectangular shape which is 100px inset on all sides */
  float: left;
}

Referans kutularından şekil oluşturma

shape-outside özelliği için bir şekil işlevi belirtmezseniz tarayıcının, öğenin referans kutusundan şekil elde etmesine izin verebilirsiniz. Varsayılan referans kutusu margin-box'dir. Şu ana kadar egzotik bir şey yok, float'lar zaten böyle çalışıyor. Ancak bu tekniği uyguladığınızda bir öğenin geometrisini yeniden kullanabilirsiniz. border-radius özelliğine bakalım.

Kayan bir öğenin köşelerini yuvarlamak için kullanırsanız kırpma efekti elde edersiniz ancak kayan alan dikdörtgen içinde kalır. border-radius tarafından oluşturulan konturun etrafını sarmak için shape-outside: border-box ekleyin.

Kenarlık kutusu referans kutusunu kullanarak bir öğenin kenarlık yarıçapından şekil çıkarma
.element{
  border-radius: 50%;
  shape-outside: border-box;
  float: left;
}

Elbette tüm referans kutularını bu şekilde kullanabilirsiniz. Türetilmiş şekillerin başka bir kullanımı şu şekildedir: ofset çekme tırnak işareti.

İçerik kutusu referans kutusunu kullanarak ofset çekme alıntısı oluşturma

Ofset çekme alıntı etkisi, yalnızca kayan ve marj özelliklerini kullanarak elde edilebilir. Ancak bunun için tırnak öğesini HTML ağacında oluşturulmasını istediğiniz noktaya yerleştirmeniz gerekir.

Aynı göreli konum çekme tırnak efektini daha fazla esneklikle nasıl elde edeceğiniz aşağıda açıklanmıştır:

.pull-quote{
  shape-outside: content-box;
  margin-top: 200px;
  float: left;
}

Şeklin koordinat sistemi için content-box referans kutusunu açık bir şekilde ayarladık. Bu örnekte, pull tırnak işaretindeki içerik miktarı dış içeriğin sarmalanacağı şekli tanımlar. Burada margin-top özelliği, HTML ağacındaki konumundan bağımsız olarak pull alıntıyı konumlandırmak (ofset) için kullanılır.

Şekil kenar boşluğu

İçeriği bir şeklin etrafına sarmalamanın o şeklin öğeye çok yakın bir şekilde sürtünmesine neden olabileceğini fark edeceksiniz. shape-margin özelliğini kullanarak şeklin etrafına boşluk ekleyebilirsiniz.

.element{
  shape-outside: circle(40%);
  shape-margin: 1em;
  float: left;
}

Sonuç, normal margin özelliğini kullanmaya alışkın olduğunuza benzer ancak shape-margin yalnızca shape-outside değerinin etrafındaki alanı etkiler. Yalnızca koordinat sisteminde şekil için yer varsa, şeklin etrafında boşluk bırakacaktır. Yukarıdaki örnekte dairenin yarıçapı %50 yerine %40 olarak ayarlanmıştır. Yarıçap %50'ye ayarlanırsa, çember koordinat sistemindeki tüm alanı kaplayacaktır, shape-margin etkisi için hiç alan kalmamıştır. Şeklin sonuçta margin-box (öğe ve çevreleyen margin) ile sınırlandığını unutmayın. Şekil daha büyükse ve taşarsa margin-box şekline kırpılır ve sonuçta dikdörtgen bir şekil elde edersiniz.

shape-margin işlevinin yalnızca tek bir pozitif değeri kabul ettiğini bilmeniz önemlidir. Uzun elle yazılmış bir nota sahip değil. Bir dairenin şekil-üst kenarı nedir?

Şekillere animasyon ekleme

CSS şekillerini geçişler ve animasyonlar gibi diğer birçok CSS özelliğiyle birlikte kullanabilirsiniz. Yine de, okuma sırasında metin düzeninin değiştirilmesinin kullanıcılar için çok rahatsız edici olduğunu vurgulamam gerekir. Şekillere animasyon eklemekten yana olursanız bu deneyime çok dikkat edin.

circle() ve ellipse() şekillerinin yarıçaplarını ve merkezlerini, tarayıcının interpolasyon yapabildiği değerlerde tanımlandıkları sürece canlandırabilirsiniz. circle(30%) konumundan circle(50%) konumuna gitmek mümkün. Ancak, circle(closest-side) ile circle(farthest-side) arasında animasyon yapmak tarayıcıyı boğar.

.element{
  shape-outside: circle(30%);
  transition: shape-outside 1s;
  float: left;
}

.element:hover{
  shape-outside: circle(50%);
}
Animasyonlu dairenin GIF&#39;i

polygon() şekilleri canlandırılırken daha ilginç efektler elde edilebilir. Bununla birlikte, poligonun iki animasyon durumu arasında aynı sayıda köşe noktasına sahip olması gerektiğine dikkat edin. Köşeleri ekler veya kaldırırsanız tarayıcı interpolasyon yapamaz.

Bir püf noktası, ihtiyacınız olan maksimum sayıda köşeyi eklemek ve bunları, şekilde algılanan kenar sayısını azaltacak şekilde animasyon durumunda kümelenecek şekilde yerleştirmektir.

.element{
  /* four vertices (looks like rectangle) */
  shape-outside: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  transition: shape-outside 1s;
}

.element:hover{
  /* four vertices, but second and third overlap (looks like triangle) */
  shape-outside: polygon(0 0, 100% 50%, 100% 50%, 0 100%);
}
Animasyonlu üçgen GIF&#39;i

Şeklin içindeki içeriği sarmalama

İçerik sarmalamak için CSS Şekilleri kullanan Alice Harikalar Diyarı demosunun ekran görüntüsü

CSS Şekilleri spesifikasyonunun ilk taslağı, içeriği bir şeklin içinde sarmalamanıza olanak tanıyan bir shape-inside özelliği içeriyordu. Hatta bir süredir Chrome ve Webkit'te de uygulamalar bulunuyordu. Ancak rastgele konumlandırılmış içerikleri özel bir yol içine sarmalamak, olası tüm senaryoları kapsamak ve hataları önlemek için çok daha fazla çaba ve araştırma gerektirir. Bu nedenle, shape-inside özelliği CSS Şekilleri Düzey 2'ye ertelendi ve uygulamaları geri çekildi.

Bununla birlikte, biraz çaba ve düzenleme yaparak içeriği özel bir şekil içine sarmalama efektini elde edebilirsiniz. İşin püf noktası, kapsayıcının karşıt taraflarına konumlandırılmış, shape-outside içeren iki kayan öğe kullanmaktır. Uzlaşmanın nedeni, anlam açısından hiçbir anlamı olmayan ancak içeride bir şekil illüzyonu yaratmak için destek olarak işlev gören bir veya iki boş öğe kullanmaktır.

<div>
  <div class='left-shape'></div>
  <div class='right-shape'></div>

  Lorem ipsum...
</div>

.left-shape ve .right-shape destek öğelerinin kapsayıcının üst kısmındaki konumu, içeriği yan yana getirmek için sola ve sağa kaydırılacağından önemlidir.

.left-shape{
  shape-outside: polygon(0 0, ...);
  float: left;
  width: 50%;
  height: 100%;
}

.right-shape{
  shape-outside: polygon(50% 0, ...);
  float: right;
  width: 50%;
  height: 100%;
}
Alice demosu için şekil içinde şekil için geçici çözüm görseli

Bu stil, iki kayan bağlantının öğenin içindeki tüm alanı kaplamasını sağlar, ancak shape-outside özellikleri içeriğin geri kalanı için yer ayırır.

Tarayıcı, CSS Şekilleri'ni desteklemiyorsa tüm içeriği aşağı iterek kötü efektlere neden olur. Bu nedenle, bu özelliği kademeli olarak geliştirilmiş bir biçimde kullanmak önemlidir.

Önceki şekil animasyonu örneklerinde yer alan metinlerin rahatsız edici olabileceğini fark edeceksiniz. Tüm kullanım alanları, animasyonlu şekil almayı gerektirmez. Ancak, anlamlı olan yerlerde efekt eklemek için CSS Şekilleri ile etkileşimde bulunan diğer özellikleri canlandırabilirsiniz.

CSS Şekilleri'nin Alice Harikalar Diyarında gösteriminde içeriğin üst kenar boşluğunu değiştirmek için kaydırma konumunu kullandık. Metin, iki kayan öğe arasında sıkışmış. Aşağıya doğru hareket ederken, kayan iki öğenin shape-outside'sine göre geçişi yapmalıdır. Bu, metnin tavşan deliğinden aşağı gittiği izlenimini veriyor ve hikaye anlatımı deneyimini zenginleştiriyor. Sınırda olmak nedensiz mi? Olabilir. Ama havalı görünüyor.

Metin düzeni tarayıcı tarafından yerel olarak yapıldığından performans, JavaScript çözümü kullanmaktan daha iyidir. Ancak kaydırma sırasında kenar boşluğunun değiştirilmesi çok sayıda geçiş ve boyama etkinliğini tetikler ve bu da performansı belirgin şekilde düşürebilir. Dikkatli kullanın! Ancak CSS Şekillerini canlandırmadan kullanmak, algılanabilir bir performans isabeti sağlamaz.

Progresif geliştirme

İlk olarak tarayıcının CSS Şekilleri desteği olmadığını varsayarak başlayın ve özelliği tespit ettiğinizde bunu geliştirin. Modernizr, özellik algılamak için iyi bir çözümdür ve "Temel olmayan tespitler" bölümünde CSS Şekilleri için bir test vardır.

Bazı tarayıcılar, harici kitaplıklara gerek kalmadan @supports kuralı aracılığıyla CSS'de özellik algılama sağlar. CSS Şekillerini de destekleyen Google Chrome, @supports kuralını anlar. Kademeli şekilde geliştirmek için bu biçimi şu şekilde kullanırsınız:

.element{
  /* styles for all browsers */
}

@supports (shape-outside: circle(50%)){
  /* styles only for browsers which support CSS Shapes */
  .element{
    shape-outside: circle(50%);
  }
}

Lea Verou, CSS @supports kuralının nasıl kullanılacağı hakkında daha fazla bilgi yazmıştır.

CSS Hariç Tutmalarından açıklık

Bugün CSS Şekilleri olarak bildiğimiz özellikler, spesifikasyonun ilk günlerinde eskiden CSS Hariç Tutmaları ve Şekilleri olarak adlandırılıyordu. Adlandırmadaki değişiklik küçük bir fark gibi görünebilir ama aslında çok önemlidir. Artık ayrı bir spesifikasyon olan CSS Hariç Tutmaları, rastgele konumlandırılmış öğelerin etrafındaki içeriğin kayan bir özellik olmadan sarmalanmasını sağlar. İçeriği, kesinlikle konumlandırılmış bir öğenin etrafına sarmaladığınızı düşünün. Bu, CSS Hariç Tutmaları için bir kullanım örneğidir. CSS Şekilleri yalnızca içeriğin sarılacağı yolu tanımlar.

Dolayısıyla, şekiller ve dışlamalar aynı şey değildir, ancak birbirlerini tamamlarlar. CSS Şekilleri şu anda tarayıcılarda kullanılabilmektedir, ancak CSS Hariç Tutmaları şekil etkileşimi ile henüz uygulanmamıştır.

CSS Şekilleriyle çalışmaya yönelik araçlar

Klasik resim yazma araçlarında yol oluşturabilirsiniz, ancak bu yazmanın yapıldığı sırada hiçbiri CSS Şekilleri değerleri için gerekli söz dizimini dışa aktarmaz. Öyle olsa bile, bu şekilde çalışmak çok pratik olmayacaktır.

CSS Şekilleri, sayfadaki diğer öğelere tepki verdikleri tarayıcıda kullanılmak üzere tasarlanmıştır. Şekli çevreleyen içerikte düzenleme yapmanın etkilerini görselleştirmek çok yararlıdır. Bu iş akışında size yardımcı olacak birkaç araç vardır:

Köşeli parantezler: Köşeli parantezler için CSS Şekil Düzenleyici uzantısı, şekil değerlerini düzenlemek amacıyla etkileşimli bir düzenleyici yerleştirmek için kod düzenleyicinin canlı önizleme modunu kullanır.

Google Chrome: Google Chrome için CSS Şekil Düzenleyici uzantısı, tarayıcının Geliştirici Araçları'nı şekil oluşturmaya ve düzenlemeye yönelik kontrollerle genişletir. Seçilen öğenin üzerine etkileşimli bir düzenleyici yerleştirir.

Google Chrome'daki denetleyici, şekillerin vurgulanması için yerleşik desteğe sahiptir. shape-outside özelliğine sahip bir öğenin üzerine geldiğinizde şekli göstermek için öğe aydınlanır.

Resimlerden şekiller: Resim oluşturmayı ve tarayıcının bunlardan şekil almasını tercih ediyorsanız Rebecca Hauck Photoshop için iyi bir eğitim hazırladı.

Polyfill: Google Chrome, CSS Şekilleri gönderen ilk başlıca tarayıcıdır. Bu özellik yakında Apple'ın iOS 8 ve Safari 8 sürümlerinde desteklenecektir. Diğer tarayıcı satıcıları, bu özelliği ileride kullanmayı düşünebilir. O zamana kadar, temel destek sağlamak için CSS Şekilleri çoklu dolgusu kullanılabilir.

Sonuç

İçeriğin çoğunlukla basit kutularda sıkıştığı bir web'de CSS Şekilleri, web ile baskı tasarımı arasındaki doğruluk boşluğunu kapatarak etkileyici bir düzen oluşturmak için bir yol sunar. Şekiller elbette kötüye kullanılabilir ve dikkat dağıtıcı unsurlar yaratabilir. Ancak şekiller, zevk ve doğru değerlendirmeyle uygulandığında içeriğin sunumunu iyileştirebilir ve kullanıcının dikkatini kendisine özgü bir şekilde odaklayabilir.

Bu e-postada, başkaları tarafından hazırlanan ve çoğunlukla basılı olmayan, dikdörtgen olmayan düzenin ilgi çekici kullanımlarını gösteren bir çalışma koleksiyonu sunuyorum. Umarım bu bilgi, CSS Şekillerini denemeniz ve yeni tasarım fikirleriyle denemeler yapmanız için size ilham verir.

Bu makaleyi inceleyip değerli bilgiler verdikleri için Pearl Chen, Alan Stearns ve Zoltan Horvath'a çok teşekkür ederiz.