以往平面設計時可以設計文字繞著圖片編排的文繞圖效果,現在在 CSS 也能夠做到了,以下就用範例來說明。
首先我們先放一個區塊,並讓他 float: left,這樣文字就會繞著區塊走而不會只有一排,這也就是傳統的文繞圖的設定,但以前只能夠在區塊的矩形範圍外,像這樣。
.shape{ background: pink; width: 200px; height: 200px; float: left; }
circle()
接著在這個區塊,就可以使用 shape-outside 來設定形狀文繞圖,這邊先設定圓形的形狀:
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: circle(50%); }
就會看到文字繞著圓形的形狀環繞。
shape-outside 可以加上 at 後調整形狀的中心點,像是:
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: circle(60% at 0% 0%); }
這樣形狀的圓心就會變成在區塊的左上角:
此外還可以設定以下幾種形狀:
ellipse()
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: ellipse(50px 100px); }
polygon()
polygon() 裡可以設定多個座標點,會連成形狀,注意至少要三個點才會形成形狀。
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: polygon(50% 0%, 100% 50%, 50% 100%); }
inset()
inset() 可以設定四個邊往內縮的值。
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: inset(20px 20px 20px 20px); }
url()
url() 可以指定圖片的網址,所以如果替同一張圖片設定 url() 就可以做到文繞圖的效果了。
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: url("https://i.imgur.com/EiEQ1UY.png"); }
如果覺得圖片跟文字距離太近,可以加上 shape-margin 指定間距:
.shape{ background: pink; width: 200px; height: 200px; float: left; shape-outside: url("https://i.imgur.com/EiEQ1UY.png"); shape-margin: 10px }