shape-outside
Mülkiyet kontrolleri nasıl içerik süzülüyor öğenin sınırlayıcı kutusunu etrafında kaydırılır. Tipik olarak bu, metnin daire, elips veya çokgen gibi bir şeklin üzerinde yeniden akmasını sağlamak içindir:
.element ( float: left; shape-outside: circle(50%); width: 200px; height: 200px; )
Gelecekte değişmesi muhtemel olsa da, bu özelliğin şimdilik yalnızca kayan öğeler üzerinde çalışacağını unutmamak önemlidir. shape-outside
Tesis ayrıca geçişler veya animasyonlarla manipüle edilebilir.
Değerler
circle()
: dairesel şekiller yapmak için.ellipse()
: eliptik şekiller yapmak için.inset()
: dikdörtgen şekiller yapmak için.polygon()
: 3 veya daha fazla köşeli herhangi bir şekil oluşturmak için.url()
: metnin etrafına sarmak için hangi görüntünün kullanılması gerektiğini tanımlar.initial
: şamandıra alanı etkilenmez.inherit
:shape-outside
değeri ebeveynden devralır .
Aşağıdaki değerler, şekli içinde konumlandırmak için kutu modelinin hangi referansının kullanılması gerektiğini tanımlar:
margin-box
padding-box
border-box
Bu değerler, örneğin, ucuna eklenmesi gereken: shape-outside: circle(50% at 0 0) padding-box
. Varsayılan olarak margin-box
referans kullanılacaktır.
elips()
.element ( shape-outside: ellipse(150px 300px at 50% 50%); )
ellipse()
Fonksiyon x yarıçapları değerleri gerektiren, koordinatları ve ardından elips y ekseni sınırlayıcı kutusunun içinde şeklinin merkezi konumuna getirin. Örneğin, yukarıdaki örnek, elipsin merkezini .element
div'in dikey ve yatay merkezine yerleştirecektir :
Yukarıdaki demo div
kendisinin şeklini değiştirdiğimizi öne sürse de , sınırlar ve bir arka plan görüntüsü eklersek, sınırlayıcı kutunun aslında hala dikdörtgen olduğunu görürüz:
Bunu şu şekilde düşünmek daha iyi olabilir: özellikle shape-outside
, öğenin kendisinin geometrisini değil, bir öğenin etrafındaki diğer öğelerin ilişkisini değiştiriyoruz. Bu örnekte olduğu gibi shape-outside
, clip-path()
mülkün yanında kullanmamız gerekeceğini düzeltmek için :
daire()
.element ( shape-outside: circle(50%); )
Bu işlev bir daire oluşturur ve yukarıdaki kod örneğinde yarıçapı yarı yüksekliğinin ve genişliğinin yarısı olan bir daire oluşturur .element
. circle()
Fonksiyonu, içinde şekil konumlandırılması için aynı sözdizimini kullanabilir.
url ()
.element ( shape-outside: url('circle.png.webp'); )
Bu örnekte, biri bir metin bloğunun her iki tarafında olmak üzere iki kayan resmimiz var. Her iki görüntünün de shape-outside
özelliği ayarlanmış olduğundan, alttaki metin bu iki kaymayı önleyecektir.
Ayrıca shape-image-threshold
, şeffaflıklarına bağlı olarak hangi piksellerin şekli oluşturması gerektiğini tarayıcıya bildirecek özelliği ayarlamak da mümkündür . Örneğin:
.element ( shape-outside: url('image.png.webp'); shape-image-threshold: 0.5; )
Bu örnekte, şekli oluşturacak pikseller% 50 ve üzeri şeffaflığa sahip olmalıdır. Dan Değerler 0.0
için (saydam) 1.0
(opak) geçerlidir.
çokgen()
.element ( shape-outside: polygon(0 0, 0 200px, 300px 600px); )
Bu işlev, üç veya daha fazla köşesi olan herhangi bir şekli oluşturur, örneğin:
Bu özellik canlandırılacaksa, animasyonlu durumu bildirdiğinizde aynı sayıda köşe gerektirdiğini unutmamak önemlidir:
.element ( shape-outside: polygon(0 0, 100% 0, 100% 100%, 0 100%); transition: shape-outside 1s; ) .element:hover ( shape-outside: polygon(0 0, 100% 50%, 100% 50%, 0 100%); )
iç metin ()
.element ( shape-outside: inset(100px 100px 100px 100px 10px); /* shape-outside: inset(top right bottom left border-radius); */ )
inset()
dikdörtgen şekiller oluşturmak için bir işlevdir, beş parametre alır ancak beşincisi border-radius
isteğe bağlıdır. Diğer argümanlar, şunların kenarından içe doğru ofsetlerdir .element
:
Yukarıda 200 piksel genişliğinde ve 200 piksel yüksekliğinde bir öğemiz var ve şekli sol taraf dışında her yönde 50 piksele kadar kaydırıyoruz. Böylelikle metin, div üste uzansa bile şeklin üzerine sarılır.
Tarayıcı desteği
Bu tarayıcı destek verileri, daha fazla ayrıntıya sahip olan Caniuse'den alınmıştır. Bir sayı, tarayıcının özelliği o sürümde ve sonrasında desteklediğini gösterir.
Masaüstü Bilgisayar
Krom | Firefox | IE | Kenar | Safari |
---|---|---|---|---|
37 | 62 | Hayır | 79 | 7.1 * |
Mobil / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 8 * |