1
<div id="d1">
  <div id="d2">label</div>
  <div id="d3"><input name="t1" id="t1" type="text" /></div>
  <div id="d4">Message</div>
</div>
  • #d1固定#d2幅です。
  • #d4表示または非表示にすることができます (visibility: visible;またはvisibility: hidden;)。表示されている場合は、幅が固定されています。

幅を可変にしたいので、 が非表示のときの残りの右側のスペースを埋めることができますが、 が表示されているときは#d3との間のスペースを埋めます。#d1#d4#d4#d2#d4

CSSを使用してこれをどのように達成できますか?

4

2 に答える 2

2

次のCSSがあなたが目指しているものを達成すると信じています:

#d1 {
    display: table; 
}

#d2, 
#d3, 
#d4 {
    display: table-cell; 
}

#d2, 
#d4 {
    width: (the width you want); 
}
于 2012-10-02T23:46:01.347 に答える
1

私はあなたのHTML構造をわずかに変える何かを思いついた:

<div id="d1">
    <div id="d2">label</div>
    <div id="d4">Message</div>
    <div id="d3"><input name="t1" id="t1" type="text" /></div>
</div>

CSS:

input { width: 100%; }
#d2 { 
    float: left; 
    display: inline-block; }
#d4 { 
    float: right;
    display: inline-block; }
#d3 { 
    padding: 0 10px; 
    overflow: hidden; }
​

プレビュー: http: //jsfiddle.net/Wexcode/HLME4/

于 2012-10-03T04:02:23.530 に答える