CSS谜题:如何在空跨度上添加背景图像并设置高度/宽度?

时间:2011-01-17 18:05:35

标签: html css

我已将background-image设置为几个span元素,但它们没有显示,我认为因为我的heightwidth设置被忽略了。

HTML来源:

<div class="textwidget">
<a href="#" title="Start here"><span id="starthere" class="sidebar-poster"></span></a> 
<a href="#" title="Primary documents"><span id="#primarydocs" class="sidebar-poster"></span></a> 
<a href="#" title="Donate"><span id="donate" class="sidebar-poster"></span></a>
</div> 

CSS:

span.sidebar-poster {
    margin-bottom: 10px;
    background-repeat: no-repeat;
    width: 160px;
}
span#starthere { 
    background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou180.jpg);
    height: 285px;
} 
span#starthere:hover { 
    background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou_hover.jpg);
} 
span#primarydocs { 
    background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou180.jpg);
    height: 285px;
} 
span#primarydocs:hover { 
    background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou_hover.jpg);
} 
span#donate { 
    background-image: url(/betatesting/wp-content/themes/dynamik/css/images/donatebutton.jpg);
    height: 285px;
} 
span#donate:hover { 
    background-image: url(/betatesting/wp-content/themes/dynamik/css/images/donateposter_hover.jpg);
} 

所有背景图像都不可见。

在Chrome开发者工具中,在“计算样式”下,这两个跨度似乎确实有背景图像。如果我复制并粘贴此图像的URL,我会看到图像。但实际上没有任何东西呈现。

[更新 - 此部分已解决,谢谢] 在Chrome开发者工具中,在匹配规则下,只有#starthere#donate跨度实际上正在接收{{ 1}}属性。 background-image范围不是。为什么不呢?

4 个答案:

答案 0 :(得分:8)

SPAN是一个内联元素。这确实会忽略这些事情。尝试将CS​​S中的显示模式设置为:display: block;

答案 1 :(得分:4)

我认为您的span需要display:inline-block,普通范围始终具有'自然'宽度和高度。

答案 2 :(得分:2)

由于a display: inline;是自动的,因此无法从CSS获取widthheight属性。

如果您想使用inline特征但没有内在内容(例如:<span>内容</span>)而是拥有背景图片,请改用padding。< / p>

即:

span { padding: 10px; }

但输入显示图像所需的像素数。

答案 3 :(得分:0)

解决了问题 - 您无法在height上设置widthspan,因为它是内联元素。切换到div解决了它。

呼。

如果有人知道如何使用比猜测更好的工具来调试CSS,希望,谷歌搜索和发誓,请告诉我!