Сделать блок со скругленными уголками без рисунков - «Уголки» » Самоучитель CSS
Меню
Наши новости
Учебник CSS

Невозможно отучить людей изучать самые ненужные предметы.

Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3

Надо знать обо всем понемножку, но все о немногом.

Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы

Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)

Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода

Самоучитель CSS

Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5

Новости

Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости

Справочник CSS

Справочник от А до Я
HTML, CSS, JavaScript

Афоризмы

Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы

Видео Уроки


Видео уроки
Наш опрос



Наши новости

       
26-03-2016, 13:10
Сделать блок со скругленными уголками без рисунков - «Уголки»
Рейтинг:

Скругленные уголки достаточно часто применяются в дизайне, но свойство CSS 3 border-radius поддерживается не всеми браузерами. Поэтому приходится использовать различные ухищрения, чтобы добиться универсального результата. Преимущественно для создания уголков применяются изображения, поэтому интересно будет обойтись без них, только с помощью стилей.

Если увеличить фрагмент с уголком (рис. 1), то можно увидеть, что скругление образуется за счет наложения нескольких блоков, количество которых обычно бывает от трех до шести. Большее число блоков повышает радиус скругления, но и загромождает код, так что остановимся на радиусе в четыре пиксела.

 


Рис. 1. Увеличенный скругленный уголок

Чтобы создать подобное скругление, достаточно добавить сверху и снизу от содержимого четыре блока, задавая им нужную высоту 1–2 пиксела и отступы по краям через стилевое свойство margin, как показано в примере 1.

Пример 1. Стиль для создания блоков

.r1, .r2,  .r3, .r4 { 
  display:  block; /* Блочный элемент */
  height:  1px; /* Высота */
  background:  #f677c5; /* Цвет фона */
  overflow: hidden; /* Для IE6 */
}
.r1 { margin: 0 5px; }
.r2 { margin: 0 3px; }
.r3 { margin: 0 2px; }
.r4 { margin: 0 1px; height: 2px; }

Теперь надо добавить эти блоки сверху и снизу от контента через какой-нибудь тег, например, <span>. Сверху блоки будут идти в возрастающем порядке, от 1 до 4, а снизу в убывающем, от 4 до 1. В примере 2 показан окончательный код.

Пример 2. Создание блока с закругленными уголками

XHTML 1.0CSS 2.1IECrOpSaFx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Скругленные уголки</title>
  <style type="text/css">
   .r1, .r2,  .r3, .r4 {
    display: block; 
    height: 1px;
    background: #f677c5;
    overflow: hidden;
   }
   .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">
  <span class="r1"></span><span class="r2"></span><span class="r3"></span><span class="r4"></span>
  <div class="block-round-content">
   Цель конкурса &#8212; обнаружение предметов материального мира, 
   обладающих колоссальной ценностью, принадлежащих живому биологическому 
   организму, в дальнейшем именуемым драконом, и их экспроприация.
  </div>
  <span class="r4"></span><span class="r3"></span><span class="r2"></span><span class="r1"></span>
  </div>
 </body>
</html>

Результат данного примера показан на рис. 2.

 


Рис. 2. Блок со скругленными уголками

Хотя метод получился достаточно универсальным, он имеет ряд ограничений. Так, нельзя установить внутри блока градиент, поскольку горизонтальные линии однотонные. Также для изменения радиуса скругления приходится править стилевые свойства одновременно у нескольких селекторов.

Приведем еще один пример для создания блока с радиусом скругления три пиксела. Во многих случаях это наиболее оптимальный вариант, как по части дизайна, так и компактности кода (пример 3).

Пример 3. Радиус скругления три пиксела

XHTML 1.0CSS 2.1IECrOpSaFx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Скругленные уголки</title>
  <style type="text/css">
   .r1, .r2, .r3 {
    display: block; height: 1px; background: #7da7d9; overflow: hidden;
   }
   .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">
  <span class="r1"></span><span class="r2"></span><span class="r3"></span>
  <div class="block-round-content">
   При истечении возможности понимания вышеизложенной информации вы
   имеете объективную возможность подать официальный запрос главному 
   субординатору локальной виртуальной вселенной.
  </div>
  <span class="r3"></span><span class="r2"></span><span class="r1"></span>
  </div>
 </body>
</html>

Результат данного примера показан на рис. 3.

 


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


Скругленные уголки достаточно часто применяются в дизайне, но свойство CSS
Просмотров: 2 797
Комментариев: 0:   26-03-2016, 13:10
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

 
Еще новости по теме:



Другие новости по теме:
Комментарии для сайта Cackle