2016-09-12 3 views
1

htmlでUIをデザインするのが初めてです。私は、参照画像ごとにデザインする必要があります。同じデザインのソースコードが必要でした。必要な作業をしてください。サークルを3つの部分で作成し、HTML/CSS /スクリプトの各部分からアクションを実行します。

サークルには3つの部分があります。各パーツをクリックしながらイベントが行われます。

https://drive.google.com/file/d/0B8QaA3VryqygYU9valJoYm9WSEU/view?usp=sharing

+1

希望これはStackOverflowのSahanaに役立つhttp://jsfiddle.net/danield770/hwpa0uk1/9/ – Sasikumar

+0

歓迎されるであろう。可能な限り最善の助けを得るには、[質問する方法](http://stackoverflow.com/help/how-to-ask)のページにアクセスしてください。ここで、コミュニティが受け入れた質問をどのようにするかを知ることができます。 –

+0

ありがとうsasi !. +閉鎖のデザインを得ると本当に役に立ちます+ – Sahana

答えて

0

CSSでこのようなセグメント化された円を作成することが可能です。まず、コンテナ要素にborder-radius: 50%;の円を作成します。あなたはtransformとあなたのセグメントを作成より:

transform: rotate(-60deg) skewY(30deg) scale(1.2); 

説明:rotateを使用すると、skewであなたが円の中心のために必要な角度を作成し、scaleであなたはセグメントがいっぱいいることを確認し、その適切な場所に、各セグメントを配置することができます国境までの円。最後に、内部円の要素を作成するだけで完了です。

セグメントをクリック可能にするには、onclickイベントハンドラまたはjQuerys click()関数を使用できます。

this questionも参照してください。

.pie { 
 
    position: relative; 
 
    margin: 1em auto; 
 
    border: 4px solid black; 
 
    padding: 0; 
 
    width: 15em; 
 
    height: 15em; 
 
    border-radius: 50%; 
 
    list-style: none; 
 
    overflow: hidden; 
 
} 
 
.slice { 
 
    overflow: hidden; 
 
    position: absolute; 
 
    top: 0; 
 
    right: 0; 
 
    width: 50%; 
 
    height: 50%; 
 
    transform-origin: 0% 100%; 
 
    border: 2px solid black; 
 
    box-sizing: border-box; 
 
    
 
} 
 
.slice-contents { 
 
    position: absolute; 
 
    left: -100%; 
 
    width: 200%; 
 
    height: 200%; 
 
    border-radius: 50%; 
 
} 
 
.slice:nth-child(1) { 
 
    transform: rotate(-60deg) skewY(30deg) scale(1.2); 
 
} 
 
.slice:nth-child(1) .slice-contents { 
 
    transform: skewY(-30deg); /* unskew slice contents */ 
 
    background: lightblue; 
 
} 
 
.slice:nth-child(2) { 
 
    transform: rotate(60deg) skewY(30deg) scale(1.2); 
 
} 
 
.slice:nth-child(2) .slice-contents { 
 
    transform: skewY(-30deg); /* unskew slice contents */ 
 
    background: lightgreen; 
 
} 
 
.slice:nth-child(3) { 
 
    transform: rotate(180deg) skewY(30deg) scale(1.2); 
 
} 
 
.slice:nth-child(3) .slice-contents { 
 
    transform: skewY(-30deg); /* unskew slice contents */ 
 
    background: orange; 
 
} 
 
.inner-pie { 
 
    position: absolute; 
 
    width: 3em; 
 
    height: 3em; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
    border-radius: 50%; 
 
    border: 4px solid black; 
 
    background: white; 
 
}
<ul class='pie'> 
 
    <li class='slice'> 
 
    <div class='slice-contents'>click 1</div> 
 
    </li> 
 
    <li class='slice'> 
 
    <div class='slice-contents'>click 2</div> 
 
    </li> 
 
    <li class='slice'> 
 
    <div class='slice-contents'>click 3</div> 
 
    </li> 
 
    <li class='inner-pie'> 
 
    </li> 
 
<ul>

+0

私はテキストを水平に表示しようとしていました。しかしそれは正しく来なかった。あなたはこれを助けることができますか?例えば。スライスコンテンツのコンテンツは、第1スライスのTOP、第2スライスと第3スライスのLEFTとRIGHTのように表示されます。また、円内をクリックする必要があるクリックイベントを発生させたいが、境界線からのアクションはない。 – Sahana

+0

@Sahana喜んで助けてくれました。私はupvoteをapreciate /受け入れ:)上記のあなたのコメントに記載されている問題については、単に別の質問をしてください。 – andreas

関連する問題