我希望能够在网站上的所有图像上叠加图形边框,而无需在 photoshop 中手动应用它。我使用的边框是一个粗略的"苦恼"图形,因此使用 css 边框无法实现。
我最初的想法是使用 javascript 将包含边框图形的周围div(或divs)动态添加到所有 img 标签中,尽管我不太确定如何做到这一点。
我建议使用以下JavaScript:
var D = document,
images = D.getElementsByTagName('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。希望这有帮助/有效!