Как закруглить углы в CSS и HTML. Закругление углов картинок

В интернете много примеров и руководств по закруглению углов у блока или таблиц, но, как правило, данные руководства основаны на использовании изображений или на использовании дополнительных блоков.

В сегодняшнем руководстве я покажу, как можно закруглить углы таблицы, используя только CSS .

Непосредственно разметка (Вторая таблица отличается компоновкой ячеек в верхней строке):

Curabitur a ultricies urna Phasellus mollis
eget venenatis est tortor et est. 0
Fusce sollicitudin metus quis libero auctor vestibulum. 0
Nulla gravida. Urna augue. Nunc iaculis bibendum.
Vestibulum tempor Laoreet eros semper ut.
Vivamus quis nisi lacus. Cras id felis eu purus tempor dictum in at lorem. facilisis iaculis magna diam id quam. eleifend. Pellentesque cursus, nunc ut facilisis hendrerit

1. Закругляем углы непосредственно у таблицы (тег table).

BContentTables{ border:1px solid #CCCCCC; width:100%; moz-border-radius: 10px; /* Firefox */ -webkit-border-radius: 10px; /* Safari, Google Chrome */ -khtml-border-radius: 10px; /* KHTML */ -o-border-radius: 10px; /* Opera */ -ms-border-radius: 10px; /* IE8 */ border-radius: 10px; /* CSS3 */ overflow:hidden; margin:0.7em auto; }

2. Убираем любой фон у первой строки.

Tr.bCTable_Header {background: none;}

3. При помощи псевдокласса:first-child и комбинатора > выбираем первую ячейку в таблице. Закругляем у первой ячейки левый верхний угол. Фон первой строки складывается из фона ячеек данной строки.

Tr.bCTable_Header:first-child > td:first-child{ border-radius:10px 0px 0 0; -webkit-border-radius:10px 0 0 0; -moz-border-radius:10px 0 0 0; -ms-border-radius:10px 0 0 0; -o-border-radius:10px 0 0 0; -khtml-border-radius: 10px 0 0 0; } tr.bCTable_Header td{ color:white; font-size:110%; background-color:#00843C;}

4. При помощи псевдокласса:last-child и комбинатора > выбираем последнюю ячейку в первой строке. Для нее закругляем правый верхний угол.

Tr.bCTable_Header:first-child > td:last-child{ border-radius:0 10px 0 0; -webkit-border-radius:0 10px 0 0; -moz-border-radius:0 10px 0 0; -ms-border-radius:0 10px 0 0; -o-border-radius:0 10px 0 0; -khtml-border-radius: 0 10px 0 0; }

5. У последней строки закругляем нижние углы. Не забудьте удалить фон у последней строки; фон строки задается посредством фона ячеек последней строки.

BContentTables tr:last-child{ border-radius:0 0 10px 10px; -webkit-border-radius:0 0 10px 10px; -moz-border-radius:0 0 10px 10px; -ms-border-radius:0 0 10px 10px; -o-border-radius:0 0 10px 10px; -khtml-border-radius: 0 0 10px 10px; background:none; }

6. Затем по аналогии с пунктами 3-4 в последней строке закругляем углы у первой и крайней ячейки.

BContentTables tr:last-child td{background-color:#F1F1F2;} .bContentTables tr:last-child td:first-child{ border-radius:0 0 0 10px; -webkit-border-radius:0 0 0 10px; -moz-border-radius:0 0 0 10px; -ms-border-radius:0 0 0 10px; -o-border-radius:0 0 0 10px; -khtml-border-radius: 0 0 0 10px;} .bContentTables tr:last-child td:last-child {border-radius:0 0 10px 0; -webkit-border-radius:0 0 10px 0; -moz-border-radius:0 0 10px 0; -ms-border-radius:0 0 10px 0; -o-border-radius:0 0 10px 0; -khtml-border-radius: 0 0 10px 0; }

Поддержка браузерами

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

В данных примерах углы закругляются у изначально блочных элементов, также в некоторых примерах эти блоки задействуются в качестве вспомогательных элементов. Но помните, что вы с легкостью можете проделать то же самое и с элементами уровня строки, предварительно задав им со значением block или inline-block, если это необходимо.

Закругленные углы в CSS 3 без изображений

В этом примере используются свойства из CSS 3, которые позволяют без проблем закруглять углы без помощи изображений.

Пример HTML и CSS: закругление углов с помощью CSS 3 без изображений

сайт - Закругляем углы на CSS 3 без использования изображений

Содержимое блока.

Описание примера

  1. Для закругления углов используем свойство CSS 3 , которое понимают все современные браузеры.
  2. Для старых браузеров Firefox, Chrome и Safari применяем специальные свойства с префиксами -moz- и -webkit- , которые появились у них еще до поддержки основного свойства. К сожалению, для старых Opera и IE нет подобных аналогов. Обратите внимание, что при создании сложных закруглений, свойства с приставками могут не совсем правильно работать. Именно поэтому в CSS-коде они были указаны выше, чем основное свойство, чтобы согласно приоритетов стилей , браузеры, которые уже понимают «чистый» , использовали именно его.

Свойства с префиксами отсутствуют в спецификации CSS, поэтому их использование приведет к невалидному коду.

Закругленные углы в CSS без изображений

В этом примере тоже нет изображений, однако используются дополнительные блоки. Суть метода состоит в том, что перед основным содержимым и после него, указывается несколько блоков, которые по мере удаления от него понемногу уменьшаются в ширине с помощью боковых внешних полей. Благодаря этому и происходит имитация закругления углов.

Данный способ плох тем, что код «замусоривается» дополнительными блоками, но, к сожалению, во многих примерах подобные блоки будут присутствовать. Еще один минус - при больших радиусах закругления придется добавлять еще больше блоков, чем используется в примере.

Пример HTML и CSS: закругление углов без использования изображений

сайт - Закругляем углы в CSS без изображений

Содержимое блока.

Описание примера

  1. Внутри блока с class= "block" указываем элемент для основного содержимого ("content_block" ) перед которым ставим блоки для имитации закругления углов ("b1" , "b2" , "b3" ). После него мы ставим их же, но в обратной последовательности.
  2. Задаем блокам для имитации необходимую высоту и боковые поля (CSS ), чтобы создать видимость уголков. Также обнуляем у них размер шрифта (CSS ) и задаем :hidden - это предназначено для старых браузеров, которые могут увеличить высоту и сделать ее больше указанной.
  3. В этом примере кроме закругления углов была еще добавлена и имитация рамки, если она вам не нужна, то просто уберите у элементов все «бордеры», а у блока "b3" уберите фоновый цвет.

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

Пример HTML и CSS: закругление углов с использованием одного изображения

сайт - Закругляем углы в CSS с помощью картинки

МЕНЮ

Описание примера

  1. С помощью свойства CSS задаем блоку фоновое изображение, которому запрещаем размножение по вертикали и горизонтали (no-repeat), так как в данном случае это не требуется.
  2. Чтобы текст внутри блока не прилегал к его краям, устанавливаем у него внутренние отступы (CSS ) по 5px с каждой стороны.
  3. Далее необходимо задать блоку такие же размеры, как и у фона. Фоновая картинка у нас имеет размеры 140x32 пикселя, однако самому блоку указываем ширину (CSS ) и высоту (CSS ) с уменьшением на 10px. Уменьшить пришлось из-за тех самых внутренних отступов, которые тоже расширяют элемент на 5px в каждую сторону.

В предыдущем примере размер блока у нас был фиксированный и зависел от размера фоновой картинки, а это очень неудобно. Сейчас мы сделаем так, чтобы ширина нашего блока была изменяемой. Для этого вырежем у изображения три части - боковушки и кусочек центра. Затем поместим внутрь основного блока два элемента с фиксированными размерами, которые, благодаря абсолютному позиционированию, разместим у него по бокам. В качестве фона зададим им те самые боковые части, а основному блоку - центральную часть. Так у нас получится блок с закругленными углами, у которого будет изменяемая ширина.

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

Пример HTML и CSS: закругление углов с использованием боковых блоков

сайт - Закругляем углы в CSS с помощью боковых блоков

Основное содержимое.

Описание примера

  1. Внутрь блока class= "block" помещаем два элемента - "left_bok" и "right_bok" , которым в качестве фона (CSS ) задаем изображения боковых частей и запрещаем им размножение (no-repeat). Самому основному блоку задаем фон из центральной части и разрешаем ему дублироваться только по горизонтали (repeat-x).
  2. Указываем для боковых блоков ширину, соответствующую размеру фона, у нас это 14x32 пикселя. А вот основному блоку, как и в предыдущем примере, задаем высоту равную 22px, чтобы компенсировать вертикальные отступы.
  3. Позиционировать наши боковушки будем относительно "block" , поэтому указываем у него :relative, а у самих боковушек - absolute. Ну а потом прижимаем их к соответствующим сторонам родителя с помощью свойств CSS , и .
  4. Чтобы содержимое блока не скрывалось под боковыми картинками, устанавливаем у "block" боковые внутренние отступы (CSS ), которые могут быть равны или немного больше самих боковушек. Также задаем небольшие отступы сверху и снизу, чтобы текст «не прилипал» к краям.

В IE6 образуется небольшой баг с этим способом:

Если ширина или высота у "block" будет нечетной, то между внутренним краем блока и правой позиционированной боковушкой появится неприятный отступ в 1px, который будет портить всю картину. Этот баг можно исправить, использовав CSS хак с определенным expression, но я даже не буду здесь приводить такой пример, так как он часто «подвешивает» браузер и лучше его не применять.

Поступим по-другому. Зададим "right_bok" левое поле (CSS ) размером в 100%, чтобы он сместился за правую границу основного блока, а затем вернем его обратно, сместив влево на число пикселей равных его ширине. Со значениями этих свойств IE6 работает правильно, поэтому ему ничего не остается, как поставить блок там, где нам надо.

Этот способ закругления углов похож на предыдущий, но в отличие от него, здесь по бокам расставляются не HTML-элементы, а добавленные к основному блоку псевдоэлементы . Благодаря такому подходу удалось избавиться от лишнего HTML-код страницы.

Пример HTML и CSS: закругление углов с использованием боковых псевдоэлементов

сайт - Закругляем углы в CSS с помощью боковых псевдоэлементов

Основное содержимое.

Описание примера

  1. С помощью псевдоэлементов CSS и указываем, что мы хотим что-то добавить в начало и конец основного блока. А, используя свойство CSS , как раз и добавляем необходимые изображения закругленных углов, а точнее боковушек. Так мы создали два псевдоэлемента с изображениями.
  2. Ну а дальше мы проделываем все абсолютно то же самое, что и в предыдущем примере, только работаем уже с созданными псевдоэлементами.

Для IE6 и IE7 в этом примере были задействованы «костыли»:

  1. Как вы знаете, IE6 и IE7 не понимают использованные здесь псевдоэлементы, поэтому делаем следующее. Применяем expression, который интегрирует внутрь основного элемента два тега , а уже им мы задаем такие же стили, что и в предыдущем примере. Обратите внимание, что внедряемый код, идущий после первого innerHTML , добавляется сразу после открывающего тега "block" , а после второго innerHTML - перед закрывающим тегом. Да, в нашем случае это значения не имеет, так как используется абсолютное позиционирование, но иногда об этом полезно знать.
  2. Чтобы этот код не увидели другие браузеры, заключаем его в условные комментарии . Будет лучше, если его вообще вынести в отдельный CSS-файл, который подключить тегом закрытым теми же комментариями.

Закругленные углы в CSS с помощью обертывания блоками

Суть этого способа заключается в том, что сначала у изображения вырезаются уголки. Затем внутрь основного блока помещается еще несколько блоков (по количеству уголков), которые вложены друг в друга. Каждому из них в качестве фона задается один уголок-изображение. Изображениям запрещают размножение и задают координаты, чтобы они заняли места по углам блоков. Таким образом и получается эффект закругленных углов.

Пример HTML и CSS: закругление углов с использованием обертывания блоками

сайт - Закругляем углы в CSS с помощью обертывания блоками

Содержимое блока.

Описание примера

  1. Внутрь основного блока помещаем еще четыре. Так как ни у одного из этих блоков не установлены поля или рамки, а отступы есть только у самого внутреннего, то по высоте и ширине все они оказываются равны.
  2. Используя свойство CSS , устанавливаем каждому из внутренних блоков уголок в качестве фона, запрещаем им размножение и позиционируем по углам блоков. А так как цвет фона у элементов прозрачный, то все четыре фоновых уголка видно на странице.
  3. Добавляем самому внешнему блоку с уголком нужный фоновый цвет. Все, готово.

Задать явно ширину блока можно, указав нужное свойство у class= "block" , однако для изменения высоты надо использовать самый внутренний элемент (у нас это "rb" ).

Закругленные углы в CSS с помощью позиционирования

Здесь тоже вырезаются уголки для фона, который будет указан у маленьких блоков. С помощью абсолютного позиционирования CSS эти блоки расставляются по углам основного элемента, которому задается нужный цвет фона.

Пример HTML и CSS: закругление углов с использованием позиционирования

сайт - Закругляем углы в CSS с помощью позиционирования

Содержимое блока.

Описание примера

  1. Внутри основного элемента (class= "block" ) размещаем четыре тега с классами "corn_lt" , "corn_rt" , "corn_lb" , "corn_rb" , которые будут выступать в качестве блоков-углов.
  2. С помощью свойства CSS подключаем к каждому блоку-уголку свое фоновое изображение и задаем им ширину и высоту равную по размеру этим фоновым картинкам. На всякий случай обнуляем размер шрифта (CSS ) и делаем обрезание лишнего (CSS ).
  3. Указываем для основного элемента относительное позиционирование (CSS :relative), так как позиционировать блоки-уголки будем относительно него, а для самих уголков - абсолютное (absolute).
  4. Используя свойства CSS , и , указываем для блоков-уголков расстояния смещений по вертикали и горизонтали, чтобы они расположились по углам основного блока.

В IE6 есть пара проблем с этим способом:

  1. Если у "block" не указать явно ширину, то уголки слева не встанут на место. Причиной этого является наличие внутренних отступов у блока. Самый простой способ исправить проблему - убрать отступы и заключить основное содержимое "block" (без уголков) в дополнительный блок-обертку, а уже у обертки указать нужные отступы. Но я здесь сделал по-другому, включив layout с помощью свойства zoom :1, которое говорит IE6 отображать элемент в натуральный размер. Это свойство невалидно, поэтому, если вы решите использовать именно его, то рекомендую вам сделать подключение через условные комментарии .
  2. Тот самый однопиксельный баг, который рассматривался выше. Но здесь зазоры могут образоваться не только между правыми уголками и правой стороной блока, но и внизу. И если от зазоров справа мы избавились, то с нижними так не получится. Выход - указывать явно четную ширину и высоту основного элемента. Можно задать и нечетные значения, но тогда надо будет установить расстояния смещений вниз и вправо равные не нулю, а -1px.

По сути, технология этого способа закругления углов в CSS такая же, как и в предыдущем, поэтому подробные комментарии тут будут опущены. Единственное отличие - вместо отдельных фоновых изображений-уголков здесь используется одна общая картинка-спрайт. Благодаря этому ускоряется загрузка сайта, ведь одно изображение «весит» меньше, чем четыре и к хостингу идет одно обращение вместо четырех.

Спрайт - изображение, которое объединяет в себе сразу несколько картинок используемых в качестве фона для элементов сайта. Какая именно часть спрайта будет фоном у того или иного HTML-элемента зависит от координат заданных в специальном CSS-свойстве.

Пример HTML и CSS: закругление углов с использованием позиционирования и спрайтов

сайт - Закругляем углы в CSS с помощью спрайта и позиционирования

Содержимое блока.

Описание примера

  1. С помощью свойства CSS подключаем к блокам-уголкам фоновую картинку-спрайт, которая имеет округлую форму с размерами 22x22 пикселя (11х11 пикселей каждая четвертинка-уголок).
  2. Используя свойство CSS , указываем координаты смещения фона. Например, значение -11px 0 означает, что фон будет смещен влево на 11px по оси X, а по оси Y смещен не будет. Таким образом, левая половина спрайта уходит за границу элемента и остается только правая. Но и нее видно лишь наполовину, так как в высоту она равна 22px, а высота самого блока-уголка всего 11px. Вот и получается, что при данном значении фоном элемента станет правая верхняя четверть спрайта.

С IE6 здесь те же проблемы, что и в предыдущем примере.

В данном примере мы закруглим углы у элемента, который имеет рамку, но это не является какой-то особенностью именно этого способа - вы вполне можете использовать закругление с рамкой и в предыдущих примерах.

Сами закругления мы сделаем, используя псевдоэлементы созданные у основного блока, но без применения к ним позиционирования.

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

Пример HTML и CSS: закругление углов с использованием псевдоэлементов

сайт - Закругляем углы в CSS с помощью псевдоэлементов

Содержимое блока.

background , и с помощь него же позиционируем их в правую сторону и запрещаем «размножение». Все, уголки готовы.

  • Так как у "block" мы указали внутренние отступы (CSS ), то псевдоэлементы, а соответственно и уголки, не находятся по углам блока, а отступают от краев на 15px. Чтобы это исправить, с нужных сторон задаем псевдоэлементам отрицательные поля (CSS ) для расположения их поверх отступов. Но поля делаем равными не 15, а 17px, это необходимо, чтобы накрыть рамку (CSS ), ширина которой равна 2px (15+2=17). Вот теперь все.
  • Для IE6 и IE7 мы здесь применили уже знакомые вам «костыли» с внедрением HTML-кода, так как эти браузеры не понимают используемые здесь псевдоэлементы:

    1. С помощью expression интегрирует внутрь основного элемента два тега , которые тоже преобразуем в блоки. Затем помещаем в них по одному тегу . А дальше у этих тегов указываются те же свойства, что и у псевдоэлементов. Единственно, что им дополнительно добавляем свойство CSS :relative, без которого рамка перекрывает уголки.

    Минус этого способа в том, что блоку с закругленными углами нельзя явно задать высоту, ведь если она будет превышать размеры содержимого, то нижние уголки не прижмутся к краям. Этого можно избежать, если все-таки заключить основное содержимое в еще один блок и высоту задавать ему.

    Еще один пример закругления углов с псевдоэлементами и без дополнительных блоков

    Этот пример похож на предыдущий, но здесь для расстановки псевдоэлементов используется позиционирование. Благодаря такому подходу появилась возможность явно указывать высоту блока с закругленными углами.

    Пример HTML и CSS: закругление углов, где можно изменять высоту блока

    сайт - Закругляем углы в CSS с помощью псевдоэлементов, где у блока можно задавать высоту

    Содержимое блока.

    И снова для IE6 и IE7 добавляем внутрь основного блока несколько дополнительных элементов с помощью expression, а код закрываем в условные комментарии. Вот только в этот раз мы даже не будем пытаться эмулировать псевдоэлементы, а поступим проще.

    1. Добавляем внутрь "block" четыре тега и применяем к ним позиционирование. А потом просто указываем им уголки-изображения в качестве фона и расставляем по углам основного элемента. То есть поступаем в точности так, как в одном из рассмотреных выше способов.
    2. Чтобы избавиться от однопиксельного бага (о котором выше говорилось не раз) добавляем к правым элементам-уголкам левое поле (CSS ) со стопроцентным значением и отрицательное смещение равное -9px. Вообще, если помните, это смещение должно быть равно ширине блока-уголка (у нас это 11px), но не забывайте о рамке в 2px, которая у нас здесь есть - нам ведь надо положить уголки поверх нее (11px-2px=9px).

    К слову сказать, на самом деле проще было бы все-таки эмулировать псевдоэлементы, как мы это сделали в предыдущем примере - так добавочный код был бы меньше. Но только не в IE6, для этого браузера понадобилось бы еще несколько «костылей» и, как следствие, пришлось бы писать два отдельных условных комментария - для IE6 и IE7, а это только раздуло бы код...

    В Firefox этот способ работает корректно с версии 3.6, а в Opera - с версии 10.0, костыли для них я придумывать не стал, так как это малоактуально.

    Обратите внимание, что стили CSS для данной фигуры заносятся в файл один раз, а HTML-тег можно располагать на сайте неограниченное количество раз.

    В результате выдачи получаем такой прямоугольник с рамкой .

    Как сделать закругленные углы в CSS

    Для закругления углов используется атрибут border-radius .

    Мы могли бы добавить только этот атрибут. Он нормально отображает результат закругления в новых версиях браузеров, но у многих пользователей ещё остались старые версии, где этот атрибут работает некорректно. Поэтому для совместимости мы добавим ещё несколько описаний этого атрибута, привязанного непосредственно к определённым браузерам, в наш блок в файле Style.css, получив следующий код:

    HTML-тег div выдаст нам прямоугольник в рамке с закругленным и углами :

    а HTML-тег для выдачи текста будет выглядеть так:

    pib9.ru

    Получаем прямоугольник с закругленными углами и текстом:

    Если из кода убрать атрибуты описания размеров прямоугольника width и height , то можно получить такие формы с закругленными углами:

    1. Без текста

    В этом случае формы принимают размеры среды: длина соответствует ширине поля, а высота изменяется по мере наполнения формы содержимым.

    Закругление выбранных углов

    В описании стилей параметр 10px в атрибуте border-radius показывает радиус закругления, который можно изменять, подбирая нужный. Если задать 0, то закругление не произойдет. Этим свойством можно воспользоваться, когда необходимо сделать закругление выбранных углов.

    Распишем значения радиуса закругления для каждого угла, указывая нули там, где отменяем закругление. Например, отменим закругление в третьем и четвертом углах. Наш код примет такой вид:

    1. Левый верхний угол.

    2. Правый верхний угол.

    3. Правый нижний угол.

    4. Левый нижний угол.

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

    Отсчет углов ведется по часовой стрелке, начиная с левого верхнего угла:

    2. Закругление углов с помощью HTML кода без записи в файл стилей

    Рассмотрим второй способ получения прямоугольника с закругленными углами с помощью HTML кода без записи в файл стилей.

    HTML закругленные углы

    Есть одна небольшая фишка, которая ещё больше упрощает весь процесс – это HTML закругленные углы . Она заключается в формировании HTML кода, в котором прописываются те же стили, что и в кодах CSS. При этом используются те же атрибуты, что и в блоке CSS и отпадает необходимость записи блока в файл Style.css. Одним словом – заменяем полностью кодом HTML код CSS.

    Вместо нашего блока CSS получаем HTML скрипт, который вставляем в то место, где должен выдаваться прямоугольник с закругленными углами:

    Первый способ закругления углов можно применять, когда одна и та же форма, не меняя стили, используется больше одного раза. Второй способ применяется для форм, стили которых используются один раз.

    3. Картинки с закругленными углами. Рамка вокруг картинки HTML

    Ещё хочу подарить Вам полезную информацию. Часто, используя картинки для оформления сайта , очень хочется сделать их ещё красивее, изменяя их форму, обрамляя рамкой красивого цвета и различной ширины. При этом возникает вопрос: “Как закруглить углы картинки ?”.

    Это делается очень просто, и сейчас мы этому научимся.

    Расположим картинку на сайте, сделав её фоном для самой себя в качестве фона тега div. Получаем такой код и картинку:

    Закругляем углы картинки с добавлением рамки

    Закругление углов картинок в CSS и HTML и добавление рамки можно выполнить одним из двух способов, описанных выше.

    Используя первый способ данной статьи, коды картинок для файла стилей и тега div HTML-кода будут выглядеть следующим образом:

    Обратите внимание, что часть атрибутов можно заносить в файл стилей, а часть в тег div. В нашем случае размеры картинки width и height вставлены в HTML-код.

    Код HTML второго способа без использования файла стилей, описанного в данной статье, имеет такой вид:

    В результате работы кодов каждого из двух способов получаем один и тот же результат – картинку с закругленными углами:

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

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

    Что касается минусов, то здесь можно отметить одну проблему — это поддержка данного свойства не всеми веб-браузерами, особенно это касается устаревших версий различных браузеров.

    Однако закругление углов с помощью CSS становится все популярнее и популярнее. Как Вы уже могли понять, в данной статье мы будем использовать свойство доступное в CSS 3.

    Скругленные углы с помощью CSS.

    Итак, для примера мы возьмем блочный элемент DIV и сделаем его углы скругленными. Для примера создадим блок, и прямо в HTML-коде будем назначать ему свойства, используя атрибут style. Сначала мы имеем блочный элемент залитый фоном любого цвета:

    Кстати, если Вам необходимо узнать какой код цвета у Вас на сайте или на любом другом, Вам пригодится .

    А вот так мы увидим его в веб-браузере:

    Теперь, чтобы закруглить углы воспользуемся свойством «border-radius», которое можно перевести, как радиус границы. Да именно так, а не как многие могли подумать, что это радиус рамки или как там его еще называют (border). Данное свойство отвечает именно за радиус границ элемента, а не за его рамки или бордюры, которых может и не быть. Однако, свойство будет по-прежнему работать и без использования border у элемента. Надеюсь, вы поняли, что я хотел сказать. Значением для данного свойства являются любые числовые значения, которые применимы в CSS, такие как проценты, пикселы (px), пункты (pt) и так далее. Да, и следует учитывать, что данное свойство работает сразу на все четыре угла элемента, кроме того, можно указать разный радиус для каждого угла, но об этом чуть позже. Для начала зададим радиус углов нашего прямоугольника. Пусть он будет равен 5 пикселам:

    Тогда элемент станет выглядеть так:

    Теперь, предлагаю разобраться в том, как добавить свой радиус для каждого угла в отдельности. Для этого мы можем воспользоваться свойством, которое можно применить для каждого угла в отдельности. Если говорить о прошлом примере, то в полном виде свойства для элемента выглядели бы так:

    Border-top-left-radius:5px; /* верхний левый угол */ border-top-right-radius:5px; /* верхний правый угол */ border-bottom-right-radius:5px; /* нижний правый угол */ border-bottom-left-radius:5px; /* нижний левый угол */

    То есть, если мы хотим задать каждому углу свое значение, мы имеем такую возможность, и чтобы убедиться в этом возьмем следующий код:

    И тогда мы получим такой результат:

    Как мы можем видеть, для границы каждого угла задано свое значение радиуса.
    Кроме того CSS позволяет нам задать значение для границы каждого угла в виде короткой записи, которая будет выглядеть так:

    Где значения будут следовать в таком порядке:

    Border-radius: 5px /* верхний левый угол */ 10px /* верхний правый угол */ 15px /* нижний правый угол */ 20px /* нижний левый угол */;

    Соответственно, исходя из выше сказанного, становится понятно, что таким же образом мы можем задать границу радиуса только для трех (одного или двух) углов:

    Так это выглядит в веб-браузере:

    Если Вы еще не совсем запутались, то продолжим. Дело в том, что радиус для каждой границы угла может быть указан не в одном значении, как мы рассматривали выше, а в двух. То есть два значения для каждого угла. В таком случае первое значение установит радиус для угла по горизонтали, а второе по вертикали. Давайте начнем сначала с одного угла:

    В данном примере мы воздействовали только на левый верхний угол элемента:

    Если расставить значения наоборот, тогда элемент станет выглядеть так:

    На этом вроде бы можно было бы, и закончить, но нет. Есть еще одна хитрость. В значении свойства мы можем использовать слеш (/) между значениями. Слеш может помочь нам совместить значения с другими значениями. В общем проще показать, чем рассказать. Начнем с простого. Предположим, что нам необходимо, чтобы по горизонтали радиус был равен 35 пикселам, а по вертикали 5. При этом, чтобы данные значения относились ко всем углам. Тогда мы можем написать так:

    И получить вот такой результат:

    Теперь рассмотрим пример посложнее:

    В данном случае значение до знака слеша (/) будет иметь отношение к горизонтальному радиусу угла, а после знака к вертикальному. При этом значения будут относиться друг к другу таким образом:

    Border-top-left-radius: 20px 15px; border-top-right-radius: 10px 25px; border-bottom-right-radius: 40px 15px; border-bottom-left-radius: 10px 25px;

    А результат будет таким:

    И в завершении статьи поговорим о поддержке различными браузерами данного свойства.

    Закругление углов в различных веб-браузерах.

    Здесь стоит отметить, что данное свойство поддерживается не всеми версиями браузеров. Свойство поддерживается в IE9 +, Firefox 4 +, Chrome, Safari 5 +, и Опера.
    Но для некоторых браузеров версии, которых не поддерживают данное свойство, существуют нестандартные свойства, которые добавляют, так называемый префикс или приставку к свойству.
    Chrome до версии 4.0, Safari до версии 5.0, iOS используют нестандартное свойство -webkit-border-bottom-left-radius.
    Firefox до версии 4.0 использует нестандартное свойство -moz-border-radius-bottomleft.
    При этом нам придется продублировать свойство, используя данные префиксы. Например, если у нас задано свойство для границы левого верхнего угла значение, которого равно пяти пикселам:

    Border-top-left-radius: 5px;

    Тогда свойство с дублированием его с помощью префиксов будет выглядеть так:

    Webkit-border-bottom-left-radius:5px; -moz-border-radius-bottomleft:5px; border-top-left-radius: 5px;

    Очень надеюсь, что смог понятно все объяснить и Вам теперь понятно, как сделать закругленные углы, используя только CSS.
    Удачи, Вам!