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

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

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

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

CSS

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

Q&A

解決済

2回答

7396閲覧

position absolute の指定をしたブロック要素にmargin: 0 auto;が効かない

kato00

総合スコア71

HTML

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

CSS

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

1グッド

0クリップ

投稿2018/04/09 09:35

いつもお世話になってます。

質問は表題の通りです。
下記コードの.serviceContainerにposition absoluteを設置したところ、
margin: 0 auto;が効かなくなってしまいました。

自分でも色々調べたのですが、
position absoluteを設置した要素は存在がレイアウト内から消える(存在しない事になる)ので、移動はtop,left等の設定でのみ可能で、margin: 0 auto;の使用は出来ない、、、のかも??

というところまでは行き着いたのですが、確信が持てません。

(重なりですが、.serviceContainerを一番上にして別途image1を下に重ねる予定です。)

html

1<div id="contents"> 2 <div class="serviceContainer"> 3 <p>sample 4 </p> 5 <ul> 6 <li>sample</li> 7 <li>sample</li> 8 <li>sample</li> 9 <li>sample</li> 10 </ul> 11 </div> 12 </div><!--contents閉じタグ-->

css

1#contents{ 2 width: 920px;/*コーディング指示*/ 3 height:1000px;/*positionを適用させる為に指定*/ 4 border: 5px solid rgb(15, 224, 195); 5 margin: 0 auto; 6 position: relative; 7} 8 9.serviceContainer{ 10 display: flex; 11 justify-content: space-around; 12 align-items: center; 13 position: absolute; 14 z-index: 10; 15 width: 90%; 16 margin: 0 auto; 17 background-color: rgb(136, 91, 150); 18} 19 20.serviceContainer li{ 21 float: left; 22 margin-right: 30px; 23 /* border: 1px solid rgb(139, 139, 177); */ 24} 25 26.serviceContainer ul:after{ 27 clear: both; 28 content: ''; 29 display: block; 30 } 31 32.serviceContainer li::before{ 33 content: "●"; 34 color: rgb(43, 121, 164); 35} 36

その他必要情報がありましたら追記しますのでおっしゃってください。
宜しくお願いします。

Y.NINOMIYA👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

marginを使用して中央寄せをしたいなら、leftとrightを0指定で。

css

1.serviceContainer { 2 left: 0; 3 right: 0; 4 margin: auto; 5}

もしくは、leftのみで、数値を計算するのでもいいと思います。

css

1.serviceContainer { 2 left: 5%;/* (100% - 90%) / 2 */ 3}

投稿2018/04/09 09:44

kszk311

総合スコア3404

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

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

kato00

2018/04/09 09:57

いつも的確なご回答ありがとうございます!!Kszk311さんのお陰でまたまた解決しました!!
guest

0

絶対配置になったほう(position:absolute)のcssに(z-index:100)を入れてください。
あとブロック要素よりdisplay:inline-blockの方が(.serviceContainer h3とか~ pと)を指定
しておくとtext-align:centerで文章が中央に。その際、background:rgba(0,0,0,.5);をいれておいて
color:#fff;でよく文章が見えます。また、相対配置(position:relative;)の方は近くにメニューバー
があるときはそちらが反応しなくなるのでz-index:-100;をいれておくといいです。

投稿2018/04/09 09:50

wpwbs585

総合スコア19

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

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

kato00

2018/04/09 09:58

なるほど!!アドバイスありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問