Comment faire des coins arrondis en CSS. Comment arrondir les coins d'une image en utilisant CSS sans Photoshop

Dans la leçon précédente, nous avons appris à définir une bordure pour un élément. Nous avons également examiné des propriétés telles que border-color et border-style , avec lesquelles vous pouvez personnaliser la couleur et le style de la bordure. Cependant, tous nos cadres sont sortis avec des angles droits. Nous allons maintenant vous montrer comment créer des coins arrondis en CSS pour les bordures.

Comment arrondir les coins : propriété CSS3 border-radius

L'arrondi des coins en CSS peut être effectué pour n'importe quel élément d'une page HTML. Pour ce faire, vous devez y postuler propriété frontalière-rayon avec la valeur appropriée. Le plus souvent la valeur est spécifiée en pixels, mais d'autres unités peuvent également être utilisées, comme l'em ou le pourcentage (dans ce dernier cas, le calcul se fait par rapport à la largeur du bloc).

L'effet de cette propriété ne sera perceptible que si l'élément en cours de style a un arrière-plan et/ou une bordure colorée. Par exemple:

BorderElement (couleur d'arrière-plan : #EEDDFF ; bordure : 6px solide #7922CC ; rayon de bordure : 25px ; )

Le style décrit ci-dessus donnera le résultat suivant sur l'élément

taille 200x200 pixels :


Vous pouvez également créer des bords arrondis uniquement pour les coins supérieurs ou inférieurs de l'élément, ou donner à chaque coin un rayon d'arrondi différent - beaucoup de place pour l'imagination ! Exemple:

BorderElement (couleur d'arrière-plan : #EEDDFF ; bordure : 6px solide #7922CC ; rayon de bordure : 25px ; ) .borderElement1 (couleur d'arrière-plan : #FFE8DB ; bordure : 6px solide #FF5A00 ; rayon de bordure : 15px 100px 15px 100px; )

Mais ce n’est pas tout : au lieu de simple coins arrondis vous pouvez spécifier un arrondi elliptique. Pour ce faire, vous devrez préciser deux valeurs séparées par une barre oblique (pour les demi-axes horizontal et vertical de l'ellipse). Donnons un exemple sur un bloc de 150x450 pixels :

BorderElement ( couleur d'arrière-plan : #EEDDFF ; bordure : 6px solide #7922CC ; rayon de bordure : 280px/100px ; )

Les valeurs peuvent être mélangées (c'est-à-dire utiliser à la fois des arrondis réguliers et elliptiques dans le même style), et vous pouvez également ajouter style personnel pour chaque angle, en utilisant les propriétés appropriées :

  • border-top-left-radius - pour le coin supérieur gauche ;
  • border-top-right-radius - pour le coin supérieur droit ;
  • border-bottom-left-radius - pour le coin inférieur gauche ;
  • border-bottom-right-radius - pour le coin inférieur droit.

Le principe de l'arrondi des coins

L'image ci-dessous montre comment l'arrondi des coins est calculé en CSS. Ainsi, si une seule valeur est spécifiée pour l'angle - par exemple, 20px - cela signifie que l'arrondi se produira le long d'un cercle d'un rayon de 20 pixels. Dans le cas où deux valeurs sont spécifiées séparées par une barre oblique, par exemple 30px/20px , les coins seront arrondis le long d'une ellipse. La première valeur dans ce cas est la longueur du demi-axe horizontal de l'ellipse - 30px, et la deuxième valeur est la longueur du demi-axe vertical - 20px :



La propriété CSS border-radius est prise en charge par tout le monde versions modernes navigateurs.

Veuillez noter que les styles CSS d'une forme donnée sont saisis une seule fois dans le fichier, mais la balise HTML peut être placée un nombre illimité de fois sur le site.

À la suite du résultat, nous obtenons ce qui suit rectangle avec cadre.

Comment créer des coins arrondis en CSS

L'attribut est utilisé pour arrondir les coins rayon de frontière.

Nous pourrions ajouter uniquement cet attribut. Il affiche normalement le résultat de l'arrondi dans les nouvelles versions des navigateurs, mais de nombreux utilisateurs disposent encore d'anciennes versions dans lesquelles cet attribut ne fonctionne pas correctement. Par conséquent, pour des raisons de compatibilité, nous ajouterons quelques descriptions supplémentaires de cet attribut, lié directement à certains navigateurs, à notre bloc dans le fichier Style.css, ce qui donnera le code suivant :

La balise HTML div nous donnera rectangle dans un cadre avec un arrondiet les coins:

et la balise HTML pour afficher le texte ressemblera à ceci :

pib9.ru

On a rectangle arrondi et texte :

Si vous supprimez les attributs de description de la taille du rectangle du code largeur Et hauteur, vous pouvez alors obtenir les formes suivantes avec des coins arrondis :

1. Pas de texte

Dans ce cas, les formulaires prennent les dimensions de l'environnement : la longueur correspond à la largeur du champ, et la hauteur change au fur et à mesure que le formulaire se remplit de contenu.

Arrondir les coins sélectionnés

Dans la description du style, le paramètre 10px dans l'attribut rayon de frontière affiche le rayon de courbure, qui peut être modifié en sélectionnant celui dont vous avez besoin. S'il est défini sur 0, l'arrondi n'aura pas lieu. Cette propriété peut être utilisée lorsque vous devez arrondir les coins sélectionnés.

Notons les valeurs du rayon d'arrondi pour chaque coin, en indiquant des zéros là où nous annulons l'arrondi. Par exemple, annulons l'arrondi des troisième et quatrième coins. Notre code ressemblera à ceci :

1. Coin supérieur gauche.

2. Coin supérieur droit.

3. Coin inférieur droit.

4. Coin inférieur gauche.

Il en résulte un rectangle avec des courbes sélectionnées uniquement dans les coins supérieurs.

Les angles sont comptés dans le sens des aiguilles d'une montre, en commençant par la gauche coin supérieur:

2. Arrondir les coins à l'aide de code HTML sans écrire dans un fichier de style

Considérons la deuxième méthode pour obtenir un rectangle aux coins arrondis avec en utilisant HTML code sans écrire dans un fichier de style.

Coins arrondis HTML

Il existe une petite fonctionnalité qui simplifie encore plus l'ensemble du processus : Coins arrondis HTML. Cela consiste à générer du code HTML, qui contient les mêmes styles que dans Codes CSS. Cela utilise les mêmes attributs que dans le bloc CSS et élimine le besoin d'écrire le bloc dans le fichier Style.css. En un mot, nous remplaçons complètement le code CSS par du code HTML.

Au lieu de notre bloc CSS, nous obtenons Script HTML, que l'on insère à l'endroit où doit apparaître le rectangle aux coins arrondis :

La première méthode d'arrondi des coins peut être utilisée lorsque la même forme est utilisée plusieurs fois sans changer de style. La deuxième méthode est utilisée pour les formulaires dont les styles sont utilisés une seule fois.

3. Images aux coins arrondis. Cadre autour de l'image HTML

Je veux aussi te donner informations utiles. Utilisant souvent photos pour la conception de sites Web, j'ai vraiment envie de les rendre encore plus belles en changeant leur forme, en les encadrant d'un cadre d'une belle couleur et de largeurs différentes. Cela pose la question : « Comment arrondir les coins d'une image?”.

Cela se fait très simplement et nous allons maintenant apprendre comment le faire.

Plaçons l'image sur le site, en faisant son propre arrière-plan comme arrière-plan de la balise div. Nous obtenons le code et l'image suivants :

Arrondir les coins de l'image en ajoutant un cadre

Arrondir les coins des images en CSS et HTML et ajouter une bordure peut être effectué de l'une des deux manières décrites ci-dessus.

En utilisant la première méthode de cet article, les codes d'image pour le fichier de style et le code HTML de la balise div ressembleront à ceci :

Veuillez noter que certains attributs peuvent être saisis dans le fichier de style et d'autres dans la balise div. Dans notre cas, les dimensions de l'image largeur et hauteur sont insérées dans le code HTML.

Le code HTML de la deuxième méthode, sans utiliser le fichier de style décrit dans cet article, ressemble à ceci :

Grâce aux codes de chacune des deux méthodes, nous obtenons le même résultat - une image aux coins arrondis :

). Cela se fait en utilisant Propriétés CSS rayon-frontière . Dans cet article, nous examinerons toutes les différentes options.

La syntaxe CSS border-radius est la suivante :

rayon-bordure : [ valeur_filet];

Comment arrondir les coins en HTML en utilisant CSS

Regardons des exemples d'arrondis de coins à l'aide de CSS. Par exemple

В этом случае все 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 ;

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

В сегодняшнем руководстве я покажу, как можно закруглить углы таблицы, используя только 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 не прибегая к использованию каких-либо изображений.

В данном способе есть, как плюсы, так и минусы. Плюсы, конечно же, заключаются в том, что нет необходимости создавать изображения, используя какой-либо графический редактор, загружать их на сервер, а потом расставлять с помощью 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.
Удачи, Вам!