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

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

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

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

HTML

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

CSS

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

Q&A

解決済

3回答

1036閲覧

条件に応じてwidthの幅の数字を変更したい。

siroyama

総合スコア17

PHP

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/05/22 10:11

前提・実現したいこと

PHPでサイトを作成しています。

<li>の個数が条件により3個になったり、4個になったりする時に <li>のwidth指定をcalc(100%/3)にしたり calc(100%/4)にしたりするいい方法はないでしょうか。

条件みたいなもの

<li>はページにより、1〜6と変動する。

該当のソースコード

<nav> <ul id="pagenav"> <!-- この<li></li>の数が1〜6の間で変動します --> <li><a href="hogehoge.php">メニュー1</a></li> <li><a href="hogehoge.php">メニュー2</a></li> <li><a href="hogehoge.php">メニュー3</a></li> </ul> </nav>

css

#pagenav{ width: calc(100%/6);//←ここの数字を変動させたい cssで無理なのは理解してます。 }

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

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

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

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

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

guest

回答3

0

flexで、均等配置する幅以上同じサイズを、flexの小要素に指定すれば、同じ割合で配置されます。
100%と指定しておけば楽かと。

css

1.pagenav { 2 display: -webkit-flex; 3 display: flex; 4} 5.pagenav li{ 6 width: 100%; 7} 8

下記URLは、1~6のパターン見やすいようにちょっと調整しています。
https://codepen.io/sleepzzz/pen/KRELYq

投稿2018/05/22 15:34

編集2018/05/22 15:36
kszk311

総合スコア3404

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

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

kszk311

2018/05/22 15:39

もしくはtable + table-cell…
guest

0

Flexではどうなのですか?

CSS

1ul { 2 margin: 0; 3 padding: 0; 4} 5 6#pagenav { 7 display: flex; 8 width: 100%; 9} 10 11li { 12 flex-grow: 1; 13}

投稿2018/05/22 12:06

yoshinavi

総合スコア3523

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

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

0

ベストアンサー

実現方法

CSSのみで実現可能です。
親要素の大きさを変えるのではなく、子要素の大きさを1つ辺り決める事で解決します。

nth-child()などはとても便利なので良く調べる事を勧めます。

HTML

HTML

1 <nav> 2 <ul id="pagenav"> 3 <li class="item"><a href="hogehoge.php">メニュー1</a></li> 4 <li class="item"><a href="hogehoge.php">メニュー2</a></li> 5 <li class="item"><a href="hogehoge.php">メニュー3</a></li> 6 </ul> 7 </nav>

CSS

CSS

1 * { 2 padding: 0; 3 margin: 0; 4 } 5 6 #pagenav { 7 width: auto; 8 display: flex; 9 list-style: none; 10 text-align: center; 11 } 12 13 /* 1つの場合 */ 14 .item:only-child { 15 width: 100%; 16 } 17 18 /* 2つの場合 */ 19 .item:first-child:nth-last-child(2), 20 .item:first-child:nth-last-child(2) ~ .item { 21 width: calc(100%/2); 22 } 23 24 /* 3つの場合 */ 25 .item:first-child:nth-last-child(3), 26 .item:first-child:nth-last-child(3) ~ .item { 27 width: calc(100%/3); 28 } 29 30 /* 4つの場合 */ 31 .item:first-child:nth-last-child(4), 32 .item:first-child:nth-last-child(4) ~ .item { 33 width: calc(100%/4); 34 } 35 36 /* 5つの場合 */ 37 .item:first-child:nth-last-child(5), 38 .item:first-child:nth-last-child(5) ~ .item { 39 width: calc(100%/5); 40 } 41 42 /* 6つの場合 */ 43 .item:first-child:nth-last-child(6), 44 .item:first-child:nth-last-child(6) ~ .item { 45 width: calc(100%/6); 46 }

参考文献

下記のサイトを参考にすると分かりやすいと思います。

投稿2018/05/22 11:00

rrisland

総合スコア15

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

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

root_jp

2018/05/22 11:50

このやり方だと、何個になるか分からない時はどうすればいいんでしょうか?
root_jp

2018/05/22 11:51

あ、1〜6と決まっているのですね。失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問