- Особенности веб-графики
- Добавление рисунка на веб-страницу
- Альтернативный текст
- Изменение размера рисунка
- Рамка вокруг изображений
- Обтекание рисунка текстом
- Отступы вокруг рисунка
- Выравнивание изображения по центру
- Сглаживание краев
- Замена текста изображением
- Прозрачность в рисунках
- Полупрозрачный слой с непрозрачным текстом
- Создание паспарту
- Добавление тени к рисунку
- Оптимизация графики
- Блок с закругленными уголками
- Блок с двумя скругленными уголками
- Закругленные уголки без использования изображений
- Использование блока с закруглениями для выделения строки
- Рамка с закругленными уголками одним рисунком
- Скругленные уголки в браузере Firefox и Safari
- Скругленные уголки у фотографии фиксированного размера
- Таблица произвольной ширины с закругленными уголками
- Таблица фиксированной ширины со скругленными уголками
- Эффект перекатывания

Разделы
Закругленные уголки без использования изображений
Метки:
Закругленные уголки достаточно часто применяются в дизайне, однако в CSS пока нет штатного универсального средства для их добавления. Поэтому приходится использовать различные ухищрения, чтобы добиться желаемого результата. Преимущественно для создания уголков применяются изображения, поэтому интересно будет обойтись без них, только с помощью стилей.
Если увеличить фрагмент с уголком (рис. 1), то можно увидеть, что скругление образуется за счет наложения нескольких блоков, количество которых обычно бывает от трех до шести. Большее число блоков повышает радиус скругления, но и загромождает код, так что остановимся на радиусе в четыре пиксела.

Рис. 1. Увеличенный скругленный уголок
Чтобы создать подобное скругление, достаточно добавить сверху и снизу от содержимого четыре блока, задавая им нужную высоту 1–2 пиксела и отступы по краям через стилевой атрибут margin, как показано в примере 1.
Пример 1. Стиль для создания блоков
.r1, .r2, .r3, .r4 {
display: block; /* Блочный элемент */
font-size: 0; /* Размер шрифта */
height: 1px; /* Высота */
background: #f677c5; /* Цвет фона */
}
.r1 { margin: 0 5px; }
.r2 { margin: 0 3px; }
.r3 { margin: 0 2px; }
.r4 { margin: 0 1px; height: 2px;
}
На всякий случай ставим, что размер шрифта нулевой, так мы можем не бояться, что добавление внутрь блока текста (например, неразделяемого пробела ) увеличит высоту.
Теперь надо добавить эти блоки сверху и снизу от контента через какой-нибудь тег, например, <B>. Сверху блоки будут идти в возрастающем порядке, от 1 до 4, а снизу в убывающем, от 4 до 1. В примере 2 показан окончательный код.
Пример 2. Создание блока с закругленными уголками
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Скругленные уголки</title>
<style type="text/css">
.r1, .r2, .r3, .r4 {
display: block;
font-size: 0;
height: 1px;
background: #f677c5;
}
.r1 { margin: 0 5px; }
.r2 { margin: 0 3px; }
.r3 { margin: 0 2px; }
.r4 { margin: 0 1px; height: 2px; }
.block-round-content {
background: #f677c5; /* Цвет фона */
padding: 10px; /* Поля вокруг текста */
}
</style>
</head>
<body>
<div class="block-round">
<b class="r1"> </b><b class="r2"> </b><b class="r3"> </b><b class="r4"> </b>
<div class="block-round-content">
Цель конкурса — обнаружение предметов материального мира,
обладающих колоссальной ценностью, принадлежащих живому биологическому
организму, в дальнейшем именуемым драконом, и их экспроприация.
</div>
<b class="r4"> </b><b class="r3"> </b><b class="r2"> </b><b class="r1"> </b>
</div>
</body>
</html>
Результат данного примера показан на рис. 2.

Рис. 2. Блок со скругленными уголками
Хотя метод получился достаточно универсальным, он имеет ряд ограничений. Так, нельзя установить внутри блока градиент, поскольку горизонтальные линии однотонные. Также для изменения радиуса скругления приходится править стилевые параметры одновременно у нескольких селекторов.
Приведем еще один пример для создания блока с радиусом скругления три пиксела. Во многих случаях это наиболее оптимальный вариант, как по части дизайна, так и компактности кода (пример 3).
Пример 3. Радиус скругления три пиксела
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Скругленные уголки</title>
<style type="text/css">
.r1, .r2, .r3 {
display: block; font-size: 0; height: 1px; background: #7da7d9;
}
.r1 { margin: 0 4px; }
.r2 { margin: 0 2px; }
.r3 { margin: 0 1px; height: 2px; }
.block-round-content {
background: #7da7d9; /* Цвет фона */
color: #fff;
padding: 10px; /* Поля вокруг текста */
}
</style>
</head>
<body>
<div class="block-round">
<b class="r1"> </b><b class="r2"> </b><b class="r3"> </b>
<div class="block-round-content">
При истечении возможности понимания вышеизложенной информации вы
имеете объективную возможность подать официальный запрос главному
субординатору локальной виртуальной вселенной.
</div>
<b class="r3"> </b><b class="r2"> </b><b class="r1"> </b>
</div>
</body>
</html>
Результат данного примера показан на рис. 3.

Рис. 3. Вид блока со скругленными уголками

це не працює в опері, в мене в опері воно якось так каряво виглядає!!
Все скриншоты сделаны в Опере 9.27 и хорошо видно, что все отображается корректно.
При этом код выглядит не очень красиво, лучше использовать спрайты.
Отправить комментарий