【发布时间】:2015-04-25 07:32:45
【问题描述】:
我用渐变背景和圆角编码了这个div:
#pill {
font-size: 12px;
height: 40px;
width: 100px;
margin: 0 20px 0 20px;
background: transparent;
background-image: linear-gradient(#080, #cf0 45%, #cf0 55%, #080);
z-index: 1;
text-align: center;
}
#pill::before {
display: block;
content: '';
width: 40px;
height: 40px;
position: absolute;
margin-left: -20px;
z-index: -1;
border-radius: 40px;
background-image: radial-gradient(21px #cf0 5%, #080);
}
#pill::after {
display: inline-block;
content: '';
width: 40px;
height: 40px;
position: relative;
top: -14.5px;
right: -50px;
z-index: -1;
border-radius: 40px;
background-image: radial-gradient(21px #cf0 5%, #080);
}
Firefox 的结果,在顶部缩放中,是这个:
我对必须使用硬连线值的方式不满意,特别是对于 ::before 元素。
有没有办法在没有 jQuery 的情况下让一切变得动态?我测试了 CSS3 border-image-slice,看起来很有希望,但它似乎拒绝将 radial-gradient 作为边框图像。
【问题讨论】:
-
为什么不将渐变和
border-radius应用到div本身而不是使用伪元素?我错过了什么吗? -
效果不一样:
linear-gradient背景被半径切割,而radial-gradient形成扁平椭圆。
标签: css radial-gradients