なぜこのコードでは、2つの<input>
要素の幅を親の20%、すなわち#right
の20%に設定しないのですか?それ自体はメニューの右側部分にすぎません(ブラウザのフルサイズではない)?左、中央と右のdivを持つトップメニュー
* { margin:0; padding: 0; }
#menu { background-color: yellow; }
#left {background-color: green; float: left; width: 200px; }
#mid { background-color: red; float: left; width: 40%; }
#right {background-color: blue; width: calc(100%-40%-200px);}
#a1, #a2 { width: 20%; }
<div id="menu">
<div id="left">left green: 200px</div>
<div id="mid">mid red: 40% of browser width</div>
<div id="right">
<input id="a1" />
<input id="a2" />
</div>
</div>
<div>
content of the site
</div>
注:100%の幅が必要です一方#rightは、フルブラウザの幅を使用しているようです - 40% - 200pxのを。それから20%が12%-40pxになります。つまり、#a1, #a2 { width: calc(12%-40px); }
と設定できます。しかし、これは汚れたハックになるでしょう。 #a1と#a2の幅を親の幅で設定したいと思っています。
はい、それでもこれで、#rightは上の滞在していません。右上の位置、j #midの後にust。どうして? #leftと#midに 'float:left'があるので、#rightは同じ行に表示されるはずです... – Basj