CSSについて説明します。
repeating-linear-gradientについて説明します。
sample 1
test_010.css
div.test-010-001
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #0000CCFF, #CC0000FF );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-001"></div>
</body>
表示は下記となります。
青から赤に徐々に変化しています。
sample 2
test_010.css
div.test-010-002
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #0000CCFF 0px 30px, #CC0000FF 70px 100px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-002"></div>
</body>
表示は下記となります。
繰り返しの単位は100pxです。
30pxと70pxのあいだがlinear-gradientになっています。
角度の指定は水平から時計回りの角度です。
sample 3
test_010.css
div.test-010-003
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #0000CCFF 0px 50px, #CC0000FF 70px 100px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-003"></div>
</body>
表示は下記となります。
linear-gradientの幅を狭めています。
sample 4
test_010.css
div.test-010-004
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #0000CCFF 0px 70px, #CC0000FF 70px 100px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-004"></div>
</body>
表示は下記となります。
linear-gradientの幅を無くしています。
sample 5
test_010.css
div.test-010-005
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #00CCCCFF 0px 33px, #0000CCFF 33px 66px, #CC0000FF 66px 100px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-005"></div>
</body>
表示は下記となります。
3種類の色を使うようにしています。
sample 6
test_010.css
div.test-010-006
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #0000CCFF 0px 30px, 40px, #CC0000FF 70px 100px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-006"></div>
</body>
表示は下記となります。
本稿にsyntaxの章を設けています。MDNから持ってきています。
ここでは、color-hintに対する指定をしています。
sample 7
test_010.css
div.test-010-007
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #0000CCFF 0px 30px, 30px, #CC0000FF 70px 100px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-007"></div>
</body>
表示は下記となります。
color-hintに対する指定をsample 6とは異なる値としています。
sample 8
test_010.css
div.test-010-008
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-008"></div>
</body>
表示は下記となります。
重ね合わせのための準備をしています。
sample 9
test_010.css
div.test-010-009
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 120deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-009"></div>
</body>
表示は下記となります。
重ね合わせのための準備をしています。
sample 10
test_010.css
div.test-010-010
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 60deg, transparent 0px 38px, #CC0000FF 38px 40px ), repeating-linear-gradient( 120deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-010"></div>
</body>
表示は下記となります。
重ね合わせています。一番上、上から二番目、と指定していく仕様です。
画像を重ね合わせることも出来ます。
上になる方の線以外の部分を透明にしています。
sample 11
test_010.css
div.test-010-011
{
/* width: 500px; */
height: 500px;
background: repeating-linear-gradient( 0deg, transparent 0px 8px, #CC0000FF 8px 10px, transparent 10px 40px ), repeating-linear-gradient( 60deg, transparent 0px 38px, #CC0000FF 38px 40px ), repeating-linear-gradient( 120deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-011"></div>
</body>
表示は下記となります。
横線を重ね合わせています。
sample 12
test_010.css
div.test-010-012
{
/* width: 500px; */
height: 650px;
background: repeating-linear-gradient( 90deg, transparent , #CC000066 ), repeating-linear-gradient( 0deg, transparent 0px 8px, #CC0000FF 8px 10px, transparent 10px 40px ), repeating-linear-gradient( 60deg, transparent 0px 38px, #CC0000FF 38px 40px ), repeating-linear-gradient( 120deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-012"></div>
</body>
表示は下記となります。
linear-gradientを重ね合わせています。
DESIGN TALKS PLUSの開始の映像を思い出すかもしれない感じになりました。
ディスプレイや輝度で印象が変わります。
sample 13
test_010.css
div.test-010-013
{
/* width: 500px; */
height: 650px;
background: repeating-linear-gradient( 80deg, transparent 0% 30%, #FFFFFF10 30% 70%, transparent 70% 100% ), repeating-linear-gradient( 70deg, transparent 0% 30%, #FFFFFF10 30% 70%, transparent 70% 100% ), repeating-linear-gradient( 60deg, transparent 0% 30%, #FFFFFF10 30% 70%, transparent 70% 100% ), repeating-linear-gradient( 100deg, transparent 0% 30%, #FFFFFF10 30% 70%, transparent 70% 100% ), repeating-linear-gradient( 110deg, transparent 0% 30%, #FFFFFF10 30% 70%, transparent 70% 100% ), repeating-linear-gradient( 120deg, transparent 0% 30%, #FFFFFF10 30% 70%, transparent 70% 100% ), repeating-linear-gradient( 90deg, transparent , #CC000066 ), repeating-linear-gradient( 0deg, transparent 0px 8px, #CC0000FF 8px 10px, transparent 10px 40px ), repeating-linear-gradient( 60deg, transparent 0px 38px, #CC0000FF 38px 40px ), repeating-linear-gradient( 120deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-013"></div>
</body>
表示は下記となります。
光の感じを出そうとしましたが、数行追加しただけでは難しいようです。
sample 14
test_010.css
div.test-010-014
{
/* width: 500px; */
height: 650px;
background: repeating-linear-gradient( 80deg, transparent 0% 20%, #FFFFFF10 20% 80%, transparent 80% 100% ), repeating-linear-gradient( 70deg, transparent 0% 20%, #FFFFFF10 20% 80%, transparent 80% 100% ), repeating-linear-gradient( 60deg, transparent 0% 20%, #FFFFFF10 20% 80%, transparent 80% 100% ), repeating-linear-gradient( 100deg, transparent 0% 20%, #FFFFFF10 20% 80%, transparent 80% 100% ), repeating-linear-gradient( 110deg, transparent 0% 20%, #FFFFFF10 20% 80%, transparent 80% 100% ), repeating-linear-gradient( 120deg, transparent 0% 20%, #FFFFFF10 20% 80%, transparent 80% 100% ), repeating-linear-gradient( 90deg, transparent , #CC000066 ), repeating-linear-gradient( 0deg, transparent 0px 8px, #CC0000FF 8px 10px, transparent 10px 40px ), repeating-linear-gradient( 60deg, transparent 0px 38px, #CC0000FF 38px 40px ), repeating-linear-gradient( 120deg, #F3CBCEFF 0px 38px, #CC0000FF 38px 40px );
}
test_010.html
<!DOCTYPE html>
<head><link rel="stylesheet" type="text/css" href="./test_010.css"/></head>
<body>
<div class="test-010-014"></div>
</body>
表示は下記となります。
光の感じを出そうと、横幅を広げました。
syntax
repeating-linear-gradient( [ <angle> | to <side-or-corner> ,]? <color-stop-list> )
where <side-or-corner> = [left | right] || [top | bottom]
and <color-stop-list> = [ <linear-color-stop> [, <color-hint>? ]? ]#, <linear-color-stop>
and <linear-color-stop> = <color> [ <color-stop-length> ]?
and <color-stop-length> = [ <percentage> | <length> ]{1,2}
and <color-hint> = [ <percentage> | <length> ]
文字列を”で囲んで表しています。
angle | ’60deg’ や ‘120deg’ など。 |
side-or-corner | ‘to left’ / ‘to right’ / ‘to top’ / ‘to bottom’ のどれか1つ。 |
[angle|side-or-corner] | angleかside-or-cornerかどちらかのみ。 |
[angle|side-or-corner]? | 「angleかside-or-cornerかどちらかのみ」があってもなくてもよい。初期値は0deg(=to top)で、変更不要の場合は、指定を省略してもよい。 |
color-hintは上記のsampleで確認してください。ここでは、わかりやすさのために無視します。(color-hintの隣りの?は不要のはずですが。カンマがあるけど、何も指定が無いという文法を許す意味はないはず。)
where <side-or-corner> = [left | right] || [top | bottom]
and <color-stop-list> = [ <linear-color-stop> ]#, <linear-color-stop>
and <linear-color-stop> = <color> [ <color-stop-length> ]?
and <color-stop-length> = [ <percentage> | <length> ]{1,2}
#が1回以上の繰り返しで、CSV形式を意味します。
ですので、sample 2のように、合計2つはlinear-color-stopが必要ということになります。
<color-stop-list> = #0000CCFF 0px 30px, #CC0000FF 70px 100px
linear-gradientを構成するためには2つは必要なので、正しくて、カンマつなぎでいくらでも数を増やすことができる仕様です。
?はあってもなくてもよい、で、{1,2}が1つまたは2つ、を意味するので、色指定だけでも良いし、終了位置の指定だけでも良いし、開始位置と終了位置の指定でも良い、となります。
<linear-color-stop> = #0000CCFF 0px 30px
<linear-color-stop> = #CC0000FF 70px 100px
まとめ
やはり、動かしたいです。
参考
repeating-linear-gradient()
Value definition syntax
Using CSS gradients