9 個很棒的 CSS 邊框技巧

來源: 前端全棧開發者

  1. 動畫 CSS 邊框

當我們想使我們的項目更可見時,該怎麼辦?

來給它做個動畫!

我們可以對我們的邊框進行動畫化處理,甚至在不改變元素大小的情況下也可以進行動畫化處理,非常簡單。

要做到這一點,我們只需要爲動畫創建一個自定義的關鍵幀(keyframe),並在元素的 CSS 代碼中的動畫(animation)參數中使用它。

讓我們看一個例子,HTML 如下

<div>
  編程適合那些有不同想法的人... <br/>
  對於那些想要創造大事物並願意改變世界的人們。
</div>

編寫 CSS 和動畫

@keyframes animated-border {
  0% {
    box-shadow: 0000rgba(255,255,255,0.4);
  }
  100% {
     box-shadow: 00020pxrgba(255,255,255,0);
  }
}
#box {
  animation: animated-border 1.5s infinite;
  font-family: Arial;
  font-size: 18px;
  line-height: 30px;
  font-weight: bold;
  color: white;
  border: 2px solid;
  border-radius: 10px;
  padding: 15px;
}

效果如下

  1. CSS 圖像邊框

你是否曾經想象過你的元素周圍有甜甜圈?

現在,你無需過多的編碼即可通過純 CSS 添加它們。

爲此,你需要在元素的 CSS 代碼中使用 border-image 屬性。

讓我們看一個例子,還是之前的 HTML

<div>
  編程適合那些有不同想法的人... <br/>
  對於那些想要創造大事物並願意改變世界的人們。
</div>

編寫 CSS

#box {
    font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    border: 40px solid transparent;
    border-image: url(https://image.flaticon.com/icons/svg/648/648787.svg);
    border-image-slice: 100%;
    border-image-width: 60px;
    padding: 15px;
}

效果如下

  1. 蛇式 CSS 邊框

如果我們需要雙色超可視邊框怎麼辦?

我們可以穿上蛇的衣服,想怎麼着色就怎麼着色。

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 15px;
    border: 10px dashed #FF5722;
    background:
    linear-gradient(to top, green, 10px, transparent 10px),
    linear-gradient(to right, green, 10px, transparent 10px),
    linear-gradient(to bottom, green, 10px, transparent 10px),
    linear-gradient(to left, green, 10px, transparent 10px);
    background-origin: border-box;
}

效果如下

  1. 階梯樣式 CSS 邊框

你是否曾經嘗試在 div 周圍添加 3d 樣式邊框?

在我們的元素中添加一些多色深度是非常容易的,我們只需要在 CSS 中添加一些方塊陰影就可以了。

讓我們測試一下我們的例子!

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 40px;
    box-shadow:
		  inset #0096880005px,
      inset #059c8e0001px,
      inset #0cab9c00010px,
      inset #1fbdae00011px,
      inset #8ce9ff00016px,
      inset #48e4d600017px,
      inset #e5f9f700021px,
      inset #bfecf700022px
}

效果

  1. 只有陰影 CSS 邊框

有時我們需要在現成的設計中添加邊框,但添加更多像素會有些問題,它可能改變元素的位置。

現在,我們可以使用圍繞元素的框陰影作爲邊框,看一下代碼。

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 40px;
    border-radius: 10px;
    box-shadow: 00010px white;
}

效果

  1. 帶陰影和輪廓的 CSS 邊框

我們可以通過幾種方式達到與蛇式類似的效果。接下來,其中之一是在元素 CSS 中混合 box-shadow 和 outline 屬性。

讓我們來看看。

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 40px;
    box-shadow: 00010px white;
    outline: dashed 10px#009688;
}

效果

  1. 少量陰影和輪廓

我們甚至可以在邊框中創建一些顏色和元素。

爲此,我們需要混合陰影和輪廓,如下面的示例所示。

讓我們嘗試一下。

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 40px;
    box-shadow:
      0001px#009688,
      0005px#F44336,
      0009px#673AB7,
      00010px#009688;
    outline: dashed 10px#009688;
}

效果

  1. 帶有陰影的雙 CSS 邊框

我們也可以混合一些 box-shadow 和 outline 的邊框。

這將創建一個漂亮的帶尖刺的線條效果,如下例所示。

讓我們檢查一下代碼!

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 40px;
    box-shadow: 00010px#009688;
    border: 10px solid #009688;
    outline: dashed 10px white;
}

效果

  1. 多色 CSS 邊框

如果我們想給邊框加上比前面的示例更多的顏色怎麼辦?

我們甚至可以將元素的每一面都設置爲不同的顏色。

爲此,我們將需要一些帶有漸變的自定義背景。

看下面的例子。

#box {
  font-family: Arial;
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
    color: white;
    padding: 40px;
    background:
      linear-gradient(to top, #4caf50, #4caf50 10px, transparent 10px),
      linear-gradient(to right, #c1ef8c, #c1ef8c 10px, transparent 10px),
      linear-gradient(to bottom, #8bc34a, #8bc34a 10px, transparent 10px),
      linear-gradient(to left, #009688, #00968810px, transparent 10px);
  background-origin: border-box;
}

效果

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/6YSxn4J1MH38foQOULux5g