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

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

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

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

CSS

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

Q&A

解決済

3回答

879閲覧

スクロールしても左に動かないのはなぜでしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

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

CSS

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

4グッド

1クリップ

投稿2020/01/30 00:42

html

1 2 3 4 <div class="box"> 5 <div class="a"> 6 a 7 </div> 8 <div class="b">b</div> 9 </div> 10 11

css

1 2.box { 3 background: red; 4 width: 100%; 5 height: 200px; 6 position: absolute; 7 color: #fff 8} 9 10.a { 11 background: #333; 12 width: 100%; 13 margin-left: -100px 14} 15 16.b { 17 background: #999; 18 width: 100%; 19 margin-left: 100px 20} 21

スクロールして左に動かないのに右には動きます。
boxaの文字は左にずれたままずっと見れないのでしょうか。

Lhankor_Mhy, s8_chu👍を押しています

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

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

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

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

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

guest

回答3

0

かつて、 Netscape や Internet Explorer などの古いブラウザが block-start, inline-start にあたる箇所を独自仕様により切り取っていました。これに端を発して、切り取られる領域へ要素を移動させることで、「視覚系ブラウザでは確認出来ず、スクリーンリーダーや検索エンジンにのみ認識可能なテキストを作る手法」が横行しました。

そのような状況で両方向へのスクロールを許可した場合、この手法を用いている多くの Web サイトのレイアウトに大きな影響を与えてしまいます。そこで互換性を考慮し、 CSS Overflow Module Level 3 では以下のようにスクロールコンテナの block-start, inline-start にあたる箇所のオーバーフローした領域を切り取らなければならないと決められました。簡単にいえば、 Lhankor_Mhy さんの回答にあるとおり、「実装上の問題が習慣化し事実上の仕様と化している」ということになります。

§ 3.3. Scrolling Origin, Direction, and Restriction

The initial scroll position, that is, the initial position of the box’s scrollable overflow region with respect to its border box, prior to any user or programmatic scrolling that changes it, is dependent on the box’s writing mode, and is by default the block-start/inline-start edge of the box’s padding edge.

Due to Web-compatibility constraints, UAs must clip the scrollable overflow region of scroll containers on the block-start and inline-start sides of the box.

投稿2020/03/27 04:49

編集2020/03/27 04:51
s8_chu

総合スコア14731

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

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

退会済みユーザー

退会済みユーザー

2020/03/27 07:18

丁寧なご回答ありがとうございます。
guest

0

ベストアンサー

確証はないのですが。

Generally, the content of a block box is confined to the content edges of the box. In certain cases, a box may overflow, meaning its content lies partly or entirely outside of the box, e.g.:

(略)

  • A descendant box has negative margins, causing it to be positioned partly outside the box.

Visual effects

勝手訳:一般にボックスの内容はボックス辺に収まっています。しかし一定の状況で、オーバーフロー、つまりボックスの外側に内容物の一部または全体があふれることがあります。たとえば:
(略)

  • ネガティブマージンを持つ子孫要素が、その一部をボックスの横に置く。

上記のように、CSS仕様の上では、ネガティブマージンに対してもスクロールさせて良いように思えます。

しかし、実際にはネガティブマージンに対して左スクロールを生じさせるブラウザを見たことがありません。
なので、実装上の問題が習慣化し事実上の仕様と化しているのではないかと思います。


一方で、このような左右非対称は、アラビア語などのRTLに対して(あるいは日本語のようなTB-RLにも)不利益があるのでは、とも思いますので、いずれ修正がなされるかもしれませんね。

投稿2020/01/30 01:59

編集2020/01/30 02:57
Lhankor_Mhy

総合スコア36074

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

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

0

そういう仕様のものです。

投稿2020/01/30 01:39

kyoya0819

総合スコア10429

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問