HTML ```### 前提・実現したいこと HTML,CSSを独学で勉強し始めたばかりの者です。 ヘッダーを固定したいのですが、positon:fixed;を使うと画像のプレビューのようにヘッダーが左にずれてしまいます。![イメージ説明](d2d808a20ce48d81d42627790591c2dc.png) ```html <body> <div class="header"> <div class="container"> <img class="logo-image" src="https://prog-8.com/images/html/advanced/main_logo.png"> <a class="login">ログイン</a> </div> </div>
css
1.header { 2 height:65px; 3 background-color:rgba(34,49,52,0.9); 4 position:fixed; 5 top:0px; 6 7.container { 8 width:1170px; 9 margin:0 auto;
正しいコードを見ると、.headerのwidthを100%にしているのですが、なぜそうなるのかが分かりません。そもそもdivなどのブロック要素は幅を指定しない限り、初期値autoによって幅いっぱいに広がるんですよね?それなのにわざわざ100%にするのはなぜなのか、そうしなければposition:fixedを使ったときにずれてしまうのはなぜなのでしょうか。positin:fixedによって、どの部分にどのような影響があるのか教えてください。
また、同じような質問に対する回答で「子要素の.containerにwidth:1170pxを指定してありますので親要素であるheaderの横幅も1170pxになります。」とあったのですが、子要素のcssは親要素にも影響するのですか?
あと、別の似た質問の回答にあったのですが、次のコードのようにtop,left,rightを全部0pxにすると.headerのwidthを100%にしていなくてもずれていませんでした。
css
1.header { 2 height:65px; 3 background-color:rgba(34,49,52,0.9); 4 position:fixed; 5 top:0px; 6 left:0px; 7 right:0px; 8 9}
これを見て更に分からなくなってしまいました。。
本当に初心者なので質問もだいぶめちゃくちゃだと思いますが、ご回答頂けたら嬉しいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー