質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

4160閲覧

親要素に幅指定あり、その中でposition:fixedで右寄せをしたい

karasumaru

総合スコア7

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/05/25 00:44

前提・実現したいこと

親要素(body)に幅設定があり、
その中でトップバー部分をposition:fixedでスクロール固定、
なおかつ右寄せしたい。

発生している問題・エラーメッセージ

親要素を突き抜けてトップバーが画面の右端に表示されてしまう。

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <link rel="stylesheet" href="test1.css"> 7 </head> 8 <body> 9 <div id="article"> 10 <header> 11 <div id="top_bar"> 12 <p>top bar: name icons img</p> 13 </div> 14 </header> 15 16 <?php for ($i=0; $i<20; $i++): ?> 17 <p><?php echo ($i); ?></p> 18 <?php endfor ?> 19 </div> 20 </body> 21</html> 22 23

css

1body{ 2 width:600px; 3 margin:0 auto; 4} 5#article{ 6 background-color: #eee; 7} 8p{ 9 color:#333; 10} 11header { 12 width:100%; 13 height:5rem; 14 margin:0 auto; 15 background-color:#f00; 16} 17#top_bar{ 18 position:fixed; 19 text-align:right; 20 right:0; 21 top:0; 22 margin:0; 23 background-color: #fff; 24 padding-bottom:0.3rem; 25 border-bottom:1px solid #ccc; 26} 27

試したこと

・right:0;
・headerにheightを設定

補足情報(FW/ツールのバージョンなど)

この赤い部分内にtop barの内容が右寄せで表示されて欲しいのですが
ご覧のように突き抜けてはみ出しています:

イメージ説明

求める形:

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/05/25 00:59

固定したいのはheaderですか?それとも#top_barだけですか?
karasumaru

2020/05/26 07:43

#top_barだけです。追記遅れてすみません。ありがとうございました。
guest

回答2

0

ベストアンサー

下記でどうでしょう。(calcを使わない方法があったような気がしますが、思い出せない(;^ω^)

css

1#top_bar{ 2 position:fixed; 3 right: calc((100% - 600px) / 2); 4 top:0; 5 margin:0; 6 background-color: #fff; 7 padding-bottom:0.3rem; 8 border-bottom:1px solid #ccc; 9}

flexを使えばいいか。

css

1header { 2 width:100%; 3 height:5rem; 4 margin:0 auto; 5 background-color:#f00; 6 display: flex; 7 justify-content: flex-end; 8} 9#top_bar{ 10 position:fixed; 11 top:0; 12 margin:0; 13 background-color: #fff; 14 padding-bottom:0.3rem; 15 border-bottom:1px solid #ccc; 16}

投稿2020/05/25 01:13

編集2020/05/25 01:28
hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karasumaru

2020/05/26 07:41

justify-content: flex-end;! ありがとうございます!!
guest

0

ちょっと裏技っぽいですが。

サンプル

css

1header { 2 width:100%; 3 height:5rem; 4 margin:0 auto; 5 background-color:#f00; 6 direction: rtl; /* 追加 */ 7} 8#top_bar{ 9 position:fixed; 10 text-align:right; 11 /* right:0; 削除 */ 12 top:0; 13 margin:0; 14 background-color: #fff; 15 padding-bottom:0.3rem; 16 border-bottom:1px solid #ccc; 17}

投稿2020/05/25 01:23

Lhankor_Mhy

総合スコア36960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karasumaru

2020/05/27 00:45

なるほど、direction: rtl;という方法もありですね、勉強になります。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問