2011-01-17 7 views
8

span個の要素に設定しましたが、表示されません。heightwidthの設定が無視されていると思います。CSSパズル:空のスパンに背景画像を追加し、高さ/幅を設定するにはどうすればいいですか?

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デベロッパーツールでは、計算されたスタイルの下で、これらの2つのスパンに背景画像があるように見えます。このイメージのURLをコピーして貼り付けると、イメージが表示されます。しかし、実際にレンダリングするものは何もありません。

は[UPDATE - この部分は解決され、感謝] Chromeデベロッパーツールでは、一致したルールの下で、唯一の#starthere#donateスパンは、実際にbackground-image属性を拾っています。 #primarydocsスパンではありません。何故なの?

+0

スパン要素の高さは0px、幅は0pxです。どうして? #idでサイドバーのポスタークラスの高さを私が持っていないのはなぜですか? – AP257

+2

'span id ="#primarydocs "'はおそらく 'span id =" primarydocs "'であるべきです。 –

+0

はい。ありがとう、私はそれを見つけられなかったか分からない!今すぐ把握する幅があります。 – AP257

答えて

8

SPANはインライン要素です。それは本当にそのようなことを無視します。 display: inline;あるので、自動的にそれはCSSからwidthheight属性を取ることができないdisplay: block;

4

あなたのspanにはdisplay:inline-blockが必要ですが、通常のスパンは常にその「自然な」幅と高さを持ちます。

+0

インラインブロックがサポートされていないことに注意してください。私は少なくともIE6、おそらく7ではないと思います。正直言って、私はそれが "よくサポートされていない"ことを覚えている、私はそれの範囲を覚えていない。 –

+0

私の言い訳は、IE6はとてもaaaaaancientなので、私はちょうど、IE7を持っていたすべてのプラットフォームにもIE8を持っていないことです。ありがたいことに私は変わった場所で働き、それを取り除くかもしれない。 ;) –

0

解決済み - とはspanに設定できません。インライン要素であるためです。 divに切り替えて解決しました。

Phew。

推測よりも優れたツールを使ってCSSをデバッグする方法を知っている人は、Google検索と宣誓願望を私に教えてください!

+1

Chromeを使用すると、組み込みのデベロッパーツールですごく便利です! Firebugのアドオンを使用している場合は、Firefoxのjunkieです。どちらも素晴らしいデバッグツールです。 – Baer

2

:ような何かにあなたのCSSの表示モードを設定してみてください。

あなたは特性が、内側のコンテンツのないinline(すなわち:<span>コンテンツ</span>)を使用したい場合は、代わりに背景画像を持って、代わりにpaddingを使用しています。

すなわち:

span { padding: 10px; }

が、入力あなたは画像を表示する必要があるピクセルの数。

関連する問題