如何用css使边框颜色渐变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用css使边框颜色渐变相关的知识,希望对你有一定的参考价值。

一、CSS3 中的边框颜色 这里是一个10px宽的标准边框和边框颜色: #borderColor border: 10px solid #dedede; -moz-border-bottom-colors: #300 #600 #700 #800 #900 #A00; -moz-border-top-colors: #300 #600 #700 #800 #900 #A00; -moz-border-left-colors: #300 #600 #700 #800 #900 #A00; -moz-border-right-colors: #300 #600 #700 #800 #900 #A00; padding: 15px 25px; height: inherit; width: 590px; 二、有圆角的边框颜色 #borderColorCorner border: 10px solid #dedede; -moz-border-radius: 15px; -moz-border-bottom-colors: #303 #404 #606 #808 #909 #A0A; -moz-border-top-colors: #303 #404 #606 #808 #909 #A0A; -moz-border-left-colors: #303 #404 #606 #808 #909 #A0A; -moz-border-right-colors: #303 #404 #606 #808 #909 #A0A; padding: 15px 25px; height: inherit; width: 590px; 参考技术A background-color:#a0a #909 #808 #707 #606 #505 #404 #303;

background -color 属性的参数很简单,可以是任意合法的颜色值或颜色值列表,当background -color只设置了一个颜色时,那么就是单色的。如果设置了n中颜色而边框宽度也为n的话那么每一个像素显示一种颜色,如果边框宽度值大于颜色数值时,最后一种颜色用于显示剩下的宽度。
参考技术B 浏览器兼容性不好,注意使用

使 UIView 渐变的边框颜色

【中文标题】使 UIView 渐变的边框颜色【英文标题】:Make border color of UIView gradient 【发布时间】:2017-10-08 15:58:33 【问题描述】:

如何制作 UIView 渐变的边框颜色?

我已经从我的情节提要中声明了一个 UIView,并且我知道如何使边框颜色纯色。但我不知道如何制作边框渐变。

 @IBOutlet weak var view: UIView! 

override func awakeFromNib() 
        super.awakeFromNib() 

    let gradient = CAGradientLayer()

    gradient.colors = [UIColor.white.cgColor, UIColor.black.cgColor]

        view.backgroundColor = nil
        view.layer.cornerRadius = view.bounds.width / 2
        view.layer.borderWidth = 3
        view.layer.borderColor = colorOutline.cgColor


        nah.textColor = colorCircleBlue


    

【问题讨论】:

可能重复。看看这个答案***.com/a/36836787/2000162 @TomCobo 答案很好。你知道我怎样才能让框架变成圆形吗? view.layer.masksToBounds = true; view.layer.cornerRadius = view.bounds.width / 2 @TomCobo 渐变框架是正方形。我需要使渐变框架圆形 【参考方案1】:

如果你想制作圆形渐变框架试试这个:

 let gradient = CAGradientLayer()
    gradient.frame =  CGRect(origin: CGPoint.zero, size: self.yourView.frame.size)
    gradient.colors = [UIColor(red: 1, green: 0.2527923882, blue: 1, alpha: 1).cgColor, UIColor(red: 0.1802595352, green: 0.06151589641, blue: 0.2927506345, alpha: 1).cgColor]
    let shape = CAShapeLayer()
    shape.lineWidth = 2
    shape.path = UIBezierPath(roundedRect: yourView.bounds.insetBy(dx: 2, dy: 2), cornerRadius: yourView.frame.width * 0.5).cgPath
    shape.strokeColor = UIColor.black.cgColor
    shape.fillColor = UIColor.clear.cgColor
    gradient.mask = shape
    self.yourView.layer.addSublayer(gradient)

您的视图的高度和重量之间的纵横比必须为 1 // 粉色和紫色 => [UIColor(red: 1, green: 0.2527923882, blue: 1, alpha: 1).cgColor, UIColor(red: 0.1802595352, green: 0.06151589641, blue: 0.2927506345, alpha: 1).cgColor ]

【讨论】:

【参考方案2】:

你好什么

下面我举一个例子让你完成你的任务。

我把我的代码放在 didSet 里面,但是如果你愿意,你也可以把代码放在 didLoad 里面。

我也不知道是谁做的,我搜索并发现了这个答案。

@gvuksic explain how create a border gradient on UIView us here

        let gradient = CAGradientLayer()
        gradient.frame =  CGRect(origin: CGPoint.zero, size: self.view.frame.size)
        gradient.colors = [UIColor.blue.cgColor, UIColor.green.cgColor]

        let shape = CAShapeLayer()
        shape.lineWidth = 2
        shape.path = UIBezierPath(rect: self.view.bounds).cgPath
        shape.strokeColor = UIColor.black.cgColor
        shape.fillColor = UIColor.clear.cgColor
        gradient.mask = shape

        self.view.layer.addSublayer(gradient)

【讨论】:

这是完美的。但是,你知道我怎样才能让 gradient.frame 变成圆形吗? 试试这个项目的开源代码:github.com/tonsser/Cirque,如果你想自定义你可以。

以上是关于如何用css使边框颜色渐变的主要内容,如果未能解决你的问题,请参考以下文章

css如何用一类来改变背景颜色?

使 UIView 渐变的边框颜色

用css的方法达到边框颜色渐变,最好支持chrome

渐变作为按钮边框颜色?

如何用渐变颜色的控制点填充贝塞尔路径

具有从左、上、下和右颜色渐变的边框