これはおそらくどこかで答えられましたが、私はそれを見つけることができません:s
私の質問は、パーセンテージに基づく div の動的なサイズ変更についてです。
私が作成した例と考えられる解決策については、以下のコード例をご覧ください。サイズ変更を行うためのより良い方法があるかどうか尋ねます。
より詳細な説明:
人々が自分のページに挿入できるプラグインを書いているとしましょう。(ログインフォームを想像してください) . 先に進み、プラグインの div を設計します。メディア クエリを使用して、さまざまなデバイスに適した外観を実現しています。「body」要素の内部で div を直接処理します。デザインにはパーセンテージを使用します (パーセンテージが好きです)。div を80% widthに設定するとします。
今、私はこのプラグインをユーザーに提供します。ユーザーは先に進み、プラグインの div を幅100pxの別の div 内に配置します。今、すべてがひどく見えます。(100px の 80% は多くありません [80px]) . そしてもちろん、ユーザーが持っている小さな幅の div の中に私のプラグインを入れてもらいたいのです。
この問題に対するこれまでの解決策は、特定の幅のホルダー div を作成することでした。たとえば、ハードコード 300px です。(例 - jQuery UI の Datepicker div; Meteor のログイン ウィジェット div) . そして、以前に設定した 300px の幅が変更されないことを常に認識しているコードを作成します。
しかし、これがどれほど良い解決策かはわかりません。
さらに、幅をハードコーディングすることにした場合、プラグインには 1000px 程度の幅が必要になります。メディアクエリで div のサイズを変更したいからです。そして、幅をハードコーディングして(幅1000pxのホルダーdivなど)、ページに配置すると、ページに水平スクロールが表示されます。また、単純にホルダー div (親 div) を非表示にして、同時に子を表示することはできません。したがって、これには、ホルダー (親) div に position:relative を設定し、それをウィンドウの外側に配置し、子 div に同じものを使用する必要があります - 親オフセットの反対方向に同じオフセットを持つ position:relative 。
私はこれまでのところ明確であり、あなたを混乱させていないことを願っています!
私が話していることを説明するコード例: http://jsbin.com/ifawez/18/edit