Текст сбоку по дуге обтекает круг с помощью float
и shape-outside
CSS
Эффект пока виден только на WebKit-браузерах [caniuse.com]. Получается красиво, когда крайние буквы прижаты к обтекаемому блоку, что можно добиться с помощью свойства
text-align
. В случае обтекания двух элементов с противоположных краёв родителя можно выравнять абзац по ширине. Свойство border-radius
позволяет сделать из квадратной картинки круг, но оно не обязательно, когда само изображение круглое с прозрачными краями. Свойство margin-right
позволяет настроить отступ от рисунка.<style> #round { text-align: justify; hyphens: auto; } #round img { float: left; shape-outside: circle(50%); margin-right: .5em; border-radius: 50%; } </style> <div id="round"> <img src="http://2.bp.blogspot.com/-c4ScvKxvKBs/TkoXOfNQFHI/AAAAAAAACLA/0x_aaffS0t0/s00/background.jpg" alt="На голубом фоне смайлик" width="120" height="120"> текст </div>
Написать текст по окружности SVG
<svg viewBox="0 0 70 70" width="40%"> <path d="M35,35m-23,0a23,23 0 1,1 46,0a23,23 0 1,1 -46,0" fill="lightpink" id="tophalf"/> <text style="font: initial;"> <textPath xlink:href="#tophalf" startOffset="0%">Шпаргалка</textPath> <textPath xlink:href="#tophalf" startOffset="56%">блоггера</textPath> </text> </svg>
Тег path
с id="tophalf"
рисует круг-контур, по которому располагаются слова, указанные в textPath
с xlink:href="#tophalf"
. То есть ссылка xlink:href
определяет по какому контуру размещать буквы. Чтобы контур скрыть, тег path
следует поместить в тег defs
.
Атрибут startOffset
указывает на точку контура, от которой начинается текст.
<svg viewBox="0 0 70 70" width="40%"> <defs> <path d="M35,35m-23,0a23,23 0 1,1 46,0a23,23 0 1,1 -46,0" fill="lightpink" id="tophalf"/> </defs> <text style="font: initial;"> <textPath xlink:href="#tophalf" startOffset="0%">Шпаргалка</textPath> <textPath xlink:href="#tophalf" startOffset="56%">блоггера</textPath> </text> </svg>
Сделать изогнутую надпись вокруг круглого элемента сверху и снизу с помощью transform
CSS
Автор идеи: css-tricks.com
Ш
п
а
р
г
а
л
к
а
б
л
о
г
г
е
р
а
s
h
p
a
r
g
a
l
k
a
b
l
o
g
.
r
u
<style> #circle { position: relative; width: 40%; padding-top: 40%; border-radius: 100%; /* сделать "резиновый" круг */ background: lightpink; font: 5vmin monospace; /* моноширный шрифт */ margin: 10% auto; } #circle b { position: absolute; left: 50%; /* все буквы собрать в одну точку по середине */ width: 0; /* убрать отступ */ } /* верхние 17 букв «Шпаргалка блоггера» */ #circle b:nth-of-type(-n+17) { bottom: 50%; transform-origin: 0% 100%; padding-bottom: 50%; /* от значения свойства зависит приближение текста к центру круга */ } #circle b:nth-of-type(1) {transform: rotate(310deg);} #circle b:nth-of-type(2) {transform: rotate(315deg);} #circle b:nth-of-type(3) {transform: rotate(320deg);} #circle b:nth-of-type(4) {transform: rotate(325deg);} #circle b:nth-of-type(5) {transform: rotate(330deg);} #circle b:nth-of-type(6) {transform: rotate(335deg);} #circle b:nth-of-type(7) {transform: rotate(340deg);} #circle b:nth-of-type(8) {transform: rotate(345deg);} #circle b:nth-of-type(9) {transform: rotate(350deg);} #circle b:nth-of-type(10) {transform: rotate(10deg);} #circle b:nth-of-type(11) {transform: rotate(15deg);} #circle b:nth-of-type(12) {transform: rotate(20deg);} #circle b:nth-of-type(13) {transform: rotate(25deg);} #circle b:nth-of-type(14) {transform: rotate(30deg);} #circle b:nth-of-type(15) {transform: rotate(35deg);} #circle b:nth-of-type(16) {transform: rotate(40deg);} #circle b:nth-of-type(17) {transform: rotate(45deg);} /* нижние 17 букв «shpargalkablog.ru» */ #circle b:nth-last-of-type(-n+17) { top: 50%; transform-origin: 50% 0; padding-top: 50%; } #circle b:nth-last-of-type(1) {transform: rotate(325deg);} #circle b:nth-last-of-type(2) {transform: rotate(330deg);} #circle b:nth-last-of-type(3) {transform: rotate(335deg);} #circle b:nth-last-of-type(4) {transform: rotate(340deg);} #circle b:nth-last-of-type(5) {transform: rotate(345deg);} #circle b:nth-last-of-type(6) {transform: rotate(350deg);} #circle b:nth-last-of-type(7) {transform: rotate(355deg);} #circle b:nth-last-of-type(8) {transform: rotate(0deg);} #circle b:nth-last-of-type(9) {transform: rotate(5deg);} #circle b:nth-last-of-type(10) {transform: rotate(10deg);} #circle b:nth-last-of-type(11) {transform: rotate(15deg);} #circle b:nth-last-of-type(12) {transform: rotate(20deg);} #circle b:nth-last-of-type(13) {transform: rotate(25deg);} #circle b:nth-last-of-type(14) {transform: rotate(30deg);} #circle b:nth-last-of-type(15) {transform: rotate(35deg);} #circle b:nth-last-of-type(16) {transform: rotate(40deg);} #circle b:nth-last-of-type(17) {transform: rotate(45deg);} </style> <div id="circle"> <b>Ш</b> <b>п</b> <b>а</b> <b>р</b> <b>г</b> <b>а</b> <b>л</b> <b>к</b> <b>а</b> <b>б</b> <b>л</b> <b>о</b> <b>г</b> <b>г</b> <b>е</b> <b>р</b> <b>а</b> <b>s</b> <b>h</b> <b>p</b> <b>a</b> <b>r</b> <b>g</b> <b>a</b> <b>l</b> <b>k</b> <b>a</b> <b>b</b> <b>l</b> <b>o</b> <b>g</b> <b>.</b> <b>r</b> <b>u</b> </div>