SPANの高さプロパティを設定する方法


88

次のコードを事前定義された高さでストレッチ可能にする必要があります

<style>
.title{
   background: url(bg.gif) no-repeat bottom right;
   height: 25px;
}
</style>

<span class="title">This is title</span>

ただし、spanはインライン要素であるため、「height」プロパティは機能しません。

代わりにdivを使用してみましたが、上部要素の幅まで拡張されます。そして、幅は柔軟でなければなりません。

誰かがこれに対する良い解決策を提案できますか?

前もって感謝します。


1
タイトルには見出しタグ(h1、h2、h3、...)を使用する必要があります。より意味的に正しいです。
Pickels 2010

1
はい、あなたは正しいピケルです。皆さんの助けに感謝します。これが私の最後のCSSです。それは私にとって素晴らしい働きをします:<style> h4 {display:inline-block; ズーム:1; *表示:インライン; マージン:0px; 高さ:25px; } </ style>
ケルビン

回答:


142

それdisplay:inline-blockをCSSで与えてください-それはあなたが望むことをするようにするべきです。
互換性の観点から:癖モードが示唆するように、IE6 / 7これで動作します:

IE 6/7は、自然に表示される要素(インライン)でのみ値を受け入れます。


価値があるので、IE7はをサポートしていませんinline-block
スコットクランフィル2010

Np。@スコット:W3ではわかりません-彼らの言うことは次のとおりです:Note: No versions of Internet Explorer (including IE8) support the property values "inline-table", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-row", or "table-row-group".
casraf 2010

2
@ henasraf- @ Scottは正解ですが、クイックのためにも使用できません:quirksmode.org/css/display.html
NickCraver

2
引用:IE 6/7 accepts the value only on elements with a natural display: inline.
casraf 2010

1
ああ、その時に適用すればうまくいくと思いspanます。情報をありがとう、henasraf。
スコットクランフィル2010


13

これは、display:inline-blockをすべてのブラウザで機能させるためです。

奇妙なことに、IE(6/7)では、「zoom:1」でhasLayoutをトリガーしてから、表示をインラインに設定すると、インラインブロックとして動作します。

.inline-block {
    display: inline-block;
    zoom: 1;
    *display: inline;
}

5

それをブロック要素にしたくないと仮定すると、次のことを試してみてください。

.title  {
    display: inline-block; /* which allows you to set the height/width; but this isn't cross-browser, particularly as regards IE < 7 */
    line-height: 2em; /* or */
    padding-top: 1em;
    padding-bottom: 1em;
}

ただし、最も簡単な解決策は.title、をブロックレベルの要素として扱い、を<h1>介して適切な見出しタグを使用すること<h6>です。


0

スパン { display: table-cell; height: (your-height + px); vertical-align: middle; }

スパンがテーブルセル(またはその他の要素)のように機能するためには、高さを指定する必要があります。私はスパンに高さを与えました、そしてそれらはうまく働きます-しかしあなたはそれらがあなたが望むことをするようにするために高さを追加しなければなりません。


0

もちろん、別のオプションはJavascript(ここではJquery)を使用することです。

$('.box1,.box2').each(function(){
    $(this).height($(this).parent().height());
})

-4

この場合、なぜスパンが必要なのですか?高さをスタイリングしたい場合は、divを使用できますか?でdivを試すこともできdisplay: inlineますが、実際にはスパンと同じことをしているので、同じ問題が発生する可能性があります。


3
または、私のとりとめのない話を完全に無視して、henasrafの答えを使用してください:)
Seth Petry-Johnson

反対票のコメントは、合法的に貢献したい人を落胆させるだけです。やめて!代わりに、建設的なフィードバックを提供するか、おそらくもっと重要なこととして、この問題に関するあなた自身の意見を提供してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.