Css закругленные края: Скруглённые уголки | htmlbook.ru

css — Как скруглить углы внутрь блока с обводкой

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

1

Версия @Ruslan_K, но с границами:

#main {
    margin: 40px;
    height: 100px;
    background-color: #1abc9c;
    position: relative;
    overflow: hidden;
}

#main .edge {
    position: absolute;
}

#main .edge.top {
    top: 0;
    left: 10px;
    right: 10px;
    bottom: 0;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}

#main .edge.left {
    left: 0;
    top: 10px;
    bottom: 10px;
    right: 0;
    border-left: 1px solid #000;
    border-right: 1px solid #000;
}

#main .corner {
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 100%;
    background-color: #FFF;
    border: 1px solid #000;
}

#main .
corner.top { top: -10px; } #main .corner.bottom { bottom: -10px; } #main .corner.left { left: -10px; } #main .corner.right { right: -10px; }
<div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>

Основная идея: вырезать лишние области с помощью псевдоэлементов.
Понадобится всего два блока в разметке (.wrapper и .content):

* {
  box-sizing: border-box;
}

.wrapper {
  background-color: #efefef;
  width: 300px;
  height: 60px;
  margin: 40px;
  /**
   * Ключевые свойства
   * С помощью position: relative будем позиционировать псевдоэлементы для вырезания границ
   * С помощью overflow: hidden будем делать сектора
   */
  position: relative;
  overflow: hidden;
}

/* Для наглядной демонстрации работы, не нужно в проекте */
.
wrapper.demo { border: 2px solid #bad; overflow: visible; } .content { /* Цвет границы блока должен совпадать с границей будущих вырезанных секторов */ border: 2px solid #07c; width: 100%; height: 100%; } .wrapper::before, .wrapper::after, .content::before, .content::after { /* Цвет следует подобрать в цвет фона сайта для перекрытия части основного блока */ background-color: #fff; /* Цвет границы блока должен совпадать с границей основного блока */ border: 2px solid #07c; /* Делаем окружность */ border-radius: 50%; content: ''; /* Позиционируется относительно .wrapper. Это важно для понимания. */ position: absolute; width: 30px; height: 30px; } /* Позиционирование будущих секторов: верхний ряд */ .wrapper::before, .wrapper::after { top: -15px; } .wrapper::before { left: -15px; } .
wrapper::after { right: -15px; } /* Позиционирование будущих секторов: нижний ряд */ .content::before, .content::after { bottom: -15px; } .content::before { left: -15px; } .content::after { right: -15px; }
<div>
  <div></div>
</div>

<div>
  <div></div>
</div>

Блок с классом .demo добавлен только для понимания того, как это все работает.


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

Сгенерировать градиент можно с помощью online-сервиса Ultimate CSS Gradient Generator.

#main {
    margin: 40px;
    height: 100px;
    background-color: #1abc9c;
    position: relative;
    overflow: hidden;
}

#main div {
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 100%;
    background-color: #FFF;
}

. top { top: -10px; }
.bottom { bottom: -10px; }
.left { left: -10px; }
.right { right: -10px; }
<div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

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

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

Вы можете использовать это свойство CSS3 для следующих браузеров:

  • Chrome 6+;
  • Firefox 4+;
  • Safari 5 +;
  • IE9 +;
  • Opera 10.5+;
  • Android 2.1+;
  • iOS 3.1+.
  • Радиус округления углов рамки в CSS
    • Неодинаковые углы
    • Как создать круг

Мы будем работать с классом «info-box». Это может быть область вашей веб-страницы с контактной информацией, и вы хотите с помощью CSS закруглить углы.

Напишите HTML-код элемента, для которого вы хотите закруглить углы:

<div>Здесь будет какой-то контент</div>

Далее добавьте в таблицу стилей правило CSS:

