
ファイルを最大3つアップロードできる掲示板を作成しているのですが、2個の場合は縦並び、3個の場合は2個横並び+一段下に回り込んで1個並べたいです。
div class="billboard_article_areaにCSSを設定しておりクラス名を維持したまま、個数に応じてCSSを差し替えたいと考えております。
jQueryで可能なようで参考にしたいと考えているのですが、ブラウザにより対応できない場合もあるようで躊躇していて、他に方法がないかと模索しているのですが何か良い方法はありますでしょうか?
※参考サイト
https://okwave.jp/qa/q7386889.html
※アップロードファイルコード
<div class="billboard_article_area">
<div class="billboard_uploadFiles_area">
<!-- <label>添付ファイル#1</label> -->
<div class="viewer"><?php echo $view[0]; ?></div>
</div>
<div class="billboard_uploadFiles_area">
<!-- <label>添付ファイル#2</label> -->
<div class="viewer"><?php echo $view[1]; ?></div>
</div>
<div class="billboard_uploadFiles_area">
<!-- <label>添付ファイル#3</label> -->
<div class="viewer"><?php echo $view[2]; ?></div>
</div>
No.3ベストアンサー
- 回答日時:
No1です。
画像の表示順序がどれだけ重要なのかがよくわからないのですが・・
ご提示のHTMLのどこが画像なのかも不明なのと、画像サイズがどの程度バラついているのかも不明なので、何とも記述しにくいのですが、大雑把な参考としてのサンプルを作成してみました。
適当に以下の仮定をしています。
・各画像(又は包含要素)は同じくらいのサイズになっている
(例では100×100pxとしてあります)
・ご提示のHTMLでdiv要素が画像(又は画像の包含要素)になっていると想定
画像の順を気にしなければ、一律設定のCase1で事足りると思います
画像の順も気にするのなら、CSSを使い分ける方法でCase2の例で
(とは言っても、.tripleの設定を追加しただけですが・・)
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
/* divを画像代わりにする仮設定他 */
h4 { margin: 1.5em 0 .2em; }
.img {
width: 100px; height: 100px;
text-align: center; line-height: 100px;
font-weight: bold;
border: 1px solid #888;
background-color: #DFF;
margin: 1px;
}
/* レイアウトの設定 */
.wrap1, .wrap2 {
display: flex;
flex-wrap: wrap;
flex-direction: column;
max-height: 210px; max-width: 210px;
}
.wrap2.triple { flex-direction: row; }
</style>
</head>
<body>
<h4>Case1:1個の場合</h4>
<div class="wrap1">
<div class="img">画像1</div>
</div>
<h4>Case1:2個の場合</h4>
<div class="wrap1">
<div class="img">画像1</div>
<div class="img">画像2</div>
</div>
<h4>Case1:3個の場合</h4>
<div class="wrap1">
<div class="img">画像1</div>
<div class="img">画像2</div>
<div class="img">画像3</div>
</div>
<h4>Case2:1個の場合</h4>
<div class="wrap2">
<div class="img">画像1</div>
</div>
<h4>Case2:2個の場合</h4>
<div class="wrap2">
<div class="img">画像1</div>
<div class="img">画像2</div>
</div>
<h4>Case2:3個の場合</h4>
<div class="wrap2 triple">
<div class="img">画像1</div>
<div class="img">画像2</div>
<div class="img">画像3</div>
</div>
</body>
</html>
PHPでアップロード数に応じてif分岐を使い、CSSの表示を切り替えることが可能そうなのでそちらを先ず試してみて、不可能であればこちらの方法を代用させていただきます。勉強になりました、コード提示ありがとうございます。
No.2
- 回答日時:
$imgorder = 'solo' または 'duo' または 'trio';
<style>
.billboard_article_area { /*共通の書式*/ }
.billboard_article_area.solo { /*1個の画像の書式*/ }
.billboard_article_area.duo { /*2個の画像の書式*/ }
.billboard_article_area.trio { /*3個の画像の書式*/ }
</style>
<div class="billboard_article_area <?php echo $imgorder; ?>">
画像
</div>
回答ありがとうございます、echo部分はウイルス対策などを施したディレクトリからのものを使用したいのですが、そちらでも応用可能でしょうか?
<div class="billboard_article_area">
<div id="billboard_toggle_target">
<div class="billboard_uploadFiles_area">
<!-- <label>添付ファイル#1</label> -->
<div class="viewer"><?php echo $view[0]; ?></div>
</div>
<div class="billboard_uploadFiles_area">
<!-- <label>添付ファイル#2</label> -->
<div class="viewer"><?php echo $view[1]; ?></div>
</div>
<div class="billboard_uploadFiles_area">
<!-- <label>添付ファイル#3</label> -->
<div class="viewer"><?php echo $view[2]; ?></div>
</div>
</div>
No.1
- 回答日時:
こんばんは
単純に画像の数で並びを変えたいだけなら、
・インライン要素にして並べる(float等でも可)
・flex あるいは grid レイアウトで並べる
等の方法で、3個目から次の行になるようにしておけば済みそうですが?
サイズがどのように決まっているのか不明ですが、親要素の幅を画像2個分にしておけば、3個目から次の行に送られると思います。
そこまでする必要があるのかどうか不明ですけれど、個別に3種類のレイアウトをCSSで記述しておく方法も考えられます。
それぞれにクラス名を設けておいて、画像の数によって、親要素にそのクラス名を付与することで、適用するCSSを変えることが可能になるでしょう。
回答ありがとうございます、CSSで2個の場合は縦並び、3個の場合は横並び+下の段に1個回り込むという構想で考えていたので、3個目から次の行というのは考えておりませんでした…
PHPで方法を模索しているのですが、一部のみfunctions.php(他の処理が書かれている)以外で別にcss.phpを作成して読み込ませることは可能でしょうか?
※参考サイト
http://103px.blog.fc2.com/blog-entry-19.html
https://fantastech.net/php-css
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
掲示板を作成しておりアップロ...
-
フォームで戻った際に入力済み...
-
$_SESSIONに渡した後はそのまま...
-
PHP8でWarning:Undefined varia...
-
BASIC認証のフォームをデザイン...
-
入力フォームの空白や改行を制...
-
Q&Aサイトを作成していてURLの...
-
PHPで画像の渡しが上手く行きま...
-
composerをインストールしたい...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 特定の範囲を指定したい ワ...
-
WordPressのLighting(テーマ)に...
-
■pukiwikiについての質問です。
-
URLから変数が渡らない。
-
PHP初心者です。
-
文字列連結がうまくいきません
-
素人な質問ですが、PHPのURLを…
-
XAMPPについて
-
phpBBのFAQの内容を変更したい...
-
ランキングを表示する際の画像...
-
ワードプレス index.phpの差し...
-
phpの中にphpを(wordpres関連...
-
WP/ 記事タイトルをクリックさ...
-
Wordpressで記事がない場合にメ...
-
phpの構成(wordpress)
-
Advanced Custom Fieldsの出力
-
Google Adsenseのモバイル向け...
-
wordpressの記事一覧が文字化け
-
PHP記述に便利なソフトを教...
-
wordpress パーマリンク設定時...
おすすめ情報