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

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

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

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

CSS

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

Q&A

1回答

533閲覧

比率を保ったまま収縮するtableを作りたい

yukarichang

総合スコア14

HTML

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

CSS

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

0グッド

2クリップ

投稿2021/06/24 13:56

添付のサイトのように、ビューポートの幅を変えても、正方形の比率を保ったままビューポートに付随するtableとdivを作りたいのですが、どのようなコードを書いたらいいか分かりません。

http://yuka141247.html.xdomain.jp
※添付サイトはimgを置いているだけです。

html

1<div class="wrap"> 2 <table> 3 <tr><th colspan="7">2021/6</th></tr> 4 <tr><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th></tr> 5 <tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr> 6 <tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr> 7 <tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr> 8 <tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr> 9 <tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr> 10 </table> 11 <div></div> 12</div>

css

1.wrap { 2 width: 80%; 3 margin: 0 auto; 4 display: flex; 5} 6 7.wrap table { 8 width: 490px; 9 height: 490px; 10 table-layout: fixed; 11 border-collapse: collapse; 12 border: 1px solid black; 13 text-align: center; 14} 15 16.wrap table td, .test table th{ 17 border: 1px solid black; 18} 19 20.wrap div { 21 width: 490px; 22 height: 490px; 23 background-color: #2cb4ad; 24}

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

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

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

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

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

guest

回答1

0

とりあえずそれっぽく動くものを...
widthとheightに使われている単位をvw(ビューポートのwidthに対する割合)にしただけです。
pxでやるならjsでビューポートなりに変更が生じたときに起動する縦横比を合わせるためのイベントを仕込むしか無いのかなぁ...と思います。

css

1.wrap { 2 width: 80%; 3 margin: 0 auto; 4 display: flex; 5} 6 7.wrap table { 8 width: 50vw; 9 height: 50vw; 10 table-layout: fixed; 11 border-collapse: collapse; 12 border: 1px solid black; 13 text-align: center; 14} 15 16.wrap table td, .test table th{ 17 border: 1px solid black; 18} 19 20.wrap div { 21 width: 50vw; 22 height: 50vw; 23 background-color: #2cb4ad; 24}

投稿2021/06/25 15:09

2ckD

総合スコア305

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

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

yukarichang

2021/06/27 13:11

vwを使うことによって正方形のままレスポンシブにできることは初耳でした。ありがとうございました。しかし、親要素にwidth:80%を指定することによってdivがえぐれて正方形を保てませんでした…
2ckD

2021/06/28 10:27

.wrap tableのheightを38vwくらいにするととりあえずそれっぽくなります。 以下は補足です。 tableは中にある文字のフォントやフォントサイズによってもtdのwidth、heightが変化するので、見るブラウザやOSが変われば多少ズレます。 投稿者様が提示されたものも数pxではありますが各tdのwidthはバラバラです。 もしこの誤差を許容できないなら上に書いたとおり、細かく設計する必要があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問