サイト内に、スクロールによって追従するサイドメニューを作りたいと思います。(PC専用)
その際に、スクロール位置によってcssの「position:fixed」を追加しサイドメニューを固定したいと思うのですが、
fixedを使用することでよくわからないレイアウト崩れが起きてしまいました。画像とコードで状況をお伝えしますので、よろしければご一緒に考えて頂ければ幸いです。
【現在の状況】
まずは背景色で簡単に位置分けをしております。左がサイドメニューです。
HTML
1<!DOCTYPE html> 2<html lang="ja-JP"> 3<head> 4<meta charset="UTF-8"> 5<title>test</title> 6</head> 7<style type="text/css"> 8 9.main{ 10 width:800px; 11 margin:0 auto; 12} 13 14.clearfix:after{ 15 content:""; 16 display:block; 17 clear:both; 18} 19 20.main > div{ 21 float:left; 22 box-sizing:border-box; 23} 24 25.content{ 26 width:80%; 27 background-color:#CCC; 28 height:2000px; 29} 30 31.side{ 32 width:20%; 33 height:500px; 34} 35 36.side-in{ 37 background-color:#EEE; 38} 39 40.fixed{ 41 position:fixed; 42} 43 44</style> 45<body> 46 47<div class="main clearfix"> 48 <div class="side"> 49 <div class=""> <!-- ここにfixedを入れる --> 50 <div class="side-in"> 51 こちらがサイドメニューになります 52 </div> 53 </div> 54 </div> 55 <div class="content"> 56 ここはメインコンテンツ 57 </div> 58</div> 59 60</body> 61</html>
薄いグレーになっている部分がサイドメニューの領域で、「こちらがサイドメニューになります」という文章を入れています。
この状態で、.side-inの親要素に.fixedを追加を追加すると、
このようになぜか大元の.sideを横幅をはみ出してしまいます。
word-break: break-allなどを利用してもこの状況は改善されませんでした。
.fixedを追加させても、「こちらがサイドメニューになります」を.sideの領域の中で折り返しを行いたいのですが、その場合はどのような記述を行えばいいのでしょうか。
実験はfirefox,chromeで確認しています。コードはコピーで画像のような状況を再現できます。
どなたかご教示お願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/01 02:26