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

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

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

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

CSS

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

Q&A

解決済

2回答

2039閲覧

cssでtableレイアウトを作成したが要素がおかしい

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/08/27 03:05

編集2018/08/27 03:31

やったこと

HTML,cssでtableタグを使用せずに
cssでtableレイアウトを行った。

2列あるのだが、文字が長く入る方は三点リーダーを表示させるようにした。
だが、三点リーダーしない方と三点リーダーする方で位置がずれてしまい、原因が
わからなかった。

なぜ、ずれてしまうのでしょうか?

コード

html

<ul class="list"> <li class="listItem"> <p class="text">テスト</p> <div class="mainText">サンプルサンプルサンプルサンプルサンプルサンプルサンプル</div> </li> </ul>

css

.list { margin: 0; padding: 0; list-style-type: none; } .listItem { border-top: 1px solid #333; border-bottom: 1px solid #333; } .text { display: inline-block; border-right: 1px solid #333; padding-right: 8px; margin: 0; } .mainText { display: inline-block; width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

画像
イメージ説明
イメージ説明

.textにもhiddenを指定した場合
イメージ説明

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

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

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

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

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

spookybird

2018/08/27 03:16

あなたが提示したコードで画面を表示してみたものがこれです。https://jsfiddle.net/ 何が問題なのか、このコードからはわかりません。問題の事象が再現できるコードを提示してください。
退会済みユーザー

退会済みユーザー

2018/08/27 03:24

問題が起きたコードを提示しています。ブラウザ依存なんですかね
退会済みユーザー

退会済みユーザー

2018/08/27 03:33

ありがとうございます。ちなみに https://jsfiddle.net/9fb26v38/ こちらだとspookybirdさんの方ではずれていないですか?今確認させて頂いたのですがやはりずれています。。
kei344

2018/08/27 07:22

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答2

0

ベストアンサー

inline-blockで並べるときはvertical-alignを指定しないとずれますよ。
.textと.mainTextに vertical-align:top;でもいれれば解決するかと

投稿2018/08/27 04:13

sousuke

総合スコア3828

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

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

退会済みユーザー

退会済みユーザー

2018/08/27 04:18

上で書き忘れたのですがvertical-align:bottom;を指定して解決はしていました。 なぜそうなるのかを聞きたかったのですが、 `インライン要素のデフォルトがベースライン合わせ`だからずれてしまったってことなんでしょうか?
yukihisa

2018/08/27 04:49 編集

後出しが過ぎると回答してもらえなくなりますよ。 >flex使わない方法も知りたいだけです。 >今回flexを使わない方法でやったら原因がわからないバグが起きたので >なぜこうなっているのかを知りたかっただけです。 >上で書き忘れたのですがvertical-align:bottom;を指定して解決はしていました。 >なぜそうなるのかを聞きたかった これでは回答者が回答するために考えた時間がまるっと無駄になった+回答したら文句を言われただけになっています。 レイアウトに関しては他にもたとえば<p>タグを<div>で囲んで必要な部分をmainTextと同じ設定 にする(displayとoverflow)とか、体裁を気にしなければやり方自体はいくらでもあります。 デフォルトがベースライン合わせなのは正しいですが、原因はoverflow:hidden が指定されたことによって、「要素ボックスの垂直位置」がalignの対象になったためです。そのため、vertical-alignで強制的に位置あわせをするか、両方の要素にoverflow:hiddenを設定するというのが答えです。
退会済みユーザー

退会済みユーザー

2018/08/27 05:06

ありがとうございます。 ご指摘頂きありがとうございます。 以後気をつけます。。。
yukihisa

2018/08/27 05:14 編集

ちなみに、「inline-block overflow」でググると今回の現象について答えが書かれているページが一番にヒットします。 これを見ると「overflowが片方にしかないからずれる」「vertical-alignが指定されてないからずれる」と、回答者お二人の答えが両方とも正解だったことが分かると思います。
退会済みユーザー

退会済みユーザー

2018/08/27 05:20

ググってみます!ありがとうございました。
sousuke

2018/08/27 05:41

ちょっと見ないうちに…。私も詳しく存じ上げてはなかったのですが今回明確な回答を得るきっかけを得られたので良かったです。 inline-blockでheightを指定しないことがあまりなかったので慣習的にやっていましたので助かりました。
yukihisa

2018/08/27 06:01

sousuke 様 横から長々と書いてしまい申し訳ないです。 夏休みだからか最近質問する⇒回答がつく⇒後付で新しい設定が出てくる⇒繰り返し・・・や丸投げなものが多く、指摘するにも回答としては出揃っていたように見えたのでコメントで失礼しました。 実際はなんとなく対応方法は知っているだけで十分だったりしますよね! 僕も「なるものはなる」として使ってるものが多々あります、できれば全て理解して使いたいものですが。。。
guest

0

overflowの値が、.text.mainText で違うのが原因でしょう。
.textの方にもoverflow: hidden;を指定してあげると、縦位置が揃うと思います。

投稿2018/08/27 03:20

kszk311

総合スコア3404

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

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

kszk311

2018/08/27 03:24

ただ、これは「.listItem」に「display: flex;」かけたほうがいいかもしれませんね。
退会済みユーザー

退会済みユーザー

2018/08/27 03:30

flexの方は試したので、flex使わないやり方で試しています。。 ちなみに`.text`の方にもhiddenを指定したのですが、 `.text`と`.mainText`のラインは揃ったのですが下に余白が空いてしまいました。
kszk311

2018/08/27 03:41

flexを使わない理由はなんでしょうか?表示できているならそれでいいと思うのですが…。
退会済みユーザー

退会済みユーザー

2018/08/27 04:02 編集

特にはないですが、flex使わない方法も知りたいだけです。 今回flexを使わない方法でやったら原因がわからないバグが起きたので なぜこうなっているのかを知りたかっただけです。
kszk311

2018/08/27 05:08

そうですか、だとするとsousukeさんのおっしゃる通り、ずれる原因は「vertical-align:top;」を指定指定していないからですね。
退会済みユーザー

退会済みユーザー

2018/08/27 07:33

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問