2012-10-03 10 views
58

displayプロパティを使用して別の要素の下に表示するようにspan要素を設定したいとします。私はインラインブロックを適用しようとしましたが、成功しなかったので、何とかその要素に100%の幅を与えないとブロックを使うことができたと思いました(要素が伸びないようにしたい)。これを行うことができますか、そうでない場合は、この種の問題を解決するための良いプラクシスですか?100%幅のない表示ブロック

例:

<li> 
<span class="date">11/15/2012</span> 
<span class="title">Lorem ipsum dolor</span> 
<a class="read-more">Read more</a> 
</li> 


更新:解決:私は、各記事の最後にあるリンク(<a>代わりの<span>注)「続きを読む」を設定したいニュース一覧。 CSSでは、

li { 
    clear: both; 
} 
li a { 
    display: block; 
    float: left; 
    clear: both; 
} 
+1

をサポートする完全な内訳check hereあなたは私たちを表示するために任意のマークアップ(HTMLやCSS)をお持ちですか?実際に作業することなく問題に取り組むのは難しいです。また、[jsfiddle](http://jsfiddle.net)のデモも良いでしょう。 –

+0

考え方サンプルコードは必要ありませんでした。最新の記事を参照してください。 –

+0

以下に述べるように、1行のコードを使用するだけで、すべてのマークアップを真剣に減らすことができます。 – ha404

答えて

50

私が正しくあなたの質問を理解していた場合は、以下のCSSは、スパン下記のおAを浮遊し、100%の幅を持っていることから、それを維持します:

a { 
    display: block; 
    float: left; 
    clear: left; 
} 
+0

私はこれを適用しようとしましたが、スパン要素(この例ではタイトルと日付)はfloatを持たないため、リンクは最後のスパンの前に配置されます。 1つの解決策は、liフロート内のすべての子要素を作成することだと思います。 –

+0

これは、liの親に対してclearfixを適用すると機能します。この解決策、PJありがとうございます。 –

+0

問題ないです、喜んで助けてください! –

6

を適用し、私は独自のdiv要素に各行を保つので...

<div class="row"> 
    <div class="cell">Content</div> 
</div> 
<div class="row"> 
    <div class="cell">Content</div> 
</div> 

そして、CSSのためになります。

.cell{display:inline-block} 

それはあなたを与えるのは難しいです元のコードを見ることなく解決する

+1

ありがとうございますが、div要素を混在させたくありません。 –

+1

良い解決策!いくつかのupvotesを持っている必要があります... – Levit

1

は、あなただけのdisplay: blockとしてスパンを設定できません含まれているliの要素にwidthを設定しますか?

+0

タイトルと日付の長さのため、liの幅はautoである必要があります。 –

4

もう一度答えが少し遅すぎるかもしれません(ただし、このページが回答のために見つかりました)。

代わり display:block;使用の

display:inline-block;

1

これを試してみてください:

li a { 
    width: 0px; 
    white-space:nowrap; 
} 
100

使用display: table

この回答は30文字以上である必要があります。私は20歳になったので、ここでもう少しです。

使用できる
+0

はうまく動作します。 –

+7

Geniusソリューション'margin:0 auto;'が必要な場合は 'auto; – Mafia

+1

私はあなたが素晴らしいと思います。 – billynoah

5

width: max-content;

注:サポートが限られている、ブラウザ

関連する問題