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

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

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

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

3242閲覧

wordpress でフレックスボックスを使い記事に「大きい画像」を使うとレイアウトが崩れる件

sox

総合スコア12

CSS3

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2017/02/15 06:48

編集2017/02/16 05:31

###前提・実現したいこと

クソみたいなことを質問させてください。
web 初心者で wordpress を特訓中です。
色々参考書を参照しながら wordpress の作り方を学んでまして、先日購入した書籍にてこれからは「flexbox」が主流になってくると知りました。
そこでもともと「float」でボックスをつくる記述の本を「flex」で置き換えて試行錯誤しているのですが、件名に端的に書いたように記事中の「大きい画像」を使うとレイアウトが横に広がってしまいます。この症状が出ないような対応策を教えてください。

###該当のソースコード

css

1/*---------------基本構造---------------*/ 2 3.container { 4 display: flex; 5 flex-flow: column; 6 padding: 0 20px 0 7 } 8 9@media (min-width: 768px) { 10 11 .container { 12 margin: 0 auto 0 auto; 13 display: flex; 14 flex-flow: row 15 } 16 .container:after { 17 content: ""; 18 clear: both 19 } 20 .contents { 21 flex: 1 0 600px /*-- 下記に補足を書いています --*/ 22 } 23 .sub { 24 flex: 0 0 300px 25 } 26 27/* コンテンツとサイドバーの間隔 */ 28.contents { 29 padding-right: 50px; 30 -moz-box-siging: border-box; 31 -webkit-box-siging: border-box; 32 box-siging: border-box; 33} 34} 35@media (min-width: 1040px) { 36/* 全体の横幅 */ 37.container, .header-inner, .footer-inner { 38 max-width: 1000px; 39 margin: 0 auto 0 40} 41} 42 43/* ↓ここで img に記事の幅に揃えるよう指定していることになっています。*/ 44 45/*--------------大きい画像用の設定---------------*/ 46img, .wp-caption { 47 max-width: 100%; 48 height: auto 49}

さらに参考になるかわかりませんが、single.phpのhtmlも下記に記しておきます。

html

1<?php get_header(); ?> 2 3<div class="container"> 4 <div class="contents"> 5 6<?php if(have_posts()): while(have_posts()): the_post(); ?> 7<h1><?php the_title(); ?></h1> 8 9 <?php if( has_post_thumbnail() ): ?> 10 <div class="catch"> 11 <?php the_post_thumbnail( 'large' ); ?> 12 <p class="wp-caption-text"> 13 <?php echo get_post( get_post_thumbnail_id() )->post_excerpt; ?> 14 </p> 15 </div> 16 <?php endif; ?> 17 18 <?php the_content(); ?> 19 20<?php endwhile; endif; ?> 21 22</div> <!--- contents ---> 23 24<div class="sub"> 25<?php get_sidebar(); ?> 26</div> 27 28</div> <!--- container ---> 29 30<?php get_footer(); ?>

下記は当該ページのソースです。
記事の文章途中の赤字の部分が記事幅を思いっきりはみ出した画像のソースです。

html

