No.1
- 回答日時:
後尾を非表示にするのですよね。
だったらてっとり早いのは次のセルにデータをいれることです。
次のセルにデータがはいっていたらセルのデータの後尾は当然ながら表示されません。
何もデータがなければ空白のデータをいれてください。
ありがとうございます。
次のセルにデータをいれるというのが良く分かりません。
自動改行させずに、改行される部分より後は非表示にしたいと思っています。
例えば、次のコードはスマホで表示すると2行になってしまいダサいのです。
<tr>
<td>あいうえお</td>
<td>かきくけこ</td>
<td>さしすせそ</td>
<td>たちつてと</td>
<td>なにぬねの</td>
</tr>
よろしければ見本コードをご教示ください。
No.3
- 回答日時:
zyousuke さん
・・・・1行で表示できるように後尾を非表示にするには、どうすれば良いですか。・・・・・・・・
word-break: keep-all; overflow: hidden;
を使います。
例↓
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
td {
display: inline-block; width: 8rem;
word-break: keep-all; overflow: hidden;
}
td:last-child {
width: 12rem;
}
</style>
</head>
<body>
<table border="1">
<tr>
<td>あいうえお</td>
<td>かきくけこさしすせそ</td>
<td>たちつてとなにぬねのはひふへほ</td>
</tr>
</table>
</body>
</html>
ありがとうございます。
いただいたコードを試しました。
このコードで、セル内で改行されなくなりました。
しかし、スマホなど小さい画面で見ると3個目のセルが2行目に表示されてしまいました。
またデータに空白文字がある場合には、セル内での改行も発生してしまうようです。
簡単に考えていましたが難題でした。
No.4
- 回答日時:
tdタグに以下のcssを適用させる。
td {
overflow: hidden;
white-space: nowrap;
max-width: 200px;←←←←セルサイズを書く
}
ありがとうございます。
overflow: hiddenで尻をカットし、
white-space: nowrapで改行を禁止する。
いい感じです。
しかし、max-widthで幅を制限してしまうと、PCなど大きい画面で見た時も小さいテーブルになってしまい、
また、出来ればセル幅は、他の列との兼ね合いでなるべく大きくなるようにしたいのです。
例えば1列目と2列目が50pxで足りる時は、3列目の幅をなるべく大きくして、カットされる部分を少なくしたいです。
要望が多く恐縮です。
No.5
- 回答日時:
・・・・空白文字がある場合には、セル内での改行も発生・・・・・・
こうしたらどうですか。↓
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<style>
tr{ display: flex; width: 60vw;} /* 60vw 値は任意に設定 */
td {
white-space: nowrap; overflow: hidden;
}
/* 以下数値はセル幅対応で設定 */
td { flex: 2; }
td:first-child { flex: 1; }
td:last-child { flex: 3; }
</style>
</head>
<body>
<table border="1">
<tr>
<td>あいうえお</td>
<td>かきくけこさしすせそたちつてと</td>
<td>abcdefg hijklmnopqrstuvwxyz</td>
<td>なにぬねの はひふへほまみむめも やいゆえよらりるれろわいうえを</td>
</tr>
</table>
</body>
</html>
いいですね!
display: flexは良く分からないのですが、これとwidth: 100vwを組み合わせると、テーブル幅が画面いっぱいに広がって良い感じになりました。
つまりvwはビューポート幅に対するパーセンテージを設定する場合に使う単位なのですね。
さらにmax-width: 100vwとすると、データの長さによってテーブル幅が伸縮するようになりました。
ただしdisplay: flexとするとborder-collapseが無効化されるようで、細かいですが微妙に気になります。
しかし当初の要望をほぼほぼ解決していただき満足です。
気が向いたらborder-collapseの件も教えてください。
No.6
- 回答日時:
>>PCなど大きい画面で見た時も小さいテーブルになってしまい・・・
これは、同一ソースをPCでもスマホでも機器に応じたスタイルで表示したいと言う事を実現するレスポンシブデザインの範疇の話です。
ブラウザの横幅を見て、PCと判断したらPC専用のCSSを当てる、スマホと判断したら、スマホ専用のCSSを当てる・・・
こういう事をしないと出来ないのです。
詳細はレスポンシブデザインで検索してやり方を学んで下さい。
htmlのcss宣言時にブラウザの横に応じて当てるcssファイルを別ファイルにします。
つまり、cssファイルはPC用とスマホ用の2個準備します(当然ファイル名は異なる)
現時点の主流は、こういうレスポンシブデザインなのです。
私が作ったほとんどのページはメタタグでビューポートの設定をするだけで、ほぼレスポンシブデザインが完成すると考えており、レスポンシブデザインのために別々のファイルを用意するというのは消極的です。
そしてNo.5guraさんのコードでは、border-collapseが無効化されてしまうという問題を除いて、当初の要望がほぼ解決しました。
出来ればこのコードをさらに改善させてborder-collapseを有効化したいと考えています。
いかがでしょうか。
No.7
- 回答日時:
タブレットの横長配置のときは、AndroidやiOSであっても、PCと同じ配置を基本にするのが質問者の意図でしょうから、アプリの横幅で分岐してはどうでしょう?
この方法だと、逆にPCでもブラウザのウィンドウ幅を小さくすると、非表示になってしまいますが…
具体的な方法は、非表示する方法は既に他の方が書かれているので、分岐部分だけ書き込むと
/* 最初にスマホ、PCどちらでも良いのでメインとする設定を書く */
@media screen and (width <= 42em), screen and (width <= 480px) {/* 寸法は自分の意図に合わる */
/* 上の例は <= (以下) を条件としているので、幅の狭い側を意味するが、
メインでなくもう一方の辺こする側の設定を書く */
}
といった要領でできるのではないでしょうか
@media初めて知りました。
しかしNo.5guraさんのコードを使う事によって、別々の設定を用意する事無く、本件の要望を解決する事が出来ました。
しかし、guraさんのコードを使うとborder-collapseが無効化されてしまうという新たな問題が発生してしまい、今度は、これを解決したいと思っています。
気が向いたらguraさんの回答とお礼欄の内容について、ご教示ください。
No.8
- 回答日時:
No.6続き
ザックリと緊急対処法を
①htmlのheadに以下1行追加
<meta name="viewport" content="width=device-width, initial-scale=1" />
②現在のcssに以下を追加
td {overflow: hidden; white-space: nowrap;max-width: 1000px;}
@media screen and (max-width: 640px) {
td {overflow: hidden; white-space: nowrap;max-width: 200px;}
}
説明
1000pxと言うのはpcでのカット対象幅(適宜変更して下さい)
200pxはスマホでのカット対象幅(適宜変更して下さい)
640pxはブラウザで有る事を認識するマックス幅(適宜変更して下さい)
640px以下はスマホと認識。
ありがとうございます。
良く分からないのですが、trにdisplay: flexとmax-width: 100vwを設定する事で、設定を2通り用意する事なく、自動伸縮するテーブルが出来上がり、気に入りました。
しかしdisplay: flexを使うと、なぜかborder-collapseが無効になってしまい、微妙に気になります。
table { border-collapse: collapse }と、tr { display: flex }は同時に使えないのでしょうか。
No.9
- 回答日時:
zyousuke さん
・・・・ただしdisplay: flexとするとborder-collapseが無効化されるようで、・・・・・
table 特有のレイアウトの機能を殺しても border-collapse は機能させろと「虫」の良いことを言っても、「無視」されますね。
その時は無茶や我儘は言わずに、collapse の機能を自ら組み込めばよいでしょう。↓
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<style>
tr{ display: flex; max-width: 70vw; border: solid 1px; } /* tr の border 付加 */
tr:nth-child(n+2){ border-top: 0px; } /* 2番以降の border-top 除去 */
td { white-space: nowrap; overflow: hidden; }
td { flex: 2; border-right: solid 1px; } /* セルの右にボーダー */
td:first-child { flex: 1; }
td:last-child { flex: 3; border-right: 0px; } /* 最終セルの右にボーダー無し */
</style>
</head>
<body>
<table>
<tr>
<td>あいうえお</td>
<td>かきくけこさしすせそたちつてと</td>
<td>abcdefg hijklmnopqrstuvwxyz</td>
<td>なにぬねの はひふへほまみむめも やいゆえよらりるれろわいうえを</td>
</tr>
<tr>
<td>かきくけこさしすせそたちつてと</td>
<td>あいうえお</td>
<td>abcdefg hijklmnopqrstuvwxyz</td>
<td>なにぬねの はひふへほまみむめも やいゆえよらりるれろわいうえを</td>
</tr>
<tr>
<td>abcdefg hijklmnopqrstuvwxyz</td>
<td>なにぬねの はひふへほまみむめも やいゆえよらりるれろわいうえを</td>
<td>あいうえお</td>
<td>かきくけこさしすせそたちつてと</td>
</tr>
</table>
</body>
</html>
ありがとうございます。
display: flexはテーブルの機能を殺す設定なのですね。
しかしborder-collapseに頼らなくても、罫線の表示を手動で細かく調整すれば、同じ見た目に出来るのですね。
ところで前のお礼の時には気付かなかったのですが、改めて確認してみると、また、また1つ腑に落ちない点を見つけました。
それはmax-widthの仕様についてです。
width: 100vwにするとテーブル幅が画面いっぱいに広がります。
ですから私は、これの応用でmax-width: 100vwにすれば、データ長に応じてテーブル幅が自動的に伸縮すると思い込んでいたのです。
しかし、実際に長いデータを入れてみたらテーブル幅は画面の60%ぐらいまでしか伸びませんでした。
max-width: 200vwとしても、やはり画面の60%ぐらいにしかなりません。
max-widthの使い方を間違えているのでしょうか。
この事について解説をお願いします。
m(__)m
No.10
- 回答日時:
>>display: flexを使うと、なぜかborder-collapseが無効になってしまい、
何処の枠間が無効になると言ってます?
border-collapse: collapseをtable全体に設定してるので、table枠とtr枠のスペースが無くなる筈ですが・・・。
border-collapseを設定すると、各セルの線が重なって1本になるはずですが、display: flexも同時に設定すると、各セルの線はくっつくだけで重なりません。例えばborder-width: 1pxとしている場合には、となり同士の線がくっついて線幅が2pxとなり、これが微妙に気になるのです。
ただしdisplay: flexはいわばテーブルの機能を殺す設定ですので、この挙動はごく真っ当な物だそうで、どうしても線を重ねたいなら、手動で上下(および左右)どちらか1本だけ線を表示する設定にして対応するしかないそうです。
そして、この件については私も納得したところです。
しかし新たな疑問としてNo.9guraさんの所にも書いたのですが、max-widthの挙動が意図した通りにならない件を挙げさせていただきました。
guraさんのコードは、テーブル幅を画面の70%にして、各セルでは1行で表示しきれない部分は非表示にするという物だと思うのですが、実際にこのコードをブラウザーで読み込んで各セルを見てみると、全てのデータを表示しきれていないセルがあるにも関わらず、テーブル幅が50%ちょいぐらいにしか伸びていません。
さらにmax-width: 100vwとしてもテーブル幅はそれ以上伸びず、
この事からmax-widthの正しい使い方について解説を求めたところです。
ですからmax-widthの正しい使い方について、よろしければ先生の解説もお願いします。
m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- Windows 10 Win10 不要なアカウントを削除する方法について(自動サインイン) 2 2023/10/25 12:12
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(Microsoft Office) エクセルでの作成データをモニター画面内に収めたい。 1 2022/04/23 11:52
- Android(アンドロイド) Google Chromecast(グーグル クロームキャスト)について 1 2024/01/09 22:47
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
コードを書いて下さい( ; ; )写真有り
HTML・CSS
-
VBAに詳しい方教えてください。
Visual Basic(VBA)
-
現在のブックを閉じないで、マクロ抜きの(現在のブックの)コピーを作成したい
Visual Basic(VBA)
-
-
4
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
5
VBAを使用した時間管理
Visual Basic(VBA)
-
6
エクセルVBAにて =A1=B1とすれば A1とB1のセル内容が一緒だった場合 TRUE 違っていれ
Visual Basic(VBA)
-
7
プログラミング ソースコード
その他(プログラミング・Web制作)
-
8
PythonやJavaScriptのように実質的に数の桁数を無限に扱える言語と、全く無限に使えない言
JavaScript
-
9
正規表現で複数マッチ条件で悩んでいます。ABCならtrueABBならfalseADCならtrueと
その他(プログラミング・Web制作)
-
10
プログラミングを教えたいです。そういうSNSないですか?
その他(プログラミング・Web制作)
-
11
ブラウザ自体の事じゃなくてJavaScriptで書かれたブラウザ上で動作するアプリのことをなんといい
JavaScript
-
12
Excelはなんで先頭の0を消すんですか?しかもCSVとかもなんでそもそも勝手に元のデータ変えるのに
Excel(エクセル)
-
13
PHPでこのコード自体に意味は無いんですけど、上のifと下のifの違いってなんですか?個人的には下の
PHP
-
14
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
15
htmlの修正方法を教えていただきたいです。
HTML・CSS
-
16
ボタンが押されたらWebページの文字コードを 変える、というプログラミングを書きたいです。 目的は文
HTML・CSS
-
17
[初心者]javascriptのfor文でなぜか繰り返し処理をしない。理由がわかりません。
JavaScript
-
18
【JavaScript?HTML?】Webページでこのページは戻ることは出来ませんと表
JavaScript
-
19
プログラミング言語の制作方法について
C言語・C++・C#
-
20
Cellsのコードが打てません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
\\n \\r \\t について
-
ddの行の折り返しをしたいです...
-
Dreamweaverの改行コードをLFに...
-
なぜか<p> </p>が挿入され...
-
タブキーのようなタグ
-
テキストエリア内の改行禁止
-
改行できる・できない入力ボッ...
-
Dream Weaverの改行時にTabキー...
-
アコーディオン仕様の中の ul l...
-
ソースタグの表示の違い
-
mailtoで本文指定に改行をしたい
-
Hタグを改行禁止にしてspanのよ...
-
テキストエリア内の改行もその...
-
preタグがプロの現場であまり使...
-
文字の最後に半角空白が勝手に...
-
OCNメール作成時の改行について
-
テーブルの幅を固定するとnowra...
-
<br style="clear:both;">って...
-
テーブルのセルデータを自動改...
-
<TD><input type="text"></TD>...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルのセルデータを自動改...
-
テキストエリア内の改行禁止
-
長いURLを途中で改行(折り返す...
-
H1タグに改行の<br>を使う
-
\\n \\r \\t について
-
テーブルの幅を固定するとnowra...
-
テーブル内の文字列を改行させたい
-
<TD><input type="text"></TD>...
-
「:」について
-
PCの画面を縮小したらサイズ...
-
preタグがプロの現場であまり使...
-
改行できる・できない入力ボッ...
-
文字の最後に半角空白が勝手に...
-
Windowsのformでtextareaに入力...
-
XMLの改行方法とリンクの仕方
-
テキストエリア内の改行もその...
-
<br />タグの、brの後の半角ス...
-
htmlで文字列をクリップボード...
-
Hタグを改行禁止にしてspanのよ...
-
VBE でスペースと改行を見える...
おすすめ情報