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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

Q&A

解決済

1回答

229閲覧

動画とコメントを揃えて横並びにするにはどうすればよいでしょうか?

homepage-site

総合スコア62

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

0グッド

1クリップ

投稿2025/03/10 03:58

編集2025/03/10 09:08

実現したいこと

画像・動画が1件または2件の時は動画を縦に並べて1件目のトップの位置と横並びでコメント表示
画像・動画が3件の時は動画を2件横並びにしてその下に1件の合計3件に回り込みでコメント表示
にしたいと考えております。

発生している問題・分からないこと

画像は希望通りに並べることができたのですが、動画になると上部に空白が発生してしまい困っております。

該当のソースコード

PHP

1<?php 2$upload_dir = wp_upload_dir(); 3echo '<div class="main_container">'; 4echo '<div class="quest_container">'; 5// var_dump($rows); 6foreach ($rows as $row) { 7$files = array_filter([$row->attach1, $row->attach2, $row->attach3]); 8$views = []; //HTMLをため込む配列の初期化する 9foreach ($files as $file) { 10$info = pathinfo($file); 11$attach_url = $upload_dir['baseurl'] . '/attach/' . $info['basename']; 12$ext = $info['extension']; 13switch ($ext) { 14case 'jpeg': 15case 'png': 16$views[] = '<img style="height:350px;width:530px" src="' . $attach_url . '">'; 17break; 18case 'mp4': 19$views[] = '<video height="350px" width="530px" src="' . $attach_url . '" controls>'; 20break; 21case 'pdf': 22$views[] = '<iframe style="height:350px;width:530px" src="' . $attach_url . '"></iframe>'; 23break; 24default: 25break; 26} 27} 28$count = count($views); 29if ($count == 1 || $count == 2) { 30$qm = 'quest_markdown'; 31$qi = 'quest_item'; 32} else { 33$qm = 'quest_markdown_group'; 34$qi = 'quest_item_group'; 35} 36if (empty($row->usericon)) { 37$usericon_src = 'wp-content/themes/sample_theme/images/noimage.png'; 38} else { 39$usericon_src = $upload_dir['baseurl'] . '/attach/' . $row->usericon; 40} 41?> 42
<div class="quest_container"> <div class="quest_header_title"> タイトルテスト1タイトルテスト1タイトルテスト1タイトルテスト1タイトルテスト1タイトルテスト1タイ </div> <div class="quest_feeling_stamp"> <input type="radio" name="stamp" value="1" id="stamp" /><label for="stamp" class="quest_stamp_label" ></label> </div> <!-- 画像・動画が1件か2件の時 --> <!-- <div class="quest_markdown"> --> <div class="quest_markdown_group"> <!-- 画像・動画が1件か2件の時 --> <!-- <div class="quest_item"> --> <div class="quest_item_group"> <img style="height: 350px; width: 530px" src="" /> </div> <!-- 画像・動画が1件か2件の時 --> <!-- <div class="quest_item"> --> <div class="quest_item_group"> <img style="height: 350px; width: 530px" src="" /> </div> <!-- 画像・動画が1件か2件の時 --> <!-- <div class="quest_item"> --> <div class="quest_item_group"> <img style="height: 350px; width: 530px" src="" /> </div> </div> <div class="quest_overview"> コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメントテスト1コメント </div> <div class="quest_usericon_img"> <img src="" /> <div class="quest_username"> 名前テスト1名前テスト1名前テスト1名前テスト1名前テスト1名前テスト1名前テスト1名前テスト1名前 </div> </div> </div>

CSS

