用图案或图像填充边框?

时间:2012-12-19 20:57:41

标签: html css border image

我有按类别分隔的商家列表。在每个类别名称旁边,从大约20px开始,我希望有一个3px高的边框延伸到div的末尾。我希望这个边界充满图案或图像。最初,我尝试使用图像,但由于每个类别名称的长度不同,这被证明是不切实际的。

我确信有一个相对简单的方法可以解决这个问题,我只是不确定如何实现它。想法?

感谢。

ideal

更新图片 enter image description here

2 个答案:

答案 0 :(得分:2)

这里我使用<div>来显示<h1> 类别背后的边框,其中<body><h1>都有匹配的背景模式(也排成一列)

example jsfiddle

CSS

body {
    background:url('http://subtlepatterns.subtlepatterns.netdna-cdn.com/patterns/gray_jean.png');
    font-family:helvetica,arial,sans-serif;
}

#container {
    margin:0 20px;
    position:relative;
}

h1 {
    position:relative;
    float:left;
    padding-top:6px;
    padding-right:20px;
    font-size:2em;
    background:url('http://subtlepatterns.subtlepatterns.netdna-cdn.com/patterns/gray_jean.png')
}

.border {
    background:url('http://s3.amazonaws.com/creattica/uploaded-images/0016/6142/patterns_009_blue-hexagon-pattern_crop-iphone_web_for-creattica.jpg') repeat-x -10px 0;
    position:absolute;
    top:20px;
    width:100%;
    height:3px;
}

.listings {
    clear:both;
}
​

HTML

<div id="container">
    <div class="border"></div>
    <h1>Catering</h1>
    <div class="listings">
        <ul>
            <li>
                Catering Company 1
            </li>
            <li>
                ...
            </li>
        </ul>
    </div>
</div>​

答案 1 :(得分:0)

如果允许其他标记(并且您的父元素具有纯色背景),您可以这样做:

h1 {
    background: red; /* replace with background-image */
}

h1 span {
    background: white; /* replace with color of parent element's bg */
}

<h1><span>Test Headline</span></h1>

http://jsfiddle.net/358Gg/