「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > CSS3 のみを使用してインセット境界半径を作成するにはどうすればよいですか?

CSS3 のみを使用してインセット境界半径を作成するにはどうすればよいですか?

2024 年 12 月 21 日に公開
ブラウズ:212

How Can I Create Inset Border-Radius Using Only CSS3?

CSS3 での境界半径の挿入

CSS3 では、角が外側ではなく内側に湾曲する境界半径の挿入を実現できます。画像を使わずにチャレンジしてみてください。ただし、CSS3 グラデーションを利用する賢い解決策があります。

Lea Verou の独創的なアプローチでは、曲線を使用した一連の透明なグラデーションを作成し、境界線の半径が挿入されているような錯覚を作り出します。これらのグラデーションを正確に配置することで、望ましい角丸効果を実現できます。

以下に示すように、彼女の CSS コードは、望ましい inset border-radius:

div.round {
    background:
        -moz-radial-gradient(0 100%, circle, rgba(204,0,0,0) 14px, #c00 15px),
        -moz-radial-gradient(100% 100%, circle, rgba(204,0,0,0) 14px, #c00 15px),
        -moz-radial-gradient(100% 0, circle, rgba(204,0,0,0) 14px, #c00 15px),
        -moz-radial-gradient(0 0, circle, rgba(204,0,0,0) 14px, #c00 15px);
    background:
            -o-radial-gradient(0 100%, circle, rgba(204,0,0,0) 14px, #c00 15px),
            -o-radial-gradient(100% 100%, circle, rgba(204,0,0,0) 14px, #c00 15px),
            -o-radial-gradient(100% 0, circle, rgba(204,0,0,0) 14px, #c00 15px),
            -o-radial-gradient(0 0, circle, rgba(204,0,0,0) 14px, #c00 15px);
    background:
            -webkit-radial-gradient(0 100%, circle, rgba(204,0,0,0) 14px, #c00 15px),
            -webkit-radial-gradient(100% 100%, circle, rgba(204,0,0,0) 14px, #c00 15px),
            -webkit-radial-gradient(100% 0, circle, rgba(204,0,0,0) 14px, #c00 15px),
            -webkit-radial-gradient(0 0, circle, rgba(204,0,0,0) 14px, #c00 15px);
    background-position: bottom left, bottom right, top right, top left;
        -moz-background-size: 50% 50%;
        -webkit-background-size: 50% 50%;
    background-size: 50% 50%;
    background-repeat: no-repeat;
}

このクラスを要素に適用すると、ボーダー半径が挿入された要素が作成されます。この手法は rgba とグラデーションのサポートに依存しており、漸進的な強化戦略であることに注意することが重要です。古いブラウザまたはグラデーションをサポートしていないブラウザの場合は、サポートを提供するために画像ベースのフォールバックをお勧めします。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3