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

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

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

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

CSS

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

1回答

1247閲覧

画面上部から特定の要素までの長さを特定する方法

sabx

総合スコア200

HTML

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

CSS

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/06/16 14:56

聞きたいこと

Reactを使用して、下の画面のように緑色で囲まれた企業名が縦長に並んでいるような画面を作成しています。

イメージ説明

下の画像のように灰色背景の上部から、企業リストの一番下に存在しているNetflixの上部までの長さ(ピクセル数等)を取得する方法を模索していますが、なかなか見つかりません。

イメージ説明

補足

  1. 企業名はstateで管理されていて、stateを更新して企業が追加/削除等された場合、動的に長さを再度取得したい。
  2. Codesandboxにコードを載せておきます(Codesandbox)

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

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

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

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

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

guest

回答1

0

Element.offsetTopで取得できます。
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/offsetTop

ただし、offsetTopは対象要素を包含する「包含ブロック」の上辺からの距離です。
包含ブロックとは何なのかは、こちらの解説を読んでください。

https://developer.mozilla.org/ja/docs/Web/CSS/Containing_block

簡単に言うと、「対象の親要素をさかのぼっていって、一番最初にposotionがstatic以外の親要素の上辺からの距離」です。positionのデフォルトはstaticです。

codesandboxも見ました。現状ではNetflixの親要素(グレーのdiv)はpositionが無指定なのでoffsetTopで距離を測ることができません。
グレーのdivに包含ブロックを作る以外に特別な効果がないposition: relativeを指定すると、offsetTopでグレーdivの上辺からの距離を取得できます。

devToosで調べたところ
devToosで調べたところ
画面上での計測
画面上での計測

投稿2021/06/16 16:48

hope_mucci

総合スコア4447

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問