Jump to content
  • 0

Блок с закруглёнными краями и градиентным border


Delat
 Share

Question

Как сверстать блок с закруглёнными краями и градиентным border?

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

  • Не нравится что кнопка вышла фиксированного размера.
  • Много CSS-свойств.
*,
*::before,
*::after {
  box-sizing: border-box;
}
body {
  background: #050B1F;
}
/* Верхний слой */
#button-continue {
  margin-top: 46px;
  
  width: 331px;
  height: 54px;
  border: 3px solid transparent;
  border-radius: 56px;
  background-color: rgba(11, 27, 55, 1);
  position:relative;
  cursor:pointer;
  
}
/* нижний слой (Градиент) */
#button-continue::after {
content: "";
width:337px;
height:60px;
position:absolute;
z-index:-5;
top:-6px;
left:-6px;

border-radius: 56px;
 background-image: radial-gradient(circle closest-side at 40% -40px, rgba(255, 255, 255, 1), rgba(31, 119, 200, 1) 100px);
}
.button-continue__text {
  text-transform: uppercase;
  font-size: 0.875em;
  color: #99CEFF;
  font-weight: 400;
}
.button-continue__text::after {
  content: url('img/icon-continue.svg');
  position: relative;
  top: 3px;
  left: 10px;
}
<button id="button-continue">
   <span class="button-continue__text">Continue</span>
</button>

Должно получиться вот так, но получилось не так как хотелось бы: 625209b171b3d6538065d59e36c91ed1-full.jp

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

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

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

button:before {
  content: '';

  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;

  margin: 10px;
  /* or just top, right, bottom, left: 10px; without margin */

  background-color: #fff;

  border-radius: inherit;
}

 

Link to comment
Share on other sites

  • 0
42 минуты назад, Igor Schnaider сказал:

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

вот это интересно, можете пояснить на примере? У меня объемлющий блок в котором находится кнопка, имеет ширину 375px. Как высчитать пропорции для border-radius в %?

Edited by Delat
Link to comment
Share on other sites

  • 0
56 минут назад, Delat сказал:

Как высчитать пропорции для border-radius в %?

Не в %, а в тех же em/rem. По-нормальному, внутренний радиус должен быть чуть меньше внешнего, но для простоты я взял равный высоте.

https://codepen.io/anon/pen/JabaKr

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy