html - CSS div的嵌套问题?
黄舟
黄舟 2017-04-17 14:29:33
0
6
912

外层的p已经规定了height,为什么里面的p还能超出height的范围呢?尽管p是块级元素,但里层的两个p不是已经被包裹在外层的p范围了吗?
———————————————————————————————————————————
代码和效果

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(6)
阿神

リーリー リーリー

overflow 属性は、コンテンツが要素のボックスからオーバーフローした場合に何が起こるかを指定します。
デフォルトのオーバーフロー操作: 表示されます。 (コンテンツはトリミングされず、要素ボックスの外側にレンダリングされます。)

可能な値とオプション:

  • visible デフォルト値。コンテンツはトリミングされず、要素ボックスの外側にレンダリングされます。

  • 非表示のコンテンツはトリミングされ、残りのコンテンツは非表示になります。

  • スクロール コンテンツはトリミングされますが、ブラウザーには残りのコンテンツを表示するためのスクロール バーが表示されます。

  • auto コンテンツがトリミングされると、ブラウザーには残りのコンテンツを表示するためのスクロール バーが表示されます。

  • inherit は、オーバーフロー属性の値を親要素から継承することを指定します。

いいねを押す +0
大家讲道理

p はブロックレベルの要素であり、デフォルトでは水平に配置されません。この場合、2 つの ps は縦に並んでいます。私の理解では、DOM 内の現在のページ構造は正しく、視覚的な問題は CSS 設定のみが原因であり、DOM 自体とは関係ありません。しかし、投稿者の質問は設計に関する非常に良いバグの問題です。つまり、現在のコードに他の要素が追加されると、説明できないギャップが発生します。したがって、Web サイトをデザインするときは、DOM 構造と CSS を介したレイアウト方法も考慮する必要があります。

これがお役に立てば幸いです。

いいねを押す +0
PHPzhong

p 要素はデフォルトでブロック レベルの要素 (display:block) になります。同じレベルの各 p が独自の行を占有します。これは、2 つの内側の p 要素の合計の高さが外側の親を超えているためです。要素 p の高さなので、外側の親の場合はオーバーフローします。要素の高さが自立型の height:auto に設定されている場合、またはオーバーフロー非表示 (overflow:hidden) またはスクロール効果 (overflow-y:auto) を設定している場合、2 つの p が不足しても影響はありません。

いいねを押す +0
黄舟

これは、オーバーフロー値を設定していないためです。デフォルトでは、親 p コンテンツ内の要素のオーバーフロー値が表示されるため、オーバーフローした部分が親 p の高さを超えて表示されます。これは

で設定できます。

オーバーフロー:非表示

または

オーバーフロー:スクロール

は、親の幅と高さを超えたり、高さを

に設定したりすることによって、子要素がオーバーフローするのを防ぎます。

高さ:自動

また。

いいねを押す +0
大家讲道理

まず、p はブロックレベルの要素です。つまり、デフォルトの p は 1 行を占めます。幅を設定しても、1 行を埋めることはできません。

親 p の高さは 300、最初の子 p の高さは 200 なので、親 p に収まって左上隅に配置できます。問題ありません。

p は 1 行を占めるため、2 番目の子 p は最初の子 p の下に配置する必要があります。高さはまだ 200 であり、親 p の高さを超えるため、オーバーフローして表示されます。

いいねを押す +0
伊谢尔伦

p はデフォルトで 1 行を占めます。display:inline-block; を inline 要素に設定してはいかがでしょうか

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート