2016-05-04 6 views
0

私はCSSで本当に新しく、以下の画像のようにdivの境界線として2線形勾配を作成する作業があります。エレメントに2つの異なる線形グラデーションボーダーを実装する方法は?

私はborder-imageを内側のものに使用しましたが、他の境界線を作成する方法はわかりません。

余分な擬似要素を使って
border-image: linear-gradient(#EEEEEE ,#666666, #EEEEEE) 1 1% !important; 

please see the attached picture.

+1

あなたは何を試してみましたか? –

+0

少なくとも1つのグラデーションを作成しようとしましたか? – Harry

+1

はい、私は内側のものにボーダーイメージを使用します。 border-image:線形グラデーション(#EEEEEE、#666666、#EEEEEE)1 1%!重要; – user3493678

答えて

2

私はそれだけで一つの要素(つまり、余分な擬似/実数要素でこれを行うことが可能であるとは思いません)border-imageを使用してください。しかし、スニペットのように擬似要素を使用して、親に1つの境界線を設定し、疑似要素にもう1つの境界線を設定することができます。単一の要素の使用

div{ 
 
    position: relative; 
 
    height: 200px; 
 
    width: 400px; 
 
    border-image-source: linear-gradient(to bottom, #FFFFFF, #CCCCCC 50%, #FFFFFF); 
 
    border-style: solid; 
 
    border-width: 5px; 
 
    border-image-slice: 1; 
 
} 
 
div:before{ 
 
    position: absolute; 
 
    content: ''; 
 
    height: calc(100% - 10px); 
 
    width: calc(100% - 10px); 
 
    border-image-source: linear-gradient(to bottom, #EEEEEE, #666666 50%, #EEEEEE); 
 
    border-style: solid; 
 
    border-width: 5px; 
 
    border-image-slice: 1; 
 
}
<div></div>


:ただ一つの要素(なし擬似/実数要素)で

を、私たちは、ソートの使用この*を達成することができますbackground-imageではなく、border-imageではありません。 8(4つの外側+ 4つの内側)罫線のそれぞれにグラデーションストリップを作成し、それに応じて配置する必要があるため、もっと複雑です。

* - これは、border-imageとまったく同じ出力を生成しませんが、十分に近いです。

div{ 
 
    height: 200px; 
 
    width: 400px; 
 
    background: linear-gradient(to right, #FFFFFF, #FFFFFF), 
 
    linear-gradient(to bottom, #FFFFFF, #CCCCCC 50%, #FFFFFF), 
 
    linear-gradient(to right, #FFFFFF, #FFFFFF), 
 
    linear-gradient(to bottom, #FFFFFF, #CCCCCC 50%, #FFFFFF), 
 
    linear-gradient(to right, #EEEEEE, #EEEEEE), 
 
    linear-gradient(to bottom, #EEEEEE, #666666 50%, #EEEEEE), 
 
    linear-gradient(to right, #EEEEEE, #EEEEEE), 
 
    linear-gradient(to bottom, #EEEEEE, #666666 50%, #EEEEEE); 
 
    background-repeat: no-repeat; 
 
    background-size: 100% 5px, 5px 100%, 100% 5px, 5px 100%, calc(100% - 10px) 5px, 5px calc(100% - 10px), calc(100% - 10px) 5px, 5px calc(100% - 10px); 
 
    background-position: 0px 0px, 100% 0px, 0px 100%, 0px 0px, 5px 5px, calc(100% - 5px), 0px calc(100% - 5px), 5px 5px; 
 
}
<div></div>

+1

ありがとう、私の一日を保存しました。 – user3493678

関連する問題