【问题标题】:How to add a border-bottom-image with css如何使用 css 添加边框底部图像
【发布时间】:2020-01-05 21:42:12
【问题描述】:

我创建了以下图像,以在我的网站中的所有 h1 标题标签下呈现。麻烦的是,我在网上找到的每个教程都将边框图像属性作为一个环绕边框。

我想要实现的只是在标题下方放置一张小图片,一次。没有重复。居中。根据这个http://www.css3.info/preview/border-image/ 有一个名为border-bottom-image 的属性。但我似乎无法让它正确显示。

Google chrome 开发者工具告诉我这是一个未知的属性名称。如果我用下面的 css3 无法实现这一点,我该如何实现呢?

.entry-title{
border-bottom-image: url(images/title-borderbottom.jpg);
}

【问题讨论】:

  • 您可以尝试将其设置为边框图像,就像您引用的教程显示的那样,然后让底部边框厚度大于零。
  • 试试-webkit-border-bottom-image或使用伪元素:after
  • 我不认为 border-image 是你想要的,主要是因为你想要的 center no-repeat 指令不受支持(你想要的方式;stretch 最接近,但它不是i>真的一样)。这与我得到的一样接近:jsfiddle.net/mh66rvbo 您可以使用background-image 代替,如果这不会破坏元素上的其他背景样式,则带有底部填充。请参阅 CSS Tricks 中的这个非常解释性的条目:css-tricks.com/understanding-border-image
  • 这是另一个 StackOverflow 线程问这个问题:stackoverflow.com/questions/10164393/…
  • 你试过border-bottom-style: solid;吗?

标签: html image css


【解决方案1】:

这里有两个选项可让您做您想做的事,而无需求助于 border-image,这并不是真正为您想做的事情而构建的。

背景图片 + :after

这使用一个伪元素 (:after) 来“插入”一个带有您给定图像的块作为background-image。我认为这可能比下一个选项更好,因为它对元素样式的破坏性最小。

.entry-title:after {
    content: "";
    display: block;
    height: 70px;
    background-image: url(http://placehold.it/350x65);
    background-repeat: no-repeat;
    background-position: center bottom;
}

http://jsfiddle.net/mh66rvbo/2/

背景图片 + 内边距

这使用padding-bottom 为图像腾出空间,然后将图像沿元素底部粘贴,定位在中心。

.entry-title {
    padding-bottom: 70px;
    background-image: url(http://placehold.it/350x65);
    background-repeat: no-repeat;
    background-position: center bottom;
}

http://jsfiddle.net/mh66rvbo/1/

【讨论】:

  • 非常感谢杰瑞德!!这解决了我的问题。我一直在玩边界图像的东西,让它“几乎”工作,但从来没有真正看起来正确。这解决了它。你是救生员:)
【解决方案2】:

为我工作....

.entry-title{
    border-bottom: 20px solid #000;
    border-image:url('bottom.jpeg');
    border-image-repeat: round;
    border-image-slice: 300;
    text-align: center;
    margin: 0px auto;
    width:70%;
}

【讨论】:

  • 感谢您的回答。然而,通过这样一个老问题,如果您提供一些关于您的解决方案与旧解决方案有何不同以及为什么它更可取的解释,这将非常有帮助。
【解决方案3】:

来自您提供的链接 (http://www.css3.info/preview/border-image/)

border-image 目前适用于 Safari 和 Firefox 3.1 (Alpha)。

根据我的理解,“border-bottom-image”在最新版本的 Google Chrome(本机)中仍然不起作用。但是“边界图像”可以。您可以使用(右上左下)协议为每个单独部分定义宽度:

.entry-title{
border-image: url(images/title-borderbottom.jpg);
border-image-width: 0 0 10px 0;
border-image-repeat: stretch;
}

详情:http://www.w3schools.com/cssref/css3_pr_border-image.asp

【讨论】:

  • border-image-repeat: none 不是a valid value
  • 感谢您指出@JaredFarrish - 在这种情况下“拉伸”应该可以工作。
  • 当然,不利的一面是,如果图像未设置为拉伸,它会使图像变形,这可能是可取的,也可能不是可取的。
  • 是的。然后,就像您指出的那样,它不应该被渲染为“边框”,因为边框固有地围绕对象延伸。
  • 是的,我玩过拉伸,它总是看起来很时髦。绝不是完美的像素。
猜你喜欢
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
  • 2022-12-01
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多