.info-box {
   -webkit-border-radius: 20px;
   border-radius: 20px;
  background-color: #000000;
{

Примечания:

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

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

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

.info-box {
   -webkit-border-radius: 20px 60px 40px 30px;
   border-radius: 20px 60px 40px 30px;
  background-color: #000000;
{

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

Допустим, что у вас в HTML-разметке есть квадратное изображение, которое имеет класс «bio-pic». Вы можете сделать это изображение круглым с помощью следующего CSS-кода:

img.bio-pic {
   -webkit-border-radius: 50%;
   border-radius: 50%;
{

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

Вадим Дворниковавтор-переводчик статьи «Rounded Corners with CSS3 Border Radius»

Primer CSS Rounded Corners Border

Посмотреть обсуждение

Улучшить статью

Сохранить статью

  • Последнее обновление: 19 апр, 2022

  • Читать
  • Обсудить
  • Посмотреть обсуждение

    Улучшить статью

    Сохранить статью

    Primer CSS — это бесплатная среда CSS с открытым исходным кодом, построенная на системах, создающих основу для основных элементов стиля, таких как интервалы, типографика и цвет. Этот систематический метод гарантирует, что наши шаблоны стабильны и взаимодействуют друг с другом. Его подход к CSS находится под влиянием принципов объектно-ориентированного CSS, функционального CSS и архитектуры БЭМ. Он очень многоразовый и гибкий. Он создан с помощью системы дизайна GitHub.

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

    Синтаксис:

     
    ....

    Примечание: * можно заменить любым числом от 0 до 3 в зависимости от требований к радиусу границы.

    Классы:

    • rounded-0: Этот класс используется для установки радиуса границы в 0, что в основном удаляет любые закругленные углы.
    • rounded-1 : Этот класс используется для установки радиуса границы 4 пикселя.
    • rounded-2: Этот класс используется для установки радиуса границы в 6 пикселей.
    • rounded-3: Этот класс используется для установки радиуса границы 8px.
    • круг: Этот класс используется для установки радиуса границы в 50%, что делает границы круглыми.

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

    • округленный-*-0
    • округленный-*-1
    • округленный-*-2
    • округленный-*-3

    , и осталось

    Пример 1: В этом примере мы узнаем о округленных-0 , округленных-1 , округленных-2 , округленных-3 и круг классы. Для вашего лучшего понимания мы используем цвета границ CSS, чтобы изменения были более заметными.

    HTML

    < html >

       

    < head >

         < ссылка ссылка =

    916. 0.0/dist/primer.css"

             rel = "stylesheet" />

    head >

       

    < Body Стиль = "Поправка: 1%; ширина: 50%" >

    < H2 Стиль < H2 .0108 >

             GeeksforGeeks

         h2 >

         < h4 > Rounded Corners Border h4 >

    < H3 > округление-0 H3 >

    >

    >

    < DIV Класс = "Граница округлена-0"

    Стиль = Стиль = .

             GeeksforGeeks – портал компьютерных наук.

         дел >

         < br >

         < h3 >rounded-1 h3 >

       

         < div class = "border rounded-1"  

             style = "border-color:red !important;"

             GeeksforGeeks – портал компьютерных наук.

         div >

         < br >

         < h3 >rounded-2 h3 >

    < DIV Класс = "граница округлена-2"

    "0108 стиль = "border-color: green! важно;"

             GeeksforGeeks – портал компьютерных наук.

         div >

         < br >

         < h3 >rounded-3 h3 >

    < DIV Класс = "Руковая граница-3"

    Стиль = !

           GeeksforGeeks — это портал компьютерных наук.

         дел >

         < br >

         < h3 >Circle h3 >

       

         < div class = "окружность границы" стиль =

            "ширина: 100 пикселей; высота: 100 пикселей; цвет фона: зеленый;" >

         div >

    body >

    html >

    Output:

     

    Пример 2: В этом примере мы узнаем о создании закругленных углов или отдельных краев, используя закругленный-вправо-0 , закругленный-вправо-1 , округлено-вправо-2 , и округлено-вправо-3 классов. 16.0.0/dist/primer.css"

             rel = "stylesheet" />

    head >

       

    < body style = "padding:1%;width:50%" >

         < h2 стиль = "7:зеленый;цвет; >

             GeeksforGeeks

         h2 >

           

         < h4 > Rounded Corners Border h4 >

           

         < h3 >закруглено-вправо-0 h3 >

    7 > 0106

    < DIV Класс = "СРЕДНАЯ СРЕДНАЯ ПРАВО-РЕЙТ-0"

    Стиль 908 =

    907 Стиль 908 =

    907 . >

             GeeksforGeeks — это портал компьютерных наук.

         дел >

         < br >

         < h3 >rounded-right-1 h3 >

       

         < div class = "border rounded-right-1"  

             style = "border-color:red" !important

            GeeksforGeeks — это портал компьютерных наук.

    DIV >

    < BR >

    >

    >

    >

    >

    >

    . >

       

         < раздел класс = "border rounded-right-2"  

             style = "border-color:green !important;"

            GeeksforGeeks — это портал компьютерных наук.

    DIV >

    < BR >

    <>

    <>

    <>

    .0108 h3 >rounded-right-3 h3 >

       

         < div class = "border rounded-right-3"

             стиль = "border-color: blue !important;"

             GeeksforGeeks – портал компьютерных наук.

         div >  

    body >

    html >

    Output:

     

    Примечание: Вы можете заметить, что только углы правого края закруглены .

    Ссылка: https://primer.style/css/utilities/borders#rounded-corners


    Закругленные углы CSS: пошаговое руководство

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

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

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

    Найдите свой матч для буткемпа

    • Career Karma подберет для вас лучшие учебные курсы по технологиям
    • Получите доступ к эксклюзивным стипендиям и подготовительным курсам

    Выберите свой интерес
    Программная инженерия Дизайн Наука о данных Аналитика данных Продажи Кибербезопасность Цифровой маркетинг Имя

    Фамилия

    Эл. адрес

    Номер телефона

    Продолжая, вы соглашаетесь с нашими условия обслуживания а также Политика конфиденциальности , и вы соглашаетесь получать предложения и возможности от Career Karma по телефону, текстовым сообщениям и электронной почте.

    Радиус границы CSS

    Границы — это линии, окружающие внешний край веб-элемента.

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

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

    Свойство border-radius является сокращением для четырех подсвойств, используемых для установки радиуса границы каждого угла. Эти подсвойства:

    • граница-верхний-левый-радиус
    • граница-верхний-правый-радиус
    • граница-нижний-правый-радиус
    • граница-нижний-левый-радиус

    Эти свойства используются для установки границы вокруг определенного угла веб-элемента. Каждый элемент принимает либо значение длины в px, em, другое измерение длины, либо процентное значение (%).

    Давайте рассмотрим пример, чтобы проиллюстрировать, как работают эти свойства.

    Нам было поручено спроектировать коробку со скругленными верхним левым и нижним правым углами. Наш блок должен иметь сплошную светло-голубую рамку толщиной 3 пикселя. Верхний левый угол должен быть закруглен на 20 пикселей, а нижний правый угол должен быть закруглен на 10 пикселей. Мы могли бы использовать следующий код для создания этого поля:

     index.html
    <дел>
    

    Это коробка.

     стили.css
    .коробка {
    граница: 3 пикселя сплошной светло-голубой;
    граница-верхний-левый-радиус: 20px;
    граница-нижний-правый-радиус: 10px;
    } 

    Наш код возвращает:

    В нашем HTML-коде мы создали блок с помощью тега

    . Это поле содержит тег

    , в котором текст это коробка . хранится. Нашему тегу

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

    В нашем файле CSS мы определили, что любой элемент с коробка класс должен иметь:

    • Сплошная светло-голубая рамка шириной 3 пикселя.
    • Верхний левый угол, закругленный на 20 пикселей.
    • Нижний правый угол, закругленный на 10px.

    Если вы посмотрите на изображение выше, вы увидите, что наши верхний левый и нижний правый углы закруглены. Верхний левый угол был скруглен на 20 пикселей, а нижний правый угол был скруглен на 10 пикселей.

    Сокращение радиуса границы CSS

    Свойство border-radius является сокращением для четырех подсвойств, которые мы обсуждали ранее.

    «Карьерная карма вошла в мою жизнь, когда я больше всего в ней нуждалась, и быстро помогла мне пройти буткемп. Через два месяца после выпуска я нашла работу своей мечты, которая соответствовала моим ценностям и целям в жизни!»

    Венера, инженер-программист в Rockbot

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

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

    Одно значение

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

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

     .ящик {
    радиус границы: 20px;
    граница: 3 пикселя сплошной светло-голубой;
    высота: 200 пикселей;
    ширина: 200 пикселей;
    } 

    Наш код возвращает:

    В этом примере мы создали поле размером 200 пикселей в высоту и 200 пикселей в ширину. Наша коробка имеет сплошную светло-голубую рамку шириной 3 пикселя. Мы также использовали свойство border-radius, чтобы добавить эффект закругления на 20 пикселей к каждому углу нашего прямоугольника.

    Два значения

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

    Порядок, в котором применяются указанные значения округления, следующий:

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

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

     .ящик {
    радиус границы: 20px 10px;
    граница: 3 пикселя сплошной светло-голубой;
    высота: 200 пикселей;
    ширина: 200 пикселей;
    } 

    Наш код возвращает:

    В нашем примере мы указали два значения свойства border-radius. Первое значение используется для установки скругления краев верхнего левого и нижнего правого углов на 20 пикселей. Второе значение используется для установки скругления краев нижнего левого и верхнего правого углов на 10 пикселей.

    Три ценности

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

    Порядок, в котором три заданных вами значения применяются к блоку, следующий:

    • Первое значение — это округление верхнего левого угла.
    • Второе значение — это округление правого верхнего и левого нижнего углов.
    • Третье значение — округление нижнего правого угла.

    Предположим, мы создаем коробку, которая должна иметь следующие закругления:

    • Верхний левый угол должен быть закруглен на 30 пикселей.
    • Верхний правый и нижний левый углы должны быть закруглены на 20 пикселей.
    • Правый нижний угол должен быть закруглен на 10px.

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

     .ящик {
    радиус границы: 30px 20px 10px;
    граница: 3 пикселя сплошной светло-голубой;
    высота: 200 пикселей;
    ширина: 200 пикселей;
    } 

    Наш код возвращает:

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

    Четыре ценности

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

    • Первое значение относится к верхнему левому углу.
    • Второе значение относится к верхнему правому углу.
    • Третье значение относится к правому нижнему углу.
    • Четвертое значение относится к левому нижнему углу.

    Предположим, мы хотим создать блок со скруглением на 5 пикселей в верхнем левом углу, на 10 пикселей в верхнем правом углу, на 15 пикселей в правом нижнем углу и на 20 пикселей в нижнем левом углу. Наш прямоугольник должен быть 200 пикселей в ширину и 200 пикселей в длину и иметь сплошную светло-голубую рамку шириной 3 пикселя.

    Мы могли бы создать это поле, используя следующий код:

     .ящик {
    радиус границы: 5px 10px 15px 20px;
    граница: 3 пикселя сплошной светло-голубой;
    высота: 200 пикселей;
    ширина: 200 пикселей;
    } 

    Наш код возвращает:

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

    Эллиптические углы

    В наших примерах выше мы использовали радиус границы для создания закругленных углов. Мы также можем использовать свойство border-radius для создания эллиптических границ.

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

     border-radius: радиус по горизонтали/радиус по вертикали; 

    Предположим, мы хотим создать эллиптический угол 25% вокруг горизонтальных углов блока и эллиптический угол 50% вокруг вертикальных углов блока. Наш блок должен быть 200 пикселей в ширину и 200 пикселей в длину и иметь голубую рамку. Мы могли бы сделать это, используя этот код:

     .ящик {
    радиус границы: 25% / 30%;
    граница: 3 пикселя сплошной светло-голубой;
    высота: 200 пикселей;
    ширина: 200 пикселей;
    } 

    Наш код возвращает:

    Как видите, мы создали фигуру с эллиптическими закругленными углами.

    Вывод

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

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *