superellipse()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
superellipse() は CSS の関数で、楕円の曲率を定義するプロパティであり、角の形状を直接、または <corner-shape-value> キーワードを介して指定します。
構文
superellipse(infinity)
superellipse(4)
superellipse(1.7)
superellipse(0)
superellipse(-2.8)
superellipse(-3)
superellipse(-infinity)
引数
<number>-
数値で、
-infinity以上infinity以下です。
返値
超楕円図形です。
解説
superellipse() 関数は、corner-shape の値を指定するために使用する超楕円図形を返します。超楕円とは、矩形と楕円の中間にある閉じられた曲線対称図形です。これは、2 つの軸の幾何学的機能を保持した楕円に似ています。
超楕円図形は変更された楕円を使用して計算されます。次の式は原点を中心とする楕円を定義します。
変数 a と b は楕円の半径を参照しており、x 座標と y 座標は楕円の円周上の点を表します。
円は、半径(前の式における a と b)が等しい長さの楕円です。a と b がともに r に等しい場合、円の式は次のように表されます。
この数式において、x と y は円の円周上の点の座標であり、r は円の半径で、円の中心は (0, 0) です。楕円は、円の図形を x 軸や y 軸に沿って変倍することで生成されます。
それぞれの場合、指数 2 を 2K に置き換えることで超楕円図形が作成されます。ここで K は superellipse() 関数に渡される引数であり、楕円の曲率を変更します。
次の図は、コンテナーの右上角に対する異なる superellipse() の値(infinity、1、0、-1、-infinity)を示しています。
Kの値が0の場合は、直線を生成します。この値は面取りされた角を作成するために使用でき、<corner-shape-value>のbevelキーワードに相当します。Kの値が1の場合は、通常の楕円を生成します。roundキーワードに相当します。Kの値が>1の場合は、もっと正方形に近い楕円図形を生成します。2はsquircleキーワードに相当します。Kの値がinfinityの場合は、完全な正方形を生成します(squareキーワードに相当します)が、Kの値が10以上であれば、正方形とほとんど見分けがつきません。Kが負の値であれば、 凹曲線を生み出し、結果として角の形状は内側に湾曲した、あるいは「くり抜かれた」図形になります。K値が-1の場合、scoopキーワードに対応し、-infinityの場合、notchキーワードに対応します。
負または正の値を持つ超楕円は、その反対の値を持つる超楕円に対して対称に現れます。
メモ:
引数 K にどのような値が渡されても、superellipse() 関数の返値はその K 値に対して常に同じになります。この値を 2 つの要素に適用した場合、ボックスサイズや border-radius の値が異なると、角の形状の外観が異なる可能性ががあります。
形式文法
<superellipse()> =
superellipse( <number> |
infinity |
-infinity )
例
>superellipse() 値の比較
この例では、2 つの <input type="range"> スライダーにより、多数の異なる corner-shape の superellipse() 値と border-radius 値を切り替え、それぞれの値がコンテナーに与える効果を比較できます。簡潔化のためコードは省略してありますが、superellipse 値の比較に関する完全な説明は、corner-shape のリファレンスページで提供されています。
メモ:
<corner-shape-value> 値の比較の例も参照してください。
仕様書
| Specification |
|---|
| CSS Borders and Box Decorations Module Level 4> # funcdef-superellipse> |