前提・実現したいこと
サジェストとして表示されるテキストを、入力ボックスの直下に表示しつつ、画面いっぱいに広げたいです。
発生している問題
入力ボックスの直下にサジェストを表示すべく、親要素をrelative
に、子要素のサジェストをabsolute
にしています。
しかし、サジェストの幅が親要素を超えられず、テキストの改行位置がその幅に制限されてしまいます。
サジェストの幅を、親要素を超えて画面いっぱいに広げるには、どうしたらいいでしょうか?
該当のソースコード
以下を実行 → https://jsfiddle.net/16wv4rna/
HTML
1<p><span class="color_salmon">.input</span> に入力すると<span class="color_pink">.suggest</span> が表示される機能があり、このテキストを<br> 2➀<span class="color_salmon">.input</span> の直下に表示したい<br> 3②画面の右側いっぱいまで広げたい(左側は <span class="color_salmon">.input</span> の左と同じ位置)<br> 4というのが目標</p> 5 6<br><hr><br> 7 8<div class="boxes"> 9 10 <div class="box"> 11 <div class="input input1 color_salmon" contenteditable="true">apple</div> 12 <ul class="suggest color_pink"> 13 <li>I like apples.</li> 14 <li>Please put everything in apple-pie order before you leave.</li> 15 <li>It’s apples and oranges.</li> 16 </ul> 17 </div> 18 19 <div class="box"> 20 <div class="input input2 color_salmon" contenteditable="true"></div> 21 </div> 22 23</div>
CSS
1* { 2 margin: 0; 3 padding: 0; 4 list-style: none; 5} 6span { 7 margin: 2px; 8 display: inline-block; 9} 10.color_salmon { 11 background: salmon; 12} 13.color_pink { 14 background: pink; 15} 16.boxes { 17 display: flex; 18} 19.box { 20 margin-right: 10px; 21 position: relative; 22} 23.input{ 24 width: 100px; 25 line-height: 1.5; 26} 27.suggest{ 28 position: absolute; 29 top: calc(1em * 1.5); 30 right: auto; 31 bottom: auto; 32 left: 0; 33}
試したこと
.box
のrelative
を外せばサジェストの幅は適切になりますが、位置が直下に来てくれません
また、JavaScriptで.input
の位置を取得して.suggest
をfixed
にすれば実現できますが、そこまでしなくてもできるのではないか、と思い質問させて頂きました。
お詳しい方、よろしくお願い致します。

回答2件
あなたの回答
tips
プレビュー