border-radius
: сделать полукруглым HTML-элемент
Полукруг получается если у прямоугольника, у которого одна сторона в два раза больше другой, закруглить углы [см. генератор]. С помощью padding
в процентах можно добиться пропорционального изменения высоты и ширины "резинового" блока.
Слово1 да слово2 да слово3 да слово4
<style> .radius { width: 10em; height: 5em; /* высота в два раза меньше ширины, иначе получится полуовал */ border: 2px solid red; border-radius: 50% 50% 0 0 / 100% 100% 0 0; /* угол состоит из половины ширины (50% от 10em = 10em : 2 = 5em) и всей высоты (100% от 5em = 5em) */ background: mistyrose; } </style> <div class="radius">текст</div>
Содержимое, выходящее за границы полукруга с overflow: hidden;
, невидно.
Слово1 да слово2 да слово3 да слово4
<style> .radius { width: 10em; height: 5em; border: 2px solid red; border-radius: 50% 50% 0 0 / 100% 100% 0 0; overflow: hidden; background: mistyrose; } </style> <div class="radius">текст</div>
<style> .radius { width: 10em; height: 15em; border: 2px solid red; border-radius: 500em 500em 0 0; /* можно сохранить дугу для элементов разнообразных размеров, если задать очень большое значение для двух углов */ background: mistyrose; } </style> <div class="radius"></div>
<style> .radius { width: 10em; height: 5em; border: 2px solid red; border-radius: 0 0 50% 50% / 0 0 100% 100%; background: mistyrose; } </style> <div class="radius"></div>
<style> .radius { width: 5em; /* ширина в два раза меньше высоты, иначе получится полуовал */ height: 10em; border: 2px solid red; border-radius: 0 100% 100% 0 / 0 50% 50% 0; background: mistyrose; } </style> <div class="radius"></div>
<style> .radius { width: 5em; height: 10em; border: 2px solid red; border-radius: 100% 0 0 100% / 50% 0 0 50%; background: mistyrose; } </style> <div class="radius"></div>
clip-path
: отсечь лишний фрагмент HTML-элемента
Свойство clip-path
вырезает из элемента часть:
Слово1 да слово2 да слово3 да слово4
<style> .radius { width: 10em; height: 5em; border: 2px solid red; clip-path: inset(0 round 50% 50% 0 0 / 100% 100% 0 0); /* значения после round указывают насколько нужно округлить элемент, что равносильно записи clip-path: ellipse(50% 100% at 50% 100%); */ background: mistyrose; } </style> <div class="radius">текст</div>
Слово1 да слово2 да слово3 да слово4
<style> .radius { width: 10em; height: 5em; border: 2px solid red; clip-path: circle(50% at center bottom); background: mistyrose; } </style> <div class="radius">текст</div>
С помощью shape-inside
Свойство shape-inside
позволяет вписать текст в окружность, даже без самой окружности, но пока не поддерживается браузерами.
текст текст текст текст текст текст текст текст текст текст
<style> .radius { width: 10em; height: 5em; border: 2px solid red; shape-inside: inset(-2px round 50% 50% 0 0 / 100% 100% 0 0); background: mistyrose; } </style> <div class="radius">текст</div>