2016-05-03 4 views
0

あるコンテナdivを作成しようとしていて、その中に段落があり、長さが変わっています。絶対配置要素を使用してdivとテキストの長さを拡張します

私の要素がpositioned: absoluteに設定されているため、すべてのテキストを許可するためにdivを正しい高さに拡張したいと考えていますが、問題が発生していると思います。

私にフィドルを参照してください:最初のボックスでhttp://jsfiddle.net/p7pue2kx/1/

を、テキストがきれいに収まります。しかし、テキストがはるかに長い場合、オーバーフローし、divコンテナはそれに応じて展開されません。最小の高さがあることを確認したいが、最大値はテキストサイズによって決まる。

私のテキストがコンテナを拡張するのを許すかもしれないこの位置付けを行うより良い方法がありますか?

ありがとうございます。それを使用する必要がないところ

+0

他の方法は、それが必要ではない場合ポジショニングを使用していない...私が意味する、それを通常の方法を行うことです – markoffden

+0

1つのCSSルールを強調表示して、あなたの質問にコードなしでjsFiddleへのリンクを投稿するときに見た警告を回避しようとするのではなく、[mcve ]あなたの質問に? – j08691

+0

これまで読んだことがあるように、本当に必要な場合を除いて、絶対配置は使用しないでください。では、どうして絶対位置付けを使用しましたか? – Pjetr

答えて

5

は、絶対位置を使用しないでください:)

* { 
 
    -webkit-box-sizing: border-box; 
 
    -moz-box-sizing: border-box; 
 
    box-sizing: border-box; 
 
} 
 
.masterContainer { 
 
    height: 800px; 
 
    background: blue; 
 
    width: 300px; 
 
} 
 
.container { 
 
    position: relative; 
 
    width: 100%; 
 
    background: yellow; 
 
    min-height: 60px; 
 
    margin: 10px 0px; 
 
    padding: 10px; 
 
} 
 
.summary { 
 
    clear: both; 
 
    width: 100%; 
 
    overflow: hidden; 
 
    background: lightblue; 
 
} 
 
.id { 
 
    float: left; 
 
    background: green; 
 
} 
 
.xyz { 
 
    float: right; 
 
    background: red; 
 
}
<div class="masterContainer"> 
 
    <div class="container"> 
 
    <div class="id"> 
 
     KEY/ID 
 
    </div> 
 
    <div class="xyz">ABCD EFGH</div> 
 
    <div class="summary">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div> 
 
    </div> 
 

 
    <div class="container"> 
 
    <div class="id"> 
 
     KEY/ID 
 
    </div> 
 
    <div class="xyz">ABCD EFGH</div> 
 
    <div class="summary">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> 
 
    </div> 
 

 
    <div class="container"> 
 
    <div class="id"> 
 
     KEY/ID 
 
    </div> 
 
    <div class="xyz">ABCD EFGH</div> 
 
    <div class="summary">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> 
 
    </div> 
 

 
</div>

+0

非常に高く評価されています。私は今どこが間違っているのか見ています! –

0

可能な場合は絶対位置を常にを避けます。あなたが望むものを達成するための最小限のCSSを備えたソリューションがここにあります。

CSS:

.masterContainer { 
    height: 800px; 
    background: blue; 
    width: 300px; 
} 
.container { 
    width: 300px; 
    background: yellow; 
    margin: 10px 0px; 
} 
.summary { 
    background: lightblue; 
    display: block; 
} 
.id { 
    background: green; 
} 
.xyz { 
    background: red; 
    float: right; 
} 

HTML:

<div class="container"> 
    <span class="id"> 
    KEY/ID 
    </span> 
    <span class="xyz">ABCD EFGH</span> 
    <span class="summary"> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. 
    </span> 
</div> 

<div class="container"> 
    <span class="id"> 
    KEY/ID 
    </span> 
    <span class="xyz">ABCD EFGH</span> 
    <span class="summary"> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
    </span> 
</div> 

<div class="container"> 
    <span class="id"> 
    KEY/ID 
    </span> 
    <span class="xyz">ABCD EFGH</span> 
    <span class="summary"> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
    </span> 
</div> 

</div> 

Fiddle