sonyps4.ru

Скругленные края css. Как закруглить углы на изображении в фотошопе

Закругленные углы в 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, костыли для них я придумывать не стал, так как это малоактуально.

    В предыдущем уроке мы изучили, как задать границу для элемента. Также были рассмотрены такие свойства как border-color и border-style , с помощью которых можно настраивать цвет и стиль границы. Однако все рамки у нас получались с прямыми углами. Теперь мы расскажем, каким образом можно сделать закругленные углы в CSS для границ.

    Как закруглить углы: свойство CSS3 border-radius

    Закругление углов в CSS можно сделать для любого элемента HTML-страницы. Для этого необходимо применить к нему свойство border-radius с соответствующим значением. Чаще всего значение указывается в пикселях, но можно также использовать и другие единицы, например, em или проценты (в последнем случае вычисление производится относительно ширины блока).

    Эффект данного свойства будет заметен только при условии, что у стилизуемого элемента имеется цветной фон и/или граница. Например:

    BorderElement { background-color: #EEDDFF; border: 6px solid #7922CC; border-radius: 25px; }

    Стиль, описанный выше, даст следующий результат на элементе

    размером 200×200 пикселей:


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

    BorderElement { background-color: #EEDDFF; border: 6px solid #7922CC; border-radius: 25px; } .borderElement1 { background-color: #FFE8DB; border: 6px solid #FF5A00; border-radius: 15px 100px 15px 100px; }

    Но и это еще не всё: вместо простых круглых углов можно задавать эллиптическое скругление. Для этого понадобится указать два значения, разделенные косой чертой (для горизонтальной и вертикальной полуосей эллипса). Приведем пример на блоке размером 150×450 пикселей:

    BorderElement { background-color: #EEDDFF; border: 6px solid #7922CC; border-radius: 280px/100px; }

    Значения можно смешивать (т. е. использовать в одном стиле и обычное, и эллиптическое закругление), а также добавлять персональный стиль для каждого угла, используя соответствующие свойства:

    • border-top-left-radius - для верхнего левого угла;
    • border-top-right-radius - для верхнего правого угла;
    • border-bottom-left-radius - для нижнего левого угла;
    • border-bottom-right-radius - для нижнего правого угла.

    Принцип скругления углов

    На рисунке ниже показано, каким образом вычисляется скругление углов в CSS. Так, если для угла указано одно значение, - например, 20px , - это означает, что закругление будет происходить по окружности с радиусом 20 пикселей. В случае, когда задаются два значения через косую черту, например, 30px/20px , закругление углов будет происходить по эллипсу. Первое значение в таком случае является длиной горизонтальной полуоси эллипса - 30px , а второе - длиной вертикальной полуоси - 20px:



    Свойство CSS border-radius поддерживается всеми современными версиями браузеров.

    ). Это делается с помощью свойства CSS border-radius . В этой статье мы рассмотрим все различные варианты.

    Синтаксис CSS border-radius :

    border-radius : [значение_скругления ];

    Как скруглить углы в HTML через CSS

    Рассмотрим примеры скругления углов через CSS. Например

    В этом случае все 4 края элемента будут скруглены по 30px.

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

    Можно скруглять каждый угол с разными радиусами. Для этого нужно написать

    border-radius : 10px 7px 0px 0px ;

    Последовательность этих цифр следующая:

    • Верхний левый угол (в примере это 10px)
    • Верхний правый угол (в примере это 7px)
    • Нижний правый угол (в примере это 0px)
    • Нижний левый угол (в примере это 0px)

    Например

    Результат:

    Чтобы не запоминать какое значение за каким идет можно писать в CSS в отдельности каждый угол

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

    Помимо этого, можно также изменять и радиус для каждого угла в отдельности для горизонтальной и вертикальной плоскостей.

    Задание второго радиуса нужно задавать через слэш "/" в случае border-radius или вторым значением рядом в случае прямого указания каждого угла радиуса

    border-radius : 5px 5px 5px 5px / 10px 10px 10px 10px ; или можно задать так: border-top-left-radius :5px 10px ; // верхний левый угол border-top-right-radius :5px 10px ; // верхний правый угол border-bottom-right-radius :5px 10px ; // нижний правый угол border-bottom-left-radius :5px 10px ; // нижний левый угол

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

    Например, с помощью этих свойств можно сделать эллипс:

    Результат:

    Примечание

    Значения 100px 100px 100px 100px / 200px 200px 200px 200px можно было бы написать еще компактнее:

    border-radius : 100px / 200px ;

    Изменяя параметры каждого из углов, можно сделать различные интересные скругленные элементы. Например, можно сделать круг, эллипс, каплю, камень, яйцо и т.п.

    Задание толщины, цвета и типа линии при скруглении

    Помимо значений закруглений можно также задавать толщину, цвет и тип линии скругления. Делаются все эти три параметра через свойство border :

    border : [толщина ] [тип_линии ] [цвет ];

    Например:

    border : 1px solid #00ff00 ;
    • Толщина - задается чаще всего в пикселях
    • Тип линии может принимать значения:
      • solid (сплошной)
      • dashed (пунктирный)
      • dotted (ряд точек)
      • groove (линия бороздка)
      • inset (вдавленная линия)
      • outset (выдавленная линия)
    • Цвет можно задать либо в формате RGB, либо просто названием (см. коды и названия html цветов)

    Приведем пример


    Таким образом можно красиво оформлять различные рамки для объявлений, замечаний на сайте.

    Свечение для скругления

    Помимо задания толщины, цвета и типа линии можно также задавать и свечении рамки. Делается это с помощью свойства box-shadow

    box-shadow : 0px 0px 4px 2px #a0b ;

    Первые два параметра (0px 0px) задают сдвиг тени по горизонтали и вертикали соответственно. Следующие два параметра (4px 2px) задают силу свечения вокруг. Чтобы получилось красиво нужно делать одну цифру больше другой, а вообще надо экспериментировать. Последний параметр - цвет (#a0b).

    Например

    Результат:

    Мы приводили всегда в качестве примеров тег

    . Но таким же образом можно скруглять и table, img, iframe . Чтобы скруглить края у этих элементов нужно всего лишь в стилях CSS элемента прописать border-radius .

    Браузеры
    Старые браузеры могут не поддерживать свойство border-radius . Так, IE ниже 9 версии, Firefox ниже 4 не отображают закругления. Необходимо прописывать вендорные префиксы CSS :

    -webkit-border-radius :5px ; -moz-border-radius :5px ; border-radius :5px ;

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

    Закруглённые углы и рамки-изображения

    1. Закругление углов с помощью border-radius

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

    IE: 9.0
    Firefox: 4.0
    Chrome: 4.0
    Safari: 5.0, 3.1 -webkit-
    Opera: 10.5
    iOS Safari: 7.1
    Opera Mini:
    Android Browser: 4.1
    Chrome for Android: 44

    Свойство позволяет закруглить углы строчных и блочных элементов. Кривая для каждого угла определяется с помощью одного или двух радиусов, определяющих его форму — круга или эллипса . Радиус распространяется на весь фон, даже если элемент не имеет границ, точное положение секущей определяется с помощью свойства background-clip .

    Свойство border-radius позволяет закруглить все углы одновременно, а с помощью свойств border-top-left-radius , border-top-right-radius , border-bottom-right-radius , border-bottom-left-radius можно закруглить каждый угол отдельно.

    Если задать два значения для свойства border-radius , то первое значение закруглит верхний левый и нижний правый угол , а второе — верхний правый и нижний левый .

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

    Варианты

    Div {width: 100px; height: 100px; border: 5px solid;} .r1 {border-radius: 0 0 20px 20px;} .r2 {border-radius: 0 10px 20px;} .r3 {border-radius: 10px 20px;} .r4 {border-radius: 10px/20px;} .r5 {border-radius: 5px 10px 15px 30px/30px 15px 10px 5px;} .r6 {border-radius: 10px 20px 30px 40px/30px;} .r7 {border-radius: 50%;} .r8 {border-top: none; border-bottom: none; border-radius: 30px/90px;} .r9 {border-bottom-left-radius: 100px;} .r10 {border-radius: 0 100%;} .r11 {border-radius: 0 50% 50% 50%;} .r12 {border-top-left-radius: 100% 20px; border-bottom-right-radius: 100% 20px;}
    Рис. 1. Примеры различных вариантов закругления углов блока

    2. Рамки-изображения border-image

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

    IE: 11.0
    Firefox: 15.0, 3.5 -moz-
    Chrome: 16.0, 7.0 -webkit-
    Safari: 6.0, 3.0 -webkit-
    Opera: 15.0, 11.0 -o-
    iOS Safari: 7.1
    Opera Mini: 8 -o-
    Android Browser: 4.4, 4.1 -webkit-
    Chrome for Android: 42

    Свойство позволяет устанавливать изображение в качестве рамки элемента. Основное требование, предъявляемое к изображению — оно должно быть симметричным. Свойство включает в себя следующие значения: {border-image: width source slice repeat outset;} .

    При помощи такого простого изображения можно получить вот такие рамки для элемента.

    /* Пример 1 */ div { width: 260px; height: 100px; border-style: solid; border-image-width: 15px; border-image-source: url(border_round.png); border-image-slice: 30; border-image-repeat: stretch; } /* Пример 2 */ div { width: 260px; height: 100px; border-style: solid; border-image-width: 15px; border-image-source: url(border_round.png); border-image-slice: 30; border-image-repeat: round; }
    Рис. 2. Пример оформления границ блока с помощью изображения

    Cрезы A — B — C — D образуют углы рамки, а часть рисунка, расположенная между ними, заполняет оставшееся пространство рамки в соответствии с заданным значением свойства border-image-repeat . Размер угловой части (в данном примере это число 30), задается с помощью значения свойства border-image-slice .

    2.1. Ширина рамки-изображения border-image-width

    Свойство задаёт ширину изображения для границы элемента. Если ширина не задана, то по умолчанию она равна 1 .

    border-image-width
    Значения:
    длина Устанавливает ширину рамки в единицах длины — px / em . Можно задавать от одной до четырех значений одновременно. Если задано одно значение, то ширина всех сторон рамки одинакова, два значения задают ширину верхней-нижней и правой-левой и т.д.
    число Числовое значение, на которое умножается значение border-width .
    % Ширина рамки элемента вычисляется относительно размера изображения. Горизонтальные относительно ширины, вертикальные - относительно высоты.
    auto Соответствует значению border-image-slice .
    initial
    inherit

    Синтаксис

    Div {border-image-width: 30px;} Рис. 3. Пример задания ширины рамки-изображения с помощью различных типов значений

    2.2. Ресурс рамки-изображения border-image-source

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

    Синтаксис

    Div {border-image-source: url(border.png);}

    2.3. Элементы рамки-изображения border-image-slice

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

    Значения:
    число Размер частей рамки можно задавать с помощь одного, двух, трех или четырех значений.
    Одно значение устанавливает границы одинакового размера для каждой стороны элемента.
    Два значения: первое определяет размер верхней и нижней границы, второе - правой и левой.
    Три значения: первое определяет размер верхней границы, второе - правой и левой, а третье - нижней границы.
    Четыре значения: определяет размеры верхней, правой, нижней и левой границы.
    Числовое значение представляет количество px .
    % Размеры границ рассчитываются относительно размера изображения. Горизонтальные относительно ширины, вертикальные - относительно высоты.
    fill Значение указывается вместе с числом или процентным значением. Если оно задано, изображение не обрезается внутренним краем рамки, а заполняет также область внутри рамки.
    initial Устанавливает это свойство в значение по умолчанию.
    inherit Наследует значение этого свойства от родительского элемента.

    Синтаксис

    Div {border-image-slice: 50 20;}
    Рис. 4. Пример задания срезов рамки-изображения

    2.4. Повтор рамки-изображения border-image-repeat

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

    Синтаксис

    Div {border-image-repeat: repeat;} Рис. 5. Пример повтора центральной части рамки-изображения с помощью различных типов значений

    2.5. Смещение рамки-изображения border-image-outset

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

    Синтаксис

    Div {border-image-outset: 10px;}
    Рис. 6. Пример смещения рамки-изображения с помощью различных типов значений

    3. Смещение внешней рамки outline-offset

    Свойство задаёт расстояние между границей элемента border и внешней границей, созданной с помощью свойства outline .

    /*Рисунок 1:*/ img { border: 1px solid pink; outline: 1px dashed grey; outline-offset: 3px; } /*Рисунок 2:*/ img { border-width: 1px 10px; border-style: solid; border-color: pink; outline: 1px dashed grey; outline-offset: 3px; } /*Рисунок 3:*/ img { border: 3px inset pink; outline: 1px dashed grey; outline-offset: 1px; }
    Рис. 7. Пример оформления изображения внешней рамкой

    4. Градиентная рамка

    Значением border-image может выступать не только изображение, но и градиентная заливка.

    Полупрозрачная рамка

    В качестве одного из цветов выступает transparent . Таким способом можно задавать границы сразу для всех сторон элемента или по отдельности для каждой стороны. Толщина рамки регулируется свойством border-width .

    * {box-sizing:border-box;} .wrap { height: 200px; padding: 25px; background: #00E4F6; } .gradient { height: 150px; width: 50%; margin: 0 auto; border: 10px solid transparent; border-image: linear-gradient(to right, transparent 0%, #ADF2F7 100%); border-image-slice: 1; }

    Почтовый конверт

    * {box-sizing:border-box;} .wrap { height: 200px; padding: 25px; } .gradient { height: 150px; width: 50%; margin: 0 auto; border: 10px solid transparent; border-image: 10 repeating-linear-gradient(45deg, #A7CECC, #A7CECC 10px, transparent 10px, transparent 20px, #F8463F 20px, #F8463F 30px,transparent 30px, transparent 40px); }

    Скругленные углы на фотографии выглядят достаточно интересно и привлекательно. Чаще всего такие изображения применяются при составлении коллажей или создании презентаций. Также картинки со скругленными углами можно использовать в качестве миниатюр к постам на сайте.

    Вариантов использования много, а способ (правильный) получить такое фото всего один. В этом уроке я покажу, как скруглить углы в Фотошопе.

    Открываем в Фотошопе фотографию, которую собираемся редактировать.

    Затем создаем копию слоя с водопадом под названием «Фон» . Для экономии времени воспользуемся горячими клавишами CTRL+J .

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

    В данном случае из настроек нас интересует только одна – радиус скругления. Значение этого параметра зависит от размера изображения и от потребностей.

    Я задам значение в 30 пикселей, так будет лучше видно результат.

    Теперь нужно растянуть полученную фигуру на весь холст. Вызываем функцию «Свободное трансформирование» горячими клавишами CTRL+T . На фигуре появится рамка, при помощи которой можно перемещать, вращать и изменять размер объекта.

    Нас интересует масштабирование. Растягиваем фигуру при помощи маркеров, указанных на скриншоте. После завершения масштабирования нажимаем ENTER .

    Совет: для того, чтобы совершить масштабирование максимально точно, то есть, не выйдя за пределы холста, необходимо включить так называемую «Привязку» Посмотрите скрин, там указано, где данная функция находится.

    Функция заставляет объекты автоматически «Прилипать» к вспомогательным элементам и границам холста.

    Как видим, вокруг фигуры образовалось выделение. Теперь переходим на слой-копию, а со слоя с фигурой снимаем видимость (см. скриншот).

    Теперь слой с водопадом активен и готов к редактированию. Редактирование заключается в удалении лишнего из углов картинки.

    Инвертируем выделение горячими клавишами CTRL+SHIFT+I . Теперь выделение осталось только на углах.



    Загрузка...