2013-12-17 6 views
5

":before"のような擬似クラスを使わずに、CSS3で次のような形にするにはどうすればよいですか?CSS3 Moon Eclipse shape

div{ 
    width: 100px; 
    height: 100px; 
    background-color: red; 
    border-radius: 100%; 
    position: relative; 
} 
div:before{ 
    content: ""; 
    width: 100%; 
    height: 110%; 
    background: gray; 
    position: absolute; 
    left: 5px; 
    top: -5%; 
    border-radius: 100%; 
} 
+0

[このウェブサイト](http://css-tricks.com/examples/ShapesOfCSS/)が役立つかもしれません。あなたの形状の例はありません。 – AfromanJ

+0

これも役立ちます:[CSS付きのフレキシブルなGoogleスタイルのローダー](http://lea.verou.me/2013/11/flexible-google-style-loader-with-css/) – Kobi

答えて

5

- (http://jsfiddle.net/aUdLr/2/ JSFiddleを参照)の前に、しかし、事は、私は灰色の領域にソリッド要素を持ってしたくないということです。

Eclipse shape

は、私はそれが非常に簡単で行いました

div{ 
    width: 100px; 
    height: 100px; 
    border-radius: 100%; 
    border-width: 0; 
    border-left:solid 10px red; 
} 

科学的に不正確な例:http://jsfiddle.net/aUdLr/4/

あなたは、境界線の幅を使用することができます

ボーダーが幅に追加されているため、外形はではなく、であることに注意してください。幅を小さくするか、Box-sizing: Border-boxを使用して補正することができます。私の心に来る

+1

n1、 transform:scaleX(0.8) 'あなたはそこにいます – Kos

+0

ありがとう、あなたのソリューションは関連しています。しかし、私は図形とまったく同じ形にしたい。私は別のものを試しましたが、それでも私が必要とするものではありません:http://jsfiddle.net/aUdLr/5/ –

1

最もシンプルなCSS3ソリューション:

div:before { 
    font: 80px serif; 
    color: red; 
    content: "("; 
} 

Here's a fiddle.

は(シェイプのコントロールの良い量をしたい場合は今seriously-、私はSVGを使用することをお勧めします。)

2

大きな円で囲まれた小さな円の効果を得るには、透明な要素に影を追加できます。

div{ 
    width: 100px; 
    height: 100px; 
    border-radius: 100%; 
    background-color:transparent; 
    box-shadow: -23px 0 0px -15px #ff8; 
} 

例:http://jsfiddle.net/aUdLr/6/

+0

複数のシャドウを持つ例:http://jsfiddle.net/aUdLr/7、http:// jsfiddle .net/aUdLr/8。これはかなり楽しいです。 – Kobi

+0

もう一つのオプションは、影の 'inset'を持っています:http://jsfiddle.net/aUdLr/9/。私はあなたが少し数字で遊ぶことで必要なものを手に入れることができると確信しています。 – Kobi