[解決済み] border-radiusはコンテンツを切り取るべきですか?
質問
コンテナに
border-radius
?
サンプル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>
見ての通り、私は
border-radius
をコンテナ上で使っている (
.progressbar
),
が、コンテンツ (
.buffer
) はコンテナの「外」に出る
. Google Chromeで見ています。
これは期待される動作なのでしょうか?
追伸:これは修正方法についてではなく、このように動作すべきかどうかについての話です。
どのように解決するのですか?
これは期待された動作なのでしょうか?
そうです、おかしな話ですが、実はそうなのです。その理由は次のとおりです。
デフォルトの
overflow
に対して
<div>
要素 (および他のほとんどのもの) は
visible
であること、そして
スペック
にはこのように書かれています。
overflow: visible
:
見える
この値は、コンテンツが切り取られていないこと、すなわち、ブロックボックスの外にレンダリングされる可能性があることを示す。
順番に §5.3 コーナークリッピング を Backgrounds and Borders モジュールの中で述べています。
ボックスの背景は、そのボーダー画像ではなく、適切な曲線にクリップされます (これは 'background-clip' によって決定されます)。 ボーダーまたはパディングのエッジにクリップする他の効果 (例えば 'visible' 以外の 'overflow') も曲線にクリップする必要があります。 置換された要素のコンテンツは、常にコンテンツエッジ曲線に切り取られる。また、ボーダーエッジの曲線の外側の領域は、要素に代わってマウスイベントを受け付けません。
強調した文章は、具体的には
overflow
以外の値である必要があります。
visible
(以外の値でなければならない(つまり
auto
,
hidden
,
scroll
など) を使って、コーナーがその子をクリップするようにします。
ボックスが可視オーバーフローを持つように定義されている場合、これはほとんどの視覚的要素のデフォルトであると述べたように、コンテンツはまったくクリップされないことになっています。そのため、角の四角い
.buffer
の丸みを帯びた角の上に
.progressbar
.
その結果、最も簡単な方法は
.buffer
の中でクリップすることです。
.progressbar
の丸い角の中でクリップするには
overflow: hidden
のスタイルを
.progressbar
で示されるように
この更新されたフィドル
.
関連
-
[css3]CSS3のダイヤモンドパズルは、divの背景画像を回転させない機能だけを実現するために
-
[CSSチュートリアル】ピュアCSSでDIVホバーを実現するサンプルコード(固定位置編)
-
[CSSチュートリアル】背景画像画面の適応的な実装を実現するCSS
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] textareaのresizableプロパティを無効にするにはどうしたらよいですか?
-
[解決済み] SCSSとSassの違いは何ですか?
-
[解決済み] リスト項目にマウスを置いたときに、カーソルを手の形に変えるには?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み】display:flexを使って残りの縦幅をCSSで埋める。
-
[解決済み] 'border: none' と 'border' のどちらを使うべきですか?0'?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】CSSスコープ(スタイル分割)の使い方まとめ
-
[CSSチュートリアル】シングルセレクトの折りたたみメニュー機能を実現するCSS
-
[CSSチュートリアル]cssのbackgroundとborderタグの例 詳細
-
[CSSチュートリアル】CSSのクラスとidの共通命名規則
-
[CSSチュートリアル】新しいCSS:whereと:is擬似クラス関数とは?
-
[CSSチュートリアル】CSSで炎のエフェクトを記述する方法
-
[CSSチュートリアル】擬似要素で実現する中空三角矢印とXアイコンの例
-
[CSSチュートリアル】CSSプロパティ*-gradientの有用性を探る
-
[css3] CSS3を使ってヘッダーアニメーション効果を作成する
-
[解決済み] IE9のborder-radiusと背景グラデーションのにじみについて