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

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

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

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

HTML

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

CSS

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

Q&A

解決済

1回答

1722閲覧

横並びの配列にしたいが、横並び配列にならない

isykzk

総合スコア6

PHP

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/04/14 05:52

編集2021/04/14 08:55

練習用のHPを作ってます。
下記のような並びにしたいのですが、『Live Schedule』が『Beatle News』の下に配置されてしまいます。

こうしたい↓
イメージ説明

実際↓
イメージ説明

下記のようにHTMLとCSSを作っているのですが、何がよくないのかいまいちよくわかりません。
どなたか、お助けいただければ幸いです。

<div id="content">  <p><font size="3">東京ビートルズオフィシャルストアへようこそ。公式グッズ、CD、リマスター盤、ポスタ<br>ーの販売サイト</font></p> </div> <h2>Beatle News</h2> <?php query_posts ('showposts=2&cat=2'); while(have_posts()):the_post(); ?> <div id="section"> <div id="thumb"> <?php the_post_thumbnail(); ?> </div> <div id="desc"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php the_excerpt(); ?> </div> </div> <?php endwhile; ?> </div> <div id="right"> <h2>Live Schedule</h2> <div id="right-main"> <ul> <li><a href="a">7月20日東京 武道館</a></li> <p>A席: 9800円 B席: 7000円</p> <li><a href="a">7月24日横浜アリーナ</a></li> <p>A席: 9800円 B席: 7000円</p> <li><a href="a">7月30日幕張ロッテスタジアム</a></li> <p>A席: 9800円 B席: 7000円</p> </ul> </div> <div>
body{ margin: 0; background-image: url("images/bg.jpg"); font-size: 12px; } #wrapper{ background: white; width: 1000px; margin: 0 auto; height: 1050px; } h1 { padding-left: 20px; font-size: 30px; } #photo { text-align: center; } #content p { padding-left: 20px; } #header{ clear: both; padding-top: 5px; margin: 0 auto; } #header ul{ overflow: hidden; padding-left: 5px; margin: 0 auto; } #header li{ list-style: none; font-size: 20px; padding-bottom: 10px; margin-left: 20px; float: left; font-weight:bold; } #top{ margin-left: 20px; } h2{ font-size: 25px; margin-left: 20px; margin-top: 0; } #top-jpg{ width: 960px; height: 250px; margin-bottom: 0; padding-bottom: 0; } #desctiption p { padding-left: 20px; margin-top: 0; } #right{ float: left; } #right-main h2{ border-bottom: 1px solid gray; } #right-main ul{ list-style: none; } #right-main li{ font-size: 19px; font-weight: 800; } #right-main p{ font-size: 15px; } #footer{ clear: both; } #footer-wrapper{ background: #DBDBDB; width: 900px; height: 120px; margin-left: 50px } #footer p{ padding-top: 60px; text-align: center; font-size: 15px; } #section { overflow: hidden; clear: both; } #thumb { float: left; padding: 0 0 20px 20px; } #desc { float: left; width: 300px; padding-left: 10px; }

フレックスにて改めてやってみました。

<div id="main"> <div id="content">  <p><font size="3">東京ビートルズオフィシャルストアへようこそ。公式グッズ、CD、リマスター盤、ポスタ<br>ーの販売サイト</font></p> </div> <h2>Beatle News</h2> <?php query_posts ('showposts=2&cat=2'); while(have_posts()):the_post(); ?> <div id="section"> <div id="thumb"> <?php the_post_thumbnail(); ?> </div> <div id="desc"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php the_excerpt(); ?> </div> <?php endwhile; ?>   </div> </div> <div id="right"> <h2>Live Schedule</h2> <div id="right-main"> <ul> <li><a href="a">7月20日東京 武道館</a></li> <p>A席: 9800円 B席: 7000円</p> <li><a href="a">7月24日横浜アリーナ</a></li> <p>A席: 9800円 B席: 7000円</p> <li><a href="a">7月30日幕張ロッテスタジアム</a></li> <p>A席: 9800円 B席: 7000円</p> </ul> </div> <div> </div>
body{ margin: 0; background-image: url("images/bg.jpg"); font-size: 12px; } #wrapper{ background: white; width: 1000px; margin: 0 auto; height: 1050px; } h1 { padding-left: 20px; font-size: 30px; } #photo { text-align: center; } #content p { padding-left: 20px; } #header{ clear: both; padding-top: 5px; margin: 0 auto; } #header ul{ overflow: hidden; padding-left: 5px; margin: 0 auto; } #header li{ list-style: none; font-size: 20px; padding-bottom: 10px; margin-left: 20px; float: left; font-weight:bold; } #top{ margin-left: 20px; } h2{ font-size: 25px; margin-left: 20px; margin-top: 0; } #top-jpg{ width: 960px; height: 250px; margin-bottom: 0; padding-bottom: 0; } #desctiption p { padding-left: 20px; margin-top: 0; } #right-main h2{ border-bottom: 1px solid gray; } #right-main ul{ list-style: none; } #right-main li{ font-size: 19px; font-weight: 800; } #right-main p{ font-size: 15px; } #footer{ clear: both; } #footer-wrapper{ background: #DBDBDB; width: 900px; height: 120px; margin-left: 50px } #footer p{ padding-top: 60px; text-align: center; font-size: 15px; } #section { display: flex; } #desc { width: 300px; }

