首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有继承值的边框颜色失败。

带有继承值的边框颜色失败。
EN

Stack Overflow用户
提问于 2015-01-17 03:45:34
回答 2查看 1.3K关注 0票数 3

我最近发现一个边框颜色的问题。

代码语言:javascript
复制
border-color: inherit //work
border-color: inherit transparent //fail
border-color: transparent inherit //work
border-color: inherit transparent transparent //fail
border-color: inherit transparent transparent transparent //fail

为什么这些“第一值继承”边框颜色失败了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-17 12:13:52

它失败了,因为根据border-color的定义,关键字inherit仅允许作为属性本身的值,而不是作为一个组件与其他值一起使用。这就是我们描述的

代码语言:javascript
复制
    [ <color> | transparent ]{1,4} | inherit

意思:您可以有一个到四个组件,每个组件要么是颜色标识,要么是关键字transparen,或者是inherit本身。

涉及到一个Opera,但是bug是值transparent inherit (和transparent transparent inherit)“工作”,即按照您的意思执行,而不是按照规范执行它必须做的事情。根据CSS错误处理规则,当值在语法上不正确时,必须忽略声明。(Chrome与Opera共享这个bug,但Firefox和IE做的是对的。)

例如,要实现border-color: transparent inherit的意思(即设置顶部和底部边框颜色透明,左和右边框颜色继承),您需要以不同的方式在单独的声明中设置单个边框组件。

代码语言:javascript
复制
div { border-color: red }
span {
  border-style: solid;
  border-color: transparent;
  border-left-color: inherit;
  border-right-color: inherit;
}
代码语言:javascript
复制
<div>
  <span>Hello world</span>
</div>

票数 7
EN

Stack Overflow用户

发布于 2015-01-17 04:02:07

经过一些谷歌,它看起来像CSS继承关键字是全部或什么都没有,所以它不能用于速记。您得到的结果反映了对“无效”规则的不一致解释。

另见:this discussion

但是,只要您的规则声明都是有效的,您就应该能够覆盖您想要继承的特定属性。代替:

代码语言:javascript
复制
border-color: inherit transparent;

你应该使用:

代码语言:javascript
复制
border-color-left: transparent;
border-color-right: transparent;

不幸的是,我认为你不能再缩短它了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27995940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档