2016-06-28 7 views
-2

私は以下のapperently単純なCSSの問題を解決しようとしていますが、少しの時間を費やしています。CSSで幾何学的なバックグラウンドシェイプを実装する方法

マイダッシュボード画面には、現在デフォルトの正方形の背景形状と2文字のdivがあります。

各四角形のバックグラウンドの形状を、私たちのCMSのタスクの宛先を表す別の幾何学的形状に変更できるようにする必要があります。

図形にはステータスを表す別の色も必要です。

さまざまな形や色(ステータス)を切り替えることができる必要があります。

私は何が必要なのかを示す次のスクリーンショットを見ることができます。

どのようなヘルプは非常にappriciatedされます!

uml shapes

portal preview

+0

を見てみてください。これを純粋なものにするには、CSSは自分で少し努力する必要があります。 –

+0

新しいシェイプモジュール( 'shape-outside'などのプロパティ)が役に立ちます。 – gcampbell

答えて

2

私は正確にスクリーンショットのようにCSSを得ることができなかったことを謝罪、私は自分のベストを試してみました。

純粋なCSSだけで図形を作成することは可能です。各背景画像を作成し、正しいクラス名に追加し、各ステータスのクラス名を作成し、このスニペットで

#shapes { 
 
    margin-top: 25px; 
 
    display: flex; 
 
} 
 

 
#hexagon { 
 
    width: 25px; 
 
    height: 13.75px; 
 
    background: limegreen; 
 
    position: relative; 
 
} 
 

 
#hexagon:before, #hexagon:after { 
 
    content: ""; 
 
    position: absolute; 
 
    border-left: 12.5px solid transparent; 
 
    border-right: 12.5px solid transparent; 
 
    left: 0; 
 
} 
 

 
#hexagon:before { 
 
    top: -6.25px; 
 
    border-bottom: 6.25px solid limegreen; 
 
} 
 

 
#hexagon:after { 
 
    bottom: -6.25px; 
 
    border-top: 6.25px solid limegreen; 
 
} 
 

 
#hexagon:before, #hexagon:after, #diamond, #diamond:after, #star, #star-before, #star-after { 
 
    width: 0; 
 
    height: 0; 
 
} 
 

 
#diamond { 
 
    border: 12.5px solid transparent; 
 
    border-bottom-color: steelblue; 
 
    position: relative; 
 
    text-indent: -7px; 
 
    top: -15.5px; 
 
} 
 

 
#diamond:after { 
 
    content: ''; 
 
    position: absolute; 
 
    left: -12.5px; 
 
    top: 12.5px; 
 
    border: 12.5px solid transparent; 
 
    border-top-color: steelblue; 
 
} 
 

 
#circle { 
 
    padding-top: 3px; 
 
    background: turquoise; 
 
    border-radius: 12.5px; 
 
} 
 

 
#square { 
 
    background: orange; 
 
} 
 

 
#trapezoid { 
 
    border-bottom: 25px solid red; 
 
    border-left: 6.5px solid transparent; 
 
    border-right: 6.5px solid transparent; 
 
    height: 0; 
 
    width: 20px; 
 
} 
 

 
#tab { 
 
    height: 25px; 
 
    width: 35px; 
 
    background: lightgray; 
 
    position: relative; 
 
    border-top-right-radius: 25%; 
 
    border-bottom-right-radius: 25%; 
 
} 
 

 
#diamond, #circle, #square, #trapezoid, #tab, #star { 
 
    margin-left: 5px; 
 
} 
 

 
#circle, #square { 
 
    width: 25px; 
 
    height: 20px; 
 
    padding-top: 3px; 
 
} 
 

 
#square, #tab { 
 
    text-align: center; 
 
} 
 

 
#star { 
 
    margin: 5px 0; 
 
    position: relative; 
 
    display: block; 
 
    border-right: 25px solid transparent; 
 
    border-bottom: 17.5px solid gray; 
 
    border-left: 25px solid transparent; 
 
    transform: rotate(35deg); 
 
} 
 

 
#star:before { 
 
    border-bottom: 20px solid gray; 
 
    border-left: 7.5px solid transparent; 
 
    border-right: 7.5px solid transparent; 
 
    position: absolute; 
 
    top: -11.25px; 
 
    left: -16.25px; 
 
    display: block; 
 
    content: ''; 
 
    transform: rotate(-35deg); 
 
} 
 

 
#star:after { 
 
    position: absolute; 
 
    display: block; 
 
    top: 0.75px; 
 
    left: -26.25px; 
 
    border-right: 25px solid transparent; 
 
    border-bottom: 17.5px solid gray; 
 
    border-left: 25px solid transparent; 
 
    transform: rotate(-70deg); 
 
    content: ''; 
 
}
<div id="shapes"> 
 
    <div id="hexagon">ZY</div> 
 
    <div id="diamond">TE</div> 
 
    <div id="circle">TE</div> 
 
    <div id="square">TE</div> 
 
    <div id="trapezoid">TE</div> 
 
    <div id="tab">TE</div> 
 
    <div id="star">TE</div> 
 
</div>

+0

ありがとう@リチャードハミルトンそれは正しい答えのようです。例をありがとう、ありがとう! – alonblack

+0

問題ありません!私はそれをやる方法も学びたかったのです。それは私のプロジェクトの一つです。このウェブサイトは私を少しでも助けてくれました。 https://css-tricks.com/examples/ShapesOfCSS/ –

関連する問題