としてみたのですが、希望通りになりません。
現在の表記状況は下記の状態なのですが、どうしたら
「ビートルズがやってきたヤァヤァヤァ!」の記事部分を2段にできるでしょうか?
アドバイスいただければ幸いです。

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

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

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

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

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

K_3578

2021/04/14 05:56

まずはfloatとかいう10年前ぐらいの技術を捨ててFlexbox使いましょう
guest

回答1

0

ベストアンサー

こんにちは。

K_3578さんと同意見で、フロートレイアウトはやめて、フレックスレイアウトを使うのがいいかと思います。


それはそれとして、「何がよくないのか」についてです。
フロートは以下の様なふるまいをします。

float が設定されている要素(この場合は <div> 要素)は、文書の通常のレイアウトフローから除かれ、その親コン​​テナ(この場合は <body>)の左側に固定されます。 通常のレイアウトフローで浮動要素の下側に来るコンテンツは、それを包み込み、浮動要素の最上部まで、その右側のスペースを埋めます。

フロート - ウェブ開発を学ぶ | MDN

「浮動要素の下側」とあるとおり、大雑把に言うとフロートは後続の兄弟要素やテキストを回り込ませるものです。

ご提示のコードは #right にフロートがつけられていましたが、これの後続の要素がないので、回り込む要素がありません。

ですので、解決方法ですが、左側に置きたいコンテンツにフロートをつけてはいかがでしょうか。


それはそれとして、フロートを使ってレイアウトをする手法は、いろいろ問題が起きやすく大変なのでやめた方がいいです。

投稿2021/04/14 06:22

Lhankor_Mhy

総合スコア36841

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

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

isykzk

2021/04/14 06:29

なるほど・・詳しくありがとうございます! 一回フレックスでレイアウトしてみます!!
K_3578

2021/04/14 06:34

フロートレイアウトは人類には早すぎた技術です。その技術を苦心してやりくりしていた昔の技術記事に 畏敬の念を感じながらフレックスレイアウトにしましょう。
isykzk

2021/04/14 08:56

ありがとうござます! フレックスでやってみたのですが、どうもうまくいきません・・ 質問内容を更新しましたので、何かアドバイスいただけたら嬉しいです!
K_3578

2021/04/14 09:00

フレックスにしてみても画像のようにしかならない、ということでしょうか?
Lhankor_Mhy

2021/04/14 09:03

フレックスレイアウトは、フレックスコンテナ(display:flex)の中で、フレックスアイテム(フレックスコンテナの子要素)を横並びにするものです。 ですので、display:flex をつける場所が違います。
isykzk

2021/04/14 09:55

今回、フレックスさせたいところは、<div id="section">なので、<div id="section">につけてみたのですフレックスコンテナの認識が違うということでしょうか?
Lhankor_Mhy

2021/04/14 11:32

そうですね、先ほどのコメントの通りです。 別の言葉で言えば、フレックスコンテナ自身はフレックスレイアウトにならない、ということです。 フレックスコンテナの内部がフレックスレイアウトになります。
isykzk

2021/04/15 13:13

ご回答ありがとうございます。 <div id="section">に対して、display:flexをかけた時に、適応される子要素は<div id="section">の中にある、<div id="thumb"> と<div id="desc">ということですよね?><
Lhankor_Mhy

2021/04/16 00:42

そうなると思います。
isykzk

2021/04/16 09:55

ありがとうございます!解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.38%

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

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

質問する

関連した質問