可変幅でabsoluteを指定すると中央配置できなくなります。
ブラウザの幅に合わせて中身のサイズも合わせて伸縮するサイトを構築したくて色々試しているのですが、どうしてもうまくできません。
どのように指定したらできるのでしょうか?困っています、どなたかお助けください。
例えば画像が固定のサイズであれば
width:500px;
position:absolute;
left:50%;
margin-left:-250px;
見たいな形で中央配置できるのですが、可変の場合、、伸縮させたいので、横幅は常に500pxとはなりません。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
質問の意味がよくわからないのだが、left:50%なんてものをどーしても使わないといけないの?
素直に考えて
width:80%;
position:absolute;
left:10%;/*100%からwidthの80%を引いたものを左右に均等に開けると10%になります。*/
じゃダメなの?
または、質問に既にある、左右のマージンをautoじゃだめなの?
ブラウザの幅に合わせて中身のサイズも合わせて伸縮するサイトはどちらでもできてると思うが、なぜ、左右のマージンをautoで成功しているにも関わらず、positionをつかいたがらるのかを説明せよ。
autoで中央にくるにも関わらず、困っている理由を説明せよ。
width:80%;
position:absolute;
left:10%;/*100%からwidthの80%を引いたものを左右に均等に開けると10%になります。*/
ありがとうございます!!目からうろこです!!お二方のご回答のおかげで、%基準の捕らえ方の仕組みがわかりました。本当に助かりましたありがとうございます。
あと、autoの件なのですが、通常フローでは成功しているのですが、画像の重なりを演出したいため、position指定をして高さの位置を調整すると、なぜかmargin:0 auto;が無効になり困っていました。float:left;のように常左上に張り付いてしまっている状態でした。
No.3
- 回答日時:
いえ、とても、簡単にできます。
画像は「置換インライン要素」なので、サイズは置換された画像のサイズに依存しますが、スタイルシートで抱合親ブロックのサイズを参照できるブロック要素に変えればよいだけです。
たとえばアルバム写真のリストがある場合・・ウィンドウサイズをどのように変えても伸縮します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;}
h1{text-align:center;}
ul.photoAlbum,ul.photoAlbum li{display:block;list-style:none;margin:0;padding:0;width:100%;}
ul.photoAlbum li img{display:block;width:60%;height:auto;margin:0 auto;}
ul.photoAlbum li+li img{width:40%;}
ul.photoAlbum li+li+li img{width:30%;}
ul.photoAlbum li+li+li+li img{width:20%;}
ul.photoAlbum li+li+li+li+li img{width:10%;}
-->
_</style>
</head>
<body>
_<h1>サンプル</h1>
_<ul class="photoAlbum">
__<li><img src="./images/photo/01.jpg" width="480" height="360" alt="家族みんなで"></li>
__<li><img src="./images/photo/02.jpg" width="480" height="360" alt="娘"></li>
__<li><img src="./images/photo/03.jpg" width="480" height="360" alt="息子"></li>
__<li><img src="./images/photo/04.jpg" width="480" height="360" alt="父"></li>
__<li><img src="./images/photo/05.jpg" width="480" height="360" alt="母"></li>
_<ul>
</body>
</html>
ORUKA1951様 先日のお答えも含めまして本当にありがとうございます。
おっしゃられる上記の内容margin:0 auto;でできました。驚きです!また自身がしたかった画像の重なり等や配置を色々挑戦してみましたが、おどろくようにできるようになりました。今回お三方に、それぞれの角度からご指導頂けた事が、すごく良かったと思います。cssのmarginとpositionの仕組みがすごく理解できました。
本当に感謝の限りです。ありがとうございました。
No.1
- 回答日時:
これ結構悩んでたことがあって、今やってみたのですが、意外にすぐ出来たので回答させて頂きます。
position: absolute;のときはmargin-leftにマイナスを指定するんですね。勉強になりましたw
参考画像から察して、可変幅80%だとすれば、次のようにかけばうまくいきました。
width: 80%;
margin-left: -40%;
position: absolute;
left: 50%;
widthとmarginで単位を揃えればおkってことなんでしょうかね
ありがとうございます!!私もうまくできました!!。80%に対しての半分の50%という考えかたではなく40%が半分になるんですね。
基準の考え方が間違っていたんですね。本当に助かりましたありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レスポンシブWebデザインでリン...
-
<ul><li></li></ul>にするメリ...
-
divタグ内のコンテンツが重なっ...
-
html/cssの、navを2段にする...
-
リストの数字のフォントサイズ...
-
ページを開いているときのリン...
-
WordPress 新しいカテゴリに過...
-
liタグの中に<p>タグやら<dl>を...
-
html <ul></ul>の並びで一行空...
-
リンク文字同士の間隔を開ける...
-
CSS li float 2列組み
-
<div>と<div>の隙間を無くす方法
-
dlタグの中にdivは使える?
-
<ol><li> 左側にスペースがで...
-
<table>の高さ固定。情報増加時...
-
透明のボックスにリンクを貼りたい
-
隙間をなくすには?
-
ホームページビルダーで同じ行...
-
アコーディオンメニューがかく...
-
vertical-align:middleをFirefo...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
HTML ul li で横並びにナビゲー...
-
ulタグやliタグの中でbrタグ...
-
liタグの中に<p>タグやら<dl>を...
-
<table>の高さ固定。情報増加時...
-
HTMLで組織図を作成する方法
-
<ul>~</ul>が二つ続くと間に改...
-
<ul><li></li></ul>にするメリ...
-
リストの数字のフォントサイズ...
-
divタグ内のコンテンツが重なっ...
-
HTML5のfooterに見出しを付けて...
-
番号付きリスト(<Ol><Li>・・...
-
html/cssの、navを2段にする...
-
ボタンを横に並べて表示させる方法
-
html <ul></ul>の並びで一行空...
-
画像にリンクを張ると画像がず...
-
アコーディオンメニューがかく...
-
ulとliで囲った文字の一部を変...
-
レスポンシブWebデザインでリン...
-
htmlの<ol>タグで、数字などを...
おすすめ情報