1<style> 2.quest_header_title { 3font-size: 25px; 4display: inline-block; 5vertical-align: top; 6width: 1010px; 7padding-right: 30px; 8} 9 10.quest_feeling_stamp { 11display: inline-block; 12} 13 14.quest_markdown { 15 float: left; 16} 17 18.quest_item { 19 display: block; 20 margin-bottom: 30px; 21 padding: 0px 18px 0px 5px; 22} 23 24.quest_item_group { 25float: left; 26display: inline-block; 27margin-bottom: 25px; 28padding: 0px 18px 0px 5px; 29margin-top: -20px; 30} 31 32.quest_overview { 33color: #e52d77; 34font-size: 150%; 35font-weight: 700; 36width: 1098px !important; 37margin-top: 25px; 38} 39</style>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

.quest_item_group に margin-top: -20px; を設定したところ多少改善されたのですが、回り込んだコメントと動画に隙間が発生してしまいます。

補足

※ 参考画像
イメージ説明

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

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

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

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

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

Lhankor_Mhy

2025/03/10 08:14

HTMLをご提示いただいた方が回答はつきやすいかと思います。
homepage-site

2025/03/10 09:07

Lhankor_Mhy さんアドバイスありがとうございます。 追加させていただきました。
Lhankor_Mhy

2025/03/10 09:17

補足願います。 ・ご提示のソースには動画がないようでしたが、問題が起きるのは動画の時、という認識で合っていますか? つまり、ご提示のソースでは問題が起きないという理解でいいでしょうか? ・『上部に空白』というのは、スクリーンショットで言うと『タイトルテスト1』の下の部分のことですか?
homepage-site

2025/03/10 09:19

Lhankor_Mhy さん回答ありがとうございます。 3件目の動画とコメントテスト1の間に出来ている上部の空白になります。
Lhankor_Mhy

2025/03/10 09:36

ご提示のコードでは問題が起きない、という認識は合っていますでしょうか?
homepage-site

2025/03/10 10:03

Lhankor_Mhy さん回答ありがとうございます。 エラーは発生していないのですが、quest_overview に margin-top: 25px; を設定した場合コメントテスト1の位置が下がってしまっているようです。 https://imgur.com/XyUWbjB.png 上記とは別に問題が発生しているようで、 quest_item_group に margin-top: -20px; を設定したところ1、2件目の画像とスタンプ画像の距離が狭まってしまい、3件目の画像も1、2件目の画像との距離は狭まってしまいます。 https://imgur.com/a/MhfmTWg.png
Lhankor_Mhy

2025/03/10 10:23

> quest_overview に margin-top: 25px; を設定した場合コメントテスト1の位置が下がってしまっている margin-top は上方向の余白の設定ですから、余白が増えた分テキストは下がります。 --- > quest_item_group に margin-top: -20px; を設定したところ1、2件目の画像とスタンプ画像の距離が狭まってしまい margin-top は上方向の余白なので、負にすると上の要素と重なります(特殊なマージン相殺)。
homepage-site

2025/03/10 11:05

Lhankor_Mhy さんアドバイスありがとうございます。 CSS を調節してみました。 .quest_item_group { float: left; display: inline-block; margin-bottom: 25px; padding: 0px 18px 0px 5px; } .quest_overview { color: #e52d77; font-size: 150%; font-weight: 700; width: 1098px !important; }
guest

回答1

0

ベストアンサー

『画像は希望通りに並べることができたのですが、動画になると上部に空白が発生』という問題のご説明から、「ご提示のコードでは問題が起きない」という前提で回答させていただきます。

 コードがないため想像になってしまうのですが、おそらくアスペクト比の問題かと思います。動画でよく使われるアスペクト比は16:9です。幅が530pxだとすると、高さは298pxほどになります。ご提示の画像のコードではheight: 350px; width: 530pxとなっていますから、およそ50px余ります。これが上下の余白となっているのでしょう。

投稿2025/03/10 09:51

Lhankor_Mhy

総合スコア37345

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

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

homepage-site

2025/03/10 11:07

Lhankor_Mhyさん回答ありがとうございます。 動画のアスペクト比で上下の余白が出来ていたんですね勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.32%

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

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

質問する

関連した質問