Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使边界图像使用渐变_Javascript_Html_Css_Reactjs_Border - Fatal编程技术网

Javascript 使边界图像使用渐变

Javascript 使边界图像使用渐变,javascript,html,css,reactjs,border,Javascript,Html,Css,Reactjs,Border,我正在开发一个webapp,它使用react.js和sass作为样式(所以我所有的样式文件都是.scss)。我有一个当前样式的文本框: input[type=text] { text-align: center; font: inherit; border: 6px solid #999999; padding: 5px 5px; font-size: 15px; box-shadow: 0 1px 1px #DDD; width: 223px; outline:

我正在开发一个webapp,它使用react.js和sass作为样式(所以我所有的样式文件都是.scss)。我有一个当前样式的文本框:

input[type=text] {
  text-align: center;
  font: inherit;
  border: 6px solid #999999;
  padding: 5px 5px;
  font-size: 15px;
  box-shadow: 0 1px 1px #DDD;
  width: 223px;
  outline: none;
  display: block;
  color: #7B8585;
  margin: 0 auto 20px;
}
在某个时候,我的应用程序想要更改边框颜色。这就是我所拥有的:

var borderStyle;
if (gradient) {
  borderStyle = {
    'borderImage': '-webkit-linear-gradient(left, #0083c5 0%, #0083c5 33%, #ec4a26 66%, #ec4a26 100%)',
  };
}
稍后,输入组件:

<input type="text" style={borderStyle} onChange={this.handleChange} />
应用边框时,还需要添加属性。这样做可以根据需要提供准确的输出

我已经在下面的代码片段中通过CSS本身添加了它(没有JS),但是您应该能够调整它:)

输入[类型=文本]{
文本对齐:居中;
字体:继承;
边框:6px实心#999999;
填充物:5px 5px;
字体大小:15px;
盒影:0 1px 1px#DDD;
宽度:223px;
大纲:无;
显示:块;
颜色:#7B8585;
保证金:0自动20px;
边界图像:线性渐变(向右,#0083c5 0%,#0083c5 33%,#ec4a26 66%,#ec4a26 100%);
边界图像切片:1;
}
应用边框时,还需要添加属性。这样做可以根据需要提供准确的输出

我已经在下面的代码片段中通过CSS本身添加了它(没有JS),但是您应该能够调整它:)

输入[类型=文本]{
文本对齐:居中;
字体:继承;
边框:6px实心#999999;
填充物:5px 5px;
字体大小:15px;
盒影:0 1px 1px#DDD;
宽度:223px;
大纲:无;
显示:块;
颜色:#7B8585;
保证金:0自动20px;
边界图像:线性渐变(向右,#0083c5 0%,#0083c5 33%,#ec4a26 66%,#ec4a26 100%);
边界图像切片:1;
}


最终输出应该是什么样子?对于提供的当前渐变,左边缘(和左边框)将为蓝色,并将向右更改,以便右边缘为全红色。这就是你想要的吗?如果这是所需的输出,您只缺少一个额外的设置。您的方法是正确的,但渐变语法是错误的。@Henrikanderson:对于特定于webkit的线性渐变,语法是正确的。它将按原样工作。编辑主要帖子以澄清我想要的输出;从左到右的蓝色->红色渐变。另外,这是在Chrome上运行的,但是支持任何浏览器都是很好的。最终输出应该是什么样子?对于提供的当前渐变,左边缘(和左边框)将为蓝色,并将向右更改,以便右边缘为全红色。这就是你想要的吗?如果这是所需的输出,您只缺少一个额外的设置。您的方法是正确的,但渐变语法是错误的。@Henrikanderson:对于特定于webkit的线性渐变,语法是正确的。它将按原样工作。编辑主要帖子以澄清我想要的输出;从左到右的蓝色->红色渐变。此外,它在Chrome中运行,但支持任何浏览器都很好。如果我把它放在我的style.scss表中,它就可以正常工作了。如果我将其放入javascript样式覆盖中,它不会。真奇怪…@铁华夫人:是的,真奇怪。不幸的是,我不太了解ReactJS或它是如何工作的。你可以在某处展示一个演示吗?我可以帮你修复它。当我检查元素时,它甚至不包括我添加的边框图像切片属性。我正在使用react的内联样式语法,如这里指定的(),所以我不知道出了什么问题…@IronWaffleMan:我已经尝试用纯JS实现了同样的功能(已经将其添加到了答案中),而且似乎效果很好。也许这是ReactJS的问题。@Ironwaffelman:你能试着在
1
周围加上引号,看看它是否有效吗。这只是一个猜测。如果我把它放在我的style.scss表中,它就可以正常工作了。如果我将其放入javascript样式覆盖中,它不会。真奇怪…@铁华夫人:是的,真奇怪。不幸的是,我不太了解ReactJS或它是如何工作的。你可以在某处展示一个演示吗?我可以帮你修复它。当我检查元素时,它甚至不包括我添加的边框图像切片属性。我正在使用react的内联样式语法,如这里指定的(),所以我不知道出了什么问题…@IronWaffleMan:我已经尝试用纯JS实现了同样的功能(已经将其添加到了答案中),而且似乎效果很好。也许这是ReactJS的问题。@Ironwaffelman:你能试着在
1
周围加上引号,看看它是否有效吗。这只是一个猜测。