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

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

ただいまの
回答率

90.50%

  • CSS

    6982questions

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

position:relative;の影響で、子要素が親要素からはみ出てしまいます。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 4,483
退会済みユーザー

退会済みユーザー

positionを使った、スライドショーを<div class="split-screen-inner-secondly">
の中に作ったら、position:relative;の影響で<div class="split-screen-inner-secondly">の中身が空と同じ状態になり、スライドショーが<div class="split-screen-inner-secondly">つまり親からはみ出てしまいます。

希望としてはレスポンシブで親ぴったりになってくれたらありがたいです。

http://codepen.io/anon/pen/wzkYxX

スライドショーは下記を使わせてもらっています。
http://stand-4u.com/javascript/slideshow.html

その後スライドショーの画像をスライドショーの下においてそれをクリックするとすぐにその画像になるようにする予定です。

position使わないで画像を重ねるしかないでしょうか?
ないしは画像を背景にしてdivを画像分作るしかないでしょうか?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/10/27 13:32

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 1

checkベストアンサー

+1

codepenに必要な情報が全然入っていないので想像ですが、#slide、、または#slide imgにmarginが設定されていませんか?
そこにwidth:100%とmarginが設定されている状態で.split-screen-inner-secondlyも100%にされていたらはみ出ます。
position: relativeは相対位置を固定するものであり、全く関係ありません。
よってcodepenにposition: relative; top: 100; left: 100;(単位が入っていないので意味をなしていません)になっていましたが、普通の使い方としては親要素をrelativeで相対的に固定し、その子要素をabsolute(絶対位置。relativeが無ければブラウザ全体を始点とみなします)にし、topやleftなどで配置します。

話を幅の話に戻します。
子要素にmarginを設定するのでなく、親要素(ここでは.split-screen-inner-secondly)にpaddingを設定してください。
その上で#slideを100%にすれば.split-screen-inner-secondlyの値次第でどこまでも大きく、または小さくなります。
なので普通は「画像の元サイズより大きくなったら荒くなったり横幅が大きくなったら高さも高くなっちゃうから」みたいな理由でmax-widthを.split-screen-inner-secondlyに設定します。

レスポンシブにこだわっているようなので、もしPCと見せ方を変えるのであれば横幅のブレークポイントを設定し、メディアクエリをCSS下側に配置してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/28 16:20

    >>>
    position:relative;の影響で<div class="split-screen-inner-secondly">の中身が空と同じ状態になり、スライドショーが<div class="split-screen-inner-secondly">つまり親からはみ出てしまいます。

    横幅よりもどちらかというと立幅が0になったしまう問題です。

    positionを使ったので、その要素がないようにふるまうというのが原因だとはわかっているのですが、レスポンシブでその問題を対処する良い方法はないでしょうか?

    jqueryでheightを取得する方法はあると思いますが、マージンなども入るとかなり大変な計算になりますよね。
    しかもレスポンシブなので、ifも使わないといけないですし。

    キャンセル

  • 2016/10/28 16:28

    ああ、そういう意味ですね。ありがとうございます。
    小要素がabsoluteでheight:autoだと親要素からはみ出るのは当たり前ですね。
    まあ私なら$('img').height()で最大高を取得し、あとはmarginとpadding足し算してsplit-screen-inner-secondlyのheightにぶっこみます。

    キャンセル

  • 2016/10/28 16:40

    やっぱりjqueryを使わないと無理ですね。cssの限界ですね。それを考えてみます。

    キャンセル

同じタグがついた質問を見る

  • CSS

    6982questions

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