用CSS创建带背景图片的完美虚线

6
我希望在文本下方添加一条虚线:

enter image description here

网页设计师设计了一个自定义的点线样式,因此我无法使用“:”。
h2 {
    border-bottom: 4px dashed #fff;
    display:table;
} 

因为它不符合规范。 我所做的:我用一个点制作了一张图像,并用CSS定位它:
h2 {
    padding-bottom: 20px;
    display:table;
    background-image: url('../images/tiret.png');
    background-repeat: repeat-x;
    background-position: center bottom; 
}

它的功能非常好,但取决于文本的宽度,最后一个点可能会被裁剪,就像您在这张图片上看到的那样:

enter image description here

你有避免这个问题的建议吗?


3
告诉设计师,CSS 不是 Photoshop。 - connexo
2个回答

6
你可以尝试使用 background-repeat:space

该图像将尽可能地重复,而不会被裁剪。第一个和最后一个图像固定在元素的两侧,并且空白均匀分布在图像之间。除非只有一张图像可以显示而不被裁剪,否则background-position属性将被忽略。唯一使用space时会发生裁剪的情况是当没有足够的空间来显示一张图像时。


我正在寻找background-repeat: space的定义。我注意到它在Firefox上可以工作,但在我的Safari上却不能。需要检查一下出了什么问题。 - Sébastien Gicquel

1
您可以使用border-image属性:

h1 {
  display: inline-block;
 border-style: solid;
border-width: 0px 0px 12px;
-moz-border-image: url(http://yurigor.com/wp-content/images/goldstar.png) 0 0 286 round;
-webkit-border-image: url(http://yurigor.com/wp-content/images/goldstar.png) 0 0 286 round;
-o-border-image: url(http://yurigor.com/wp-content/images/goldstar.png) 0 0 286 round;
border-image: url(http://yurigor.com/wp-content/images/goldstar.png) 0 0 286 round;
}
<h1>Hello world</h1>

在这里可以找到Codepen 链接

另外还有一个有用的 在线生成器


我喜欢这个解决方案。运行得非常好。 - Sébastien Gicquel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接