2017-12-08 14 views
1

Iは、いくつかのクエリ上記のスニペットにおいてCSSのオーバーフロープロパティは実際にどのように機能しますか?

.outer-div { 
 
    display: flex; 
 
    position: relative; 
 
    height: 3.5em; 
 
    width: 20%; 
 
    border: 2px solid #000000a3; 
 
    margin-left: 300px; 
 
    align-items: center; 
 
    border: 1px solid green; 
 
} 
 
.inner-div { 
 
\t border: 1px solid blue; 
 
    position: absolute; 
 
    right: 1%; 
 
    font-size: 40px; 
 
}
<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <div class = "outer-div"> 
 
    <div class = "inner-div">HelloWorld</div> 
 
    </div> 
 
</body>

、このコードスニペット以下CSS- チェックでプロパティをオーバーフローに関連した、内側のdivコンテナがで溢れていますx方向であり、y方向ではない。しかし、overflow: scrollを追加すると、スクロールバーが両方向に追加されますが(ここまで)、内側のdivコンテナにもかかわらず、x方向ではなくy方向のスクロールバーを使用できますx方向にオーバーフローしている。それはなぜそうですか? チェックこのスニペット、

.outer-div { 
 
    display: flex; 
 
    position: relative; 
 
    height: 3.5em; 
 
    width: 20%; 
 
    border: 2px solid #000000a3; 
 
    margin-left: 300px; 
 
    align-items: center; 
 
    border: 1px solid green; 
 
    overflow: scroll; 
 
} 
 
.inner-div { 
 
\t border: 1px solid blue; 
 
    position: absolute; 
 
    right: 1%; 
 
    font-size: 40px; 
 
}
<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <div class = "outer-div"> 
 
    <div class = "inner-div">HelloWorld</div> 
 
    </div> 
 
</body> 
 
</html>

私の最後のクエリは、私はハイフンでテキスト区切る場合、である( - )またはスペース、を、それが2行に分割していない理由同じ行で続行しますか?私は外側のコンテナのサイズのためかもしれませんが、スペースを使わずにテキストを入力すると分割されないのはなぜですか?チェック以下、

.outer-div { 
 
    display: flex; 
 
    position: relative; 
 
    height: 3.5em; 
 
    width: 20%; 
 
    border: 2px solid #000000a3; 
 
    margin-left: 300px; 
 
    align-items: center; 
 
    border: 1px solid green; 
 
} 
 
.inner-div { 
 
\t border: 1px solid blue; 
 
    position: absolute; 
 
    right: 1%; 
 
    font-size: 40px; 
 
}
<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <div class = "outer-div"> 
 
    <div class = "inner-div">Hello World</div> 
 
    </div> 
 
</body> 
 
</html>

おかげであなたの時間を与えるために、あなたの助けのためにたくさん!

+0

ポジションアブソリュートは、アンカー方向(あなたの場合は「右」)のコンテナのサイズを考慮しません。 – Yashas

答えて

1

inner-divクラスはdivにposition: absoluteプロパティを与えます。これにより、内部divは親divのサイズとは無関係になり、親コンテナの高さと幅を明示的に指定し、inner-divの固定を停止するまで(常にright,top,leftbottomを使用して)オーバーフローを続けます。 inner-divを固定しないことによって、絶対配置された要素の目的は敗北します。 rightを削除して水平スクロールバーを戻すことはできますが、そのようなことは起こりたくありません。

一言で言えば、絶対配置された要素はフローの一部ではなく、別の次元に存在します(親divでは表示されません)。


これがワードラッピングの仕組みです。行の単語が幅に収まらない場合、単語は空白に遭遇した後に次の行に移動します。スペースのあとにワープさせたくない場合は、改行しないスペース(例:&nbsp;)を使用するか、white-space: nowrap;を使用してください。

+0

ありがとう.... –

0

divには、絶対配置されているので水平スクロールバーがありません。 .inner-divの位置プロパティをabsoluteまたはfixed以外に設定すると、divに目的のスクロール機能が適用されます。

行分割は、単語やハイフンの末尾に改行する自動改行のためです。

関連する問題