搜尋

首頁  >  問答  >  主體

建立擁有邊框半徑的漸變邊框

<p>我有以下的CSS:</p> <pre class="brush:php;toolbar:false;">a.btn.white-grad { background: $lgrey; color: #313149 !important; border: 1px solid #000; border-image-source: linear-gradient(to right, #9c20aa, #fb3570); border-image-slice: 20; float: left; @include font-size(26); margin: 75px 0; }</pre> <p>加 <code>border-radius: 5px</code> 似乎沒有任何效果。我想這是因為我正在使用邊框漸變... 是否有辦法實現所需的5px邊框半徑? </p>
P粉930448030P粉930448030476 天前445

全部回覆(2)我來回復

  • P粉541565322

    P粉5415653222023-08-14 15:04:39

    2023 - 單一元素,無偽元素,無SVG,無遮罩。

    我不能為此負責,我在一個網站上看到的(我忘了網站的名字,也找不到它了)。

    • 它只是一個普通的圓角和漸層背景的按鈕
    • 它使用了一個insetbox-shadow來填滿內部的白色
    • 它有一個2px的邊框,實際上是透明的,所以按鈕的邊緣可以透過過來顯示


    body {
      background: aliceblue;
    }
    
    .gradient-border {  
      border-radius: 24px;
      padding: 6px 12px;
      background-image: linear-gradient(90deg, red 0%, blue 100%);
      /* 填充内部白色 */
      background-origin: border-box;
      box-shadow: inset 0 1000px white;
      /* 透明边框,所以按钮的边缘可以透过来显示 */
      border: 2px solid transparent;
    }
    <button class="gradient-border">Hello</button>


    #

    回覆
    0
  • P粉066224086

    P粉0662240862023-08-14 09:22:15

    2021:如果你想要透明度,我建議使用CSS遮罩方法,因為現在的支援相當不錯


    你不能在漸變中使用border-radius。這裡有另一個想法,你可以依賴多個背景並調整background-clip


    .white-grad {
      background: 
        linear-gradient(#ccc 0 0) padding-box, /*这是你的灰色背景*/
        linear-gradient(to right, #9c20aa, #fb3570) border-box;
      color: #313149;
      padding: 10px;
      border: 5px solid transparent;
      border-radius: 15px;
      display: inline-block;
      margin: 75px 0;
    }
    <div class="white-grad"> 这里放置一些文字</div>
    
    <div class="white-grad"> 这里放置一些很长很长的文字</div>
    
    <div class="white-grad"> 这里放置一些很长很长的文字<br>这里放置一些很长的文字</div>

    回覆
    0
  • 取消回覆