2016-09-26 5 views
2

ステータスバーの高さをコンテナの100%にしようとしています。私は固定高さを与えようとしましたが、高さが上がっても...新しい行のテキストは、横にではなくステータスバーの下に表示されます。ステータスバーの高さを100%にする

コード:

.list { 
 
    padding: 0; 
 
    border: 1px #666666 solid; 
 
    width: 250px; 
 
} 
 
.list > .status-bar { 
 
    background-color: red; 
 
    width: 20px; 
 
    padding: 20px; 
 
    display: inline-block; 
 
    height: 100%; 
 
}
<div class="list"> 
 
    <span class="status-bar">&nbsp;</span>Test 1 Test 1Test 1 Test 1 Test 1 Test 1 
 
</div>

JSFiddle Demo

+0

ステータスバーには常に左側が占め、右側にテキストが表示されますか? – LGSon

+0

はい正確に@LGSon – user4756836

答えて

2

、それはあなたに多くの柔軟性やレイアウトの制御を与えるだろう。上下中央にテキストで

.list { 
 
    padding: 0; 
 
    border: 1px #666666 solid; 
 
    width: 250px; 
 
    display: flex; 
 
} 
 
.list .status-bar { 
 
    background-color: red; 
 
    width: 20px; 
 
    padding: 20px; 
 
} 
 
.list .status-text { 
 
    flex: 1; 
 
}
<div class="list"> 
 
    <div class="status-bar"></div> 
 
    <div class="status-text">Test 1 Test 1Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 Test 1</div> 
 
</div> 
 

.list { 
 
    padding: 0; 
 
    border: 1px #666666 solid; 
 
    width: 250px; 
 
    display: flex; 
 
} 
 
.list .status-bar { 
 
    background-color: red; 
 
    width: 20px; 
 
    padding: 40px 20px; 
 
} 
 
.list .status-text { 
 
    flex: 1; 
 
    display: flex; 
 
    align-items: center; 
 
}
<div class="list"> 
 
    <div class="status-bar"></div> 
 
    <div class="status-text">Test 1 Test 1</div> 
 
</div>

1

あなたはこれを試すことができます。

  1. フロートstatus-barへ左にテキストを囲むことができます。

  2. は、次にこれを使用したフロートをクリアすることでフロートのためのclearfixを適用します。

    .list:after{ 
        clear: both; 
        content: ''; 
        display: block; 
    } 
    

私はこれについてあなたの意見を知ってみましょう。ありがとう!

.list { 
 
    padding:0; 
 
    border: 1px #666666 solid; 
 
    width: 250px; 
 
} 
 

 
.list > .status-bar { 
 
    background-color: red; 
 
    width: 20px; 
 
    padding:20px; 
 
    display: inline-block; 
 
    height:100%; 
 
    float: left; 
 
} 
 

 
.list:after{ 
 
    clear: both; 
 
    content: ''; 
 
    display: block; 
 
}
<div class="list"> 
 
    <span class="status-bar">&nbsp;</span>Test 1 Test 1Test 1 Test 1 Test 1 Test 1 
 
    
 
</div>

+0

1つの質問...テキストをあなたの変更と垂直方向にも合わせるにはどうしたらいいですか? – user4756836

+0

@ user4756836ちょうどここであなたのコメントを見た...あなたはすでにLGSonの答えで解決策を持っているようだ:)インライン要素を垂直に整列するこの答えでは、いくつかの 'インラインブロック'の戦術と幅を指定する必要があります... – kukkuz

1

テキストがコンテナの幅よりも長くなっているので、これが起こっています。ステータスバーの下に折り返しています。これを修正するには、.listクラスにCSS white-space: nowrap;を追加します。

.list { 
 
    padding:0; 
 
    border: 1px #666666 solid; 
 
    width: 250px; 
 
    white-space: nowrap; /* added */ 
 
} 
 

 
.list > .status-bar { 
 
    background-color: red; 
 
    width: 20px; 
 
    padding:20px; 
 
    display: inline-block; 
 
    height:100%; 
 
}
<div class="list"> 
 
    <span class="status-bar">&nbsp;</span>Test 1 Test 1Test 1 Test 1 Test 1 Test 1 
 
</div>

テキストは(あなたには、いくつかの方法で対処することをお勧めします - 多分overflow:hidden)右に溢れますが、それはあなたの質問を解決しません。私はflexboxに行くことをお勧めします