角丸とコンテンツクリッピング: 予期されるのか、それとも予期しないのか?
Web デザインでは、角丸 (境界線の半径) がよく使用されます。視覚的に魅力的なレイアウトを作成したい。ただし、コンテンツがコンテナの丸い端を超えて広がっているように見える場合、不可解な問題が発生します。
事例:
次の HTML と CSS を考えてみましょう:
.progressbar { height: 5px; width: 100px; border-radius: 5px; } .buffer { width: 25px; height: 5px; background: #999999; }
<div class="progressbar"> <div class="buffer"></div> </div>
この例では、クラス「progressbar」の div は角が丸くなっていますが、その中の div (「buffer」) はこれらの制約から解放され、湾曲したエッジの外側に伸びているように見えます。
明らかになった真実:
驚くべきことに、この動作は Web ブラウザーによって意図されています。 CSS 仕様によれば、要素 (div を含む) のデフォルトのオーバーフロー値は「visible」であり、コンテンツが要素の境界を越えて拡張できるようになります。
ただし、「border-radius」プロパティは、要素の背景であり、そのコンテンツはクリップされません。コンテンツを曲線の境界線にクリップするには、オーバーフロー値を「非表示」や「スクロール」などの「表示」以外の値に設定する必要があります。
Solution Nirvana:
この問題を解決するには、次の変更されたスニペットに示すように、コンテナー (「progressbar」) のオーバーフロー プロパティを「hidden」に設定するだけです。
.progressbar { height: 5px; width: 100px; border-radius: 5px; overflow: hidden; }
これにより、コンテナ内のコンテンツがコンテナは湾曲したエッジに適切にクリップされ、望ましい視覚効果が得られます。
以上がWeb デザインにおいてコンテンツが角の丸い部分を超えて拡張されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。