在 img 标签上叠加图形边框



我希望能够在网站上的所有图像上叠加图形边框,而无需在 photoshop 中手动应用它。我使用的边框是一个粗略的"苦恼"图形,因此使用 css 边框无法实现。

我最初的想法是使用 javascript 将包含边框图形的周围div(或divs)动态添加到所有 img 标签中,尽管我不太确定如何做到这一点。

我建议使用以下JavaScript:

var D = document,
    images = D.getElements​ByTagName('img');
function imageWrap(el, wrapper) {
    if (!el) {
        return false;
    } else {
        var wrapper = wrapper || 'div',
            d = D.createElement(wrapper);
        el.parentNode.insertBefore(d, el.nextSibling);
        d.appendChild(el);
    }
}
for (var i = 0, len = images.length; i < len; i++) {
    imageWrap(images[i]);
}

JS小提琴演示。

引用:

  • appendChild() .
  • createElement() .
  • getElementsByTagName() .
  • insertBefore() .
  • parentNode .

还有一种使用 CSS3 的替代方案。

示例代码段:

img {
    border-width: 20px;
    -moz-border-image:url("border.png") 20 repeat stretch;
    -webkit-border-image:url("border.png") 20 repeat stretch;
    border-image:url("border.png") 20 repeat stretch;
}

js小提琴

引用:

  • W3C 候选推荐
  • W3C 工作草案
  • 在 Mozilla 开发者网络上
  • 关于 CSS 技巧

免责声明:CSS3 目前在浏览器中并不完全受支持,此解决方案假设我们的目标是在 Web 开发中向前发展,以针对现代浏览器。

您可以将边框作为背景图像,然后将图像放入其中并添加一些边距

检查我的 JSFIDDLE

你应该能够用 JQuery 做到这一点,我测试了这个脚本,它对我有用。我只是给图像一个背景图像并添加了填充。

您可以在标头中调用 JQuery:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

然后你可以试试这个脚本:

<script>
    $(document).ready(function(){
        $('img').css({
            'background' : 'url(images/002.jpg) repeat', 
            'padding' : '10px'
        });
    }); 
</script>

你可以用你的类替换"img",例如".border",你也可以调整填充,你只需用你的替换背景图像的url。希望这有帮助/有效!

最新更新