css颜色渐变对虚线边框的影响?

css颜色渐变对虚线边框颜色的影响?

当同时设置竖直方向颜色渐变和虚线边框时,上下虚线边框底色反着,这是为什么?

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .box{
            width: 400px;
            height: 200px;
            background: linear-gradient(red 50%,blue);
            border: 10px dashed #000000;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>

image.png

阅读 3.8k
3 个回答

设置background-repeat: no-repeat看看效果就知道了。
大概原因是这样:
因为背景图没有设置background-repeat属性,所以在边框的地方会重复渲染背景图。
而上边框刚好渲染的是背景图的下边缘,下边框正好相反。同理左右边框也是渲染了背景图的。

原因确实是楼上说的.

那么照此推测.如果将背景放大20px,然后再向上,向右各偏移10px,就应该正常了.

    background-size: calc(100% + 20px) calc(100% + 20px);
    background-position: -10px -10px;

实际验证确实如此.

新手上路,请多包涵

border:2px dashed #fff;
background-image: linear-gradient(to right, #C5D0F0, #637A9B);
如果这样设置一个标签,左侧会有几个点颜色很重,no-repeat解决了,但是上下虚线框没了。如果这样设置
background-size: calc(100% + 4px) calc(100% + 4px);
background-position:-2px -2px;
就完美了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题