2 つの div が並んでいます。どちらもjquery経由で閉じることができます。両方が表示されている場合、幅は固定されていますが、一方が閉じている場合は、残りの div を拡大して、閉じた div が占めていた幅を消費します。CSS(閉じるボタンを除く)だけを使用してこれを行う方法はありますか、それともjavascriptに頼る必要がありますか?
質問する
129 次
4 に答える
2
CSS でこれを解決する唯一の方法は、含まれている要素にクラスを追加することです。
<div id="container" class="left|right|both">
<div class="left"></div>
<div class="right"></div>
</div>
親クラスが何であるかに応じてコンテンツをスタイルします。left
がクラスの場合、最初div
の幅に制限のない幅を指定し、2 番目の を非表示にしdiv
ます。とright
2 番目のdiv
. 親がboth
の場合、両方の div に 50% を与えます。
JavaScript が行う必要があるのは、現在コンテナーに適用されているクラスを処理することだけです。
于 2012-05-07T18:25:53.043 に答える
1
これには、少なくとも 1 行の JavaScript を記述する必要があります。そうすれば、css を使用して効果を得ることができます。
jquery を使用して、閉じるをクリックするたびにクラスを div の親に切り替えます。閉じるボタンをクリックするためのjqueryコードを見つけて追加します
$("#parent").toggle("classname");
のような CSS を使用します。
#parent div { width: /*fixed*/100px; }
#parent.classname div { width: 100%; }
于 2012-05-07T18:32:50.833 に答える
0
このようなものは機能しますか?
HTML:
<div id="parent">
<div class="right">div2</div>
<div class="left">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam semper porta sem, at ultrices ante interdum at. Donec condimentum euismod consequat. Ut viverra lorem pretium nisi malesuada a vehicula urna aliquet. Proin at ante nec neque commodo bibendum. Cras bibendum egestas lacus, nec ullamcorper augue varius eget.</div>
</div>
<br />
<button id="remove">Remove Div 2</button>
CSS:
#parent {
overflow: hidden;
border: 1px solid red
}
.right {
float: right;
width: 100px;
height: 100px;
background:green;
}
.left {
overflow: hidden;
height: 100px;
background:red;
}
JS:
$('#remove').on('click', function() {
var div2 = $('.right')
//div2.hide('slow'); // you could hide it as well
div2.remove();
});
例:
于 2012-06-17T05:27:41.320 に答える
-1
編集
を使用してテーブルを模倣できます
display:table
と
display:table-cell
参照: http://jsfiddle.net/DUx3W/ (帽子のヒント: @Jimmy Breck-McKye)。
私の元のテーブル フィドル: http://jsfiddle.net/6KkRL/
于 2012-05-07T18:58:20.413 に答える