1 2<!DOCTYPE html> 3<html lang="ja"> 4 5<head> 6 <meta charset="UTF-8"> 7 <title> 8 おいしい朝ごはんを食べたい! / PICNIC </title> 9 10 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 11 12 <link rel="stylesheet" href="http://127.0.0.1:8080/wordpress/wp-content/themes/mythemeee/style.css?VER=1487221876"> <!-- 最新のphpを読み込ませる --> 13 14 <link rel="stylesheet" href="/css/sanitize.css"> 15 16 <link rel='dns-prefetch' href='//s.w.org' /> 17<link rel="alternate" type="application/rss+xml" title="PICNIC &raquo; おいしい朝ごはんを食べたい! のコメントのフィード" href="http://127.0.0.1:8080/wordpress/breakfast/feed/" /> 18 <script type="text/javascript"> 19 window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/127.0.0.1:8080\/wordpress\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7.2"}}; 20 !function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),!(j.toDataURL().length<3e3)&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings); 21 </script> 22 <style type="text/css"> 23 </style> 24<link rel='https://api.w.org/' href='http://127.0.0.1:8080/wordpress/wp-json/' /> 25<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://127.0.0.1:8080/wordpress/xmlrpc.php?rsd" /> 26<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://127.0.0.1:8080/wordpress/wp-includes/wlwmanifest.xml" /> 27<link rel='prev' title='手土産に何を持っていくかが大きな問題' href='http://127.0.0.1:8080/wordpress/temiyage/' /> 28<meta name="generator" content="WordPress 4.7.2" /> 29<link rel="canonical" href="http://127.0.0.1:8080/wordpress/breakfast/" /> 30<link rel='shortlink' href='http://127.0.0.1:8080/wordpress/?p=13' /> 31<link rel="alternate" type="application/json+oembed" href="http://127.0.0.1:8080/wordpress/wp-json/oembed/1.0/embed?url=http%3A%2F%2F127.0.0.1%3A8080%2Fwordpress%2Fbreakfast%2F" /> 32<link rel="alternate" type="text/xml+oembed" href="http://127.0.0.1:8080/wordpress/wp-json/oembed/1.0/embed?url=http%3A%2F%2F127.0.0.1%3A8080%2Fwordpress%2Fbreakfast%2F&#038;format=xml" /> 33</head> 34 35<body class="post-template-default single single-post postid-13 single-format-standard logged-in"> 36 37 <header> 38 <div class="header-inner"> 39 <div class="site"> 40 <h1><a href="http://127.0.0.1:8080/wordpress"> 41 PICNIC </a></h1> 42 </div> 43 </div> <!-- header-inner --> 44 45 </header> 46<div class="container"> 47 <div class="contents"> 48 49<h1>おいしい朝ごはんを食べたい!</h1> 50 51 <div class="catch"> 52 <img width="747" height="498" src="http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-1024x682.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-1024x682.jpg 1024w, http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-300x200.jpg 300w, http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-768x512.jpg 768w, http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779.jpg 1280w" sizes="(max-width: 747px) 100vw, 747px" /> <p class="wp-caption-text"> 53 <a href="https://pixabay.com/users/JESHOOTS/">JESHOOTS</a> / Pixabay </p> 54 </div> 55 56 57 <p>とあるところで目にした言葉「一日の計は朝にあり」。何事も最初が肝心、はじめにしっかり計画を立てよう、といった意味のことわざですが、私が連想したのは朝ごはんでした。何でも食べ物に結びつけてしまう今日このごろです。</p> 58<p>朝ごはんは食べる派ですか? それとも食べない派? 「1日のエネルギー源だから食べた方がいい」とか、「午前中は老廃物を出す時間だから食べない方がいい」とか、まったく相反する意見があって、どちらに従ったものなのか迷ってしまいます。</p> 59<div id="attachment_48" style="width: 1290px" class="wp-caption aligncenter"><a href="http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779.jpg"><img class="size-full wp-image-48" src="http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779.jpg" alt="" width="1280" height="853" srcset="http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779.jpg 1280w, http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-300x200.jpg 300w, http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-768x512.jpg 768w, http://127.0.0.1:8080/wordpress/wp-content/uploads/2017/02/クロワッサン コーヒー_1487131779-1024x682.jpg 1024w" sizes="(max-width: 1280px) 100vw, 1280px" /></a><p class="wp-caption-text"><a href="https://pixabay.com/users/JESHOOTS/">JESHOOTS</a> / Pixabay</p></div> 60<p>どちらの意見も一理あるような気がするのですが、おいしそうな朝ごはんを見ると食べたくなってしまう私です。ホテルならあたたかい珈琲にクロワッサン、ジャム、ベーコンエッグ…。旅館ならあたたかいお味噌汁にご飯、納豆、焼き魚…。</p> 61<p>残念ながら自分でこれだけの食材を買い揃え、毎朝作って準備するのは難しいので、結果的に「朝ごはん食べない派」になっているんですけどね。</p> 62 63 64</div> <!--- contents ---> 65 66<div class="sub"> 67<aside class="mymenu"> 68<h2>新着記事</h2> 69<ul> 70 <li><a href="http://127.0.0.1:8080/wordpress/breakfast/"> 71 おいしい朝ごはんを食べたい! </a></li> 72 <li><a href="http://127.0.0.1:8080/wordpress/temiyage/"> 73 手土産に何を持っていくかが大きな問題 </a></li> 74 <li><a href="http://127.0.0.1:8080/wordpress/yasai/"> 75 野菜をたくさん食べるために考えたこと </a></li> 76 77</ul> 78</aside> 79</div> 80 81</div> <!--- container ---> 82 83<footer> 84 <div class="footer-inner"> 85 <div class="copyright"> 86 <p>Copyright © 2017 87 PICNIC </p> 88 </div> 89 </div> 90 91</footer> 92 93 </body> 94 95 </html>

