2016-12-17 13 views
0

私は小さなページを作成していますが、divコンテンツラッパーがあり、その中に実際のコンテンツを含むdivがいくつかあります。何らかの理由で私のdivは私がテキストを保持しないように保持していません。最終的に私は写真とテキストの間に少しのスペースを追加しようとしています。テキストの最初の行がイメージからどのように離れているかに注目してください。残りの部分はそれに隣接しています。ここでは、コードは次のようになります。divを使用してコンテンツのコンテナを作成する

#content_wrap { 
 
    width: 700px; 
 
    margin: 0px; 
 
    padding: 50px 0px 0px; 
 
} 
 
#content_photo { 
 
    vertical-align: top; 
 
    margin: 0px; 
 
    padding: 0px; 
 
    display: inline; 
 
    position: relative; 
 
} 
 
#content_desc { 
 
    vertical-align: top; 
 
    margin: 0px; 
 
    padding: 0px 0px 0px 100px; 
 
    display: inline; 
 
    position: relative; 
 
} 
 
#aphoto { 
 
    width: 150px; 
 
    height: auto; 
 
}
<div id="content_wrap"> 
 
    <div id="content_photo"> 
 
    <img id="aphoto" src="//placehold.it/100?text=Image" align="left"> 
 
    </div> 
 
    <div id="content_desc">A whole bunch of random text. A whole bunch of random text. A whole bunch of random text. A whole bunch of random text. A whole bunch of random text.</div> 
 
</div>

+0

スペース権利がたくさんありますか?あなたの質問は完全に不明です。さて、私はそれを得る。 –

+0

はそれがはっきりしていますか? – Alex

+0

回答を追加しました。それは動作しますか? –

答えて

1

にフレックス適用できます。要素をブロックとしてキャストするには、コンテナの幅を手動で指定する必要があります。そうでない場合、ブロックは親の幅の100%を占めるため、要素を独自の行に配置します。

相続人例: https://jsfiddle.net/q4d2rjjf/1/

+0

'' inline-block'と '' inline'の違いを少し詳しく説明してください。幅を指定すると、テキストを含むdivの意味ですか? – Alex

+0

技術的にはオーバーライドされたテキスト(新しい行に折り返されたテキスト)が実際には新しい行にはないので、パディングは次の行にレンダリングされない複数行の要素(テキストの束)を持つため、一番上の行にのみ適用され、残りは無視されます(1行として認識されます)。また、自動的に幅をauto(親ブロックの幅)に割り当てられたブロックを定義すると、他の要素を横にレンダリングすることはできません。この代わりに、インラインでレンダリングできるテーブルレイアウトを使用するだけでなく、動的な幅も使用できます。 –

+0

が分かります。また、テキストが画像の上部に揃っていないことに気付きましたが、これを修正する方法はありますか? – Alex

1

右側にスペースを追加するには、私はfloatmarginを使用します。

#content_wrap { 
 
    width: 700px; 
 
    margin: 0px; 
 
    padding: 50px 0px 0px; 
 
} 
 
#content_photo { 
 
    vertical-align: top; 
 
    margin: 0px; 
 
    padding: 0px; 
 
    display: inline; 
 
    position: relative; 
 
    float: left; 
 
} 
 
#content_desc { 
 
    vertical-align: top; 
 
    margin: 0px 0px 0px 10px; 
 
    float: left; 
 
    display: block; 
 
    position: relative; 
 
    width: 535px; 
 
} 
 
#aphoto { 
 
    width: 150px; 
 
    height: auto; 
 
}
<div id="content_wrap"> 
 
    <div id="content_photo"> 
 
    <img id="aphoto" src="//placehold.it/100?text=Image" /> 
 
    </div> 
 
    <div id="content_desc">A whole bunch of random text. A whole bunch of random text. A whole bunch of random text. A whole bunch of random text. A whole bunch of random text.</div> 
 
</div>

上記のコードが与えます私のようなもの:

preview

0

あなたはまただけの問題では、あなたがdisplay: inline;代わりのdisplay: inline-block;を使用していることであるラッピングのdiv

#content_wrap { 
 
    width: 700px; 
 
    margin: 0px; 
 
    padding: 50px 0px 0px; 
 
    display: flex; 
 
} 
 
#content_photo { 
 
    vertical-align: top; 
 
    margin: 0px; 
 
    padding: 0px; 
 
    position: relative; 
 
} 
 
#content_desc { 
 
    vertical-align: top; 
 
    margin: 0px; 
 
    padding: 0px 0px 0px 100px; 
 
    position: relative; 
 
} 
 
#aphoto { 
 
    width: 150px; 
 
    height: auto; 
 
}
<div id="content_wrap"> 
 
    <div id="content_photo"> 
 
    <img id="aphoto" src="//placehold.it/100?text=Image" align="left"> 
 
    </div> 
 
    <div id="content_desc">A whole bunch of random text. A whole bunch of random text. A whole bunch of random text. A whole bunch of random text. A whole bunch of random text.</div> 
 
</div>

関連する問題