Текст сбоку по дуге обтекает круг с помощью 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>