よろしくお願いいたします。

###試したこと
「大きい画像用の設定」にて、max-widht: 100% ではなく width: 600px に置き換えてみましたが、画像が600pxで表示されるだけで文章は画像の大きい画像サイズの 1024px あたりまで幅が広がってしまいました。

###補足情報(言語/FW/ツール等のバージョンなど)
css
wordpress 4.7.2

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

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

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

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

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

kei344

2017/02/15 13:45

HTMLも追記されたほうが回答が付きやすいと思います。
sox

2017/02/15 15:16

ご指摘ありがとうございます。今しがたhtmlなどの補足を書き加えました。
kei344

2017/02/15 15:21

こちらの環境では変更/修正が確認できませんでした。すみませんが、もう一度確認してもらえませんか?最近teratailで修正が保存されない事がたまにあるようなので・・・。
sox

2017/02/15 15:33

あれまあ....もう一度書きます。。。。
kei344

2017/02/15 15:40

また、質問内容をエディタで作ってコピー&ペースしていませんか?teratail のバグで記述内容が表示されないというものが以前有ったので、もしそうされている場合ペースト後に何文字か記入してみてください。
sox

2017/02/15 15:45

度々ありがとうございます。今、完了しました。どうぞよろしくお願いいたします。。。
kei344

2017/02/15 15:58

何度も申し訳ないのですが、書かれているのはPHPなので、出力されたHTML(ブラウザで「ページのソースを表示」)でないと状況が再現できません。
sox

2017/02/16 05:32

遅くなりましたが、今しがたソースを貼り付けました。こちらこそ何度もすみませんがよろしくおねがいいたします。
guest

回答2

0

ベストアンサー

CSS

1/* ADD */ 2img, .wp-caption { 3 max-width: 100%; 4} 5.contents { 6 overflow: hidden; 7} 8```**動くサンプル:**[https://jsfiddle.net/3jvdwjs5/1/](https://jsfiddle.net/3jvdwjs5/1/) 9**動くサンプル(広い画面用):**[https://jsfiddle.net/3jvdwjs5/1/show/](https://jsfiddle.net/3jvdwjs5/1/show/)

投稿2017/02/16 20:52

kei344

総合スコア69400

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

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

sox

2017/02/17 03:51

ありがとうございます。できました!
guest

0

html

1<div id="attachment_48" style="width: 1290px" class="wp-caption aligncenter">

ここの style="width: 1290px" が優先されているのではないかと思います。
2つ目の画像のところです。

記事に直接記述がありますか?

投稿2017/02/16 07:17

dit.

総合スコア3235

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

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

sox

2017/02/16 07:28

ご回答ありがとうございます。 いえ、記事にはただ画像を『メディアを追加』から貼りこんでいるだけです。。
dit.

2017/02/16 23:49

確認不足でした。 キャプション追加したりするとstyle付与されますね。 kei344さんの方法で対処できそうなのでそちらをご参照ください
sox

2017/02/17 03:55

そのようですね、キャプションをとったら「.contents {overflow: hidden}」なしでもはみ出しませんでした。BAはkeiさんにいたしましたがご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問