[CSS]水平に配置したセクションを分けるスタイルのさまざまな素敵なテクニック
Post on:2013年10月7日
1ページに複数のセクションを水平に配置した際に、それらの区切りとなるさまざまなスタイルを紹介します。
縦長の1ページで構成されたプロモーションサイトやポートフォリオなどで見かけるものだけでなく、こんなこともできるのかとアイデアが素晴らしいものもたくさん!
A collection of separator styles
デモページではざっと30種類の素敵なラインがスタイルされています。
各デモと共にそのスタイルを紹介します。
まずはHTMLから。基本となるのは、2パターンです。
1つ目は、section要素にclassをつけるだけ。
<section class="ss-style-hogehoge"> コンテンツ </section>
2つ目は、svg要素を使用します。
<section> コンテンツ </section> <svg id="hoge"> SVGの中身 </svg>
sctionだけの場合はclass、svgを使用するものはidになっています。
以下、各デモとそのスタイルです。
HTML/CSSは元ページで一式をダウンロードできます。
天地に三角形を添えます。
.ss-style-triangles::before, .ss-style-triangles::after { left: 50%; width: 100px; height: 100px; -webkit-transform: translateX(-50%) rotate(45deg); transform: translateX(-50%) rotate(45deg); } .ss-style-triangles::before { top: -50px; background: #2980b9; } .ss-style-triangles::after { bottom: -50px; z-index: 10; background: inherit; }
二重のラインを斜めにスタイルします。
.ss-style-doublediagonal { z-index: 1; padding-top: 6em; background: #2072a7; } .ss-style-doublediagonal::before, .ss-style-doublediagonal::after { top: 0; left: -25%; z-index: -1; width: 150%; height: 75%; background: inherit; -webkit-transform: rotate(-2deg); transform: rotate(-2deg); -webkit-transform-origin: 0 0; transform-origin: 0 0; } .ss-style-doublediagonal::before { height: 50%; background: #116094; -webkit-transform: rotate(-3deg); transform: rotate(-3deg); -webkit-transform-origin: 3% 0; transform-origin: 3% 0; }
天地に半円を添えます。
.ss-style-halfcircle::before, .ss-style-halfcircle::after { left: 50%; z-index: 10; width: 100px; height: 100px; border-radius: 50%; background: inherit; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .ss-style-halfcircle::before { top: -50px; } .ss-style-halfcircle::after { bottom: -50px; }
大きい三角形をスタイルします。
svg#bigTriangleColor { pointer-events: none; } #bigTriangleColor path { fill: #3498db; stroke: #3498db; stroke-width: 2; }
天地にカーブを描きます。
#curveUpColor path, #curveDownColor path { fill: #3498db; stroke: #3498db; }
天地に三角形を三つ添えます。
.ss-style-multitriangles::before, .ss-style-multitriangles::after { left: 50%; width: 50px; height: 50px; -webkit-transform: translateX(-50%) rotate(45deg); transform: translateX(-50%) rotate(45deg); } .ss-style-multitriangles::before { top: -25px; background: inherit; box-shadow: -50px 50px 0 #3498db, 50px -50px 0 #3498db; } .ss-style-multitriangles::after { bottom: -25px; z-index: 10; background: inherit; box-shadow: -50px 50px 0 #3498db, 50px -50px 0 #3498db; }
中央に角丸状のラインをスタイルします。
.ss-style-roundedsplit { padding-top: 7em; border-radius: 0 0 80px 80px; } .ss-style-roundedsplit::before, .ss-style-roundedsplit::after { top: -70px; left: 0; z-index: 10; width: 50%; height: 70px; background: inherit; } .ss-style-roundedsplit::before { border-radius: 0 80px 0 0; } .ss-style-roundedsplit::after { left: 50%; border-radius: 80px 0 0 0; }
両端に角丸状のラインをスタイルします。
.ss-style-invertedrounded { margin-bottom: 90px; padding: 13em 10% 10em; border-radius: 0 0 0 90px; } .ss-style-invertedrounded::before, .ss-style-invertedrounded::after { left: 0; z-index: -1; height: 90px; background: #3498db; } .ss-style-invertedrounded::before { top: 100%; width: 100%; border-radius: 0 90px 0 0; } .ss-style-invertedrounded::after { bottom: 0; z-index: -1; width: 50%; }
ラインをボックス状にスタイルします。
.ss-style-boxes { padding-top: 4em; padding-bottom: 13em; } .ss-style-boxes::before { bottom: 0; left: 0; width: 100%; height: 50px; background-image: -webkit-gradient(linear, 100% 0, 0 100%, color-stop(0.5, #3498db), color-stop(0.5, #2980b9)); background-image: linear-gradient(to right, #3498db 50%, #2980b9 50%); -webkit-background-size: 130px 100%; background-size: 130px 100%; }
ジグザグのラインにします。
.ss-style-zigzag::before, .ss-style-zigzag::after { right: 0; left: 0; z-index: 10; display: block; height: 90px; background-size: 50px 100%; } .ss-style-zigzag::before { top: -90px; background-image: -webkit-gradient(linear, 0 0, 300% 100%, color-stop(0.25, transparent), color-stop(0.25, #3498db)); background-image: linear-gradient(315deg, #3093d5 25%, transparent 25%), linear-gradient( 45deg, #3498db 25%, transparent 25%); background-position: 50%; } .ss-style-zigzag::after { top: 100%; background-image: -webkit-gradient(linear, 0 0, 300% 100%, color-stop(0.25, #3498db), color-stop(0.25, #2980b9)); background-image: linear-gradient(135deg, #3498db 25%, transparent 25%), linear-gradient(225deg, #3498db 25%, transparent 25%); background-position: 50%; }
角を内向きの角丸にします。
.ss-style-roundedges { padding-bottom: 16em; } .ss-style-roundedges::before, .ss-style-roundedges::after { width: 200px; height: 200px; border-radius: 50%; background: #2980b9; top: -100px; -webkit-transform: rotate(45deg); transform: rotate(45deg); } .ss-style-roundedges::before { left: -100px; } .ss-style-roundedges::after { right: -100px; }
スリットを入れます。
.ss-style-slit { padding-top: 5em; } .ss-style-slit::before, .ss-style-slit::after { width: 50.5%; width: -webkit-calc(50% + 10px); width: -moz-calc(50% + 10px); width: calc(50% + 10px); height: 160px; background: #2980b9; top: -160px; } .ss-style-slit::before { left: -20px; -webkit-transform: skewX(10deg); transform: skewX(10deg); box-shadow: -10px -20px #3192d3; } .ss-style-slit::after { right: -20px; -webkit-transform: skewX(-10deg); transform: skewX(-10deg); box-shadow: 10px -20px #3192d3; }
大きい円の一部をラインにします。
#bigHalfCircle path { fill: #3498db; stroke: #3498db; }
シャドウ付きの大きい三角の一部をラインにします。
#trianglePath1 { fill: #3498db; stroke: #3498db; } #trianglePath2 { fill: #2072a7; stroke: #2072a7; }
ジグザグのラインをスタイルします。
.ss-style-inczigzag::before, .ss-style-inczigzag::after { left: 0; width: 100%; height: 50px; background-size: 100px 100%; } .ss-style-inczigzag::before { top: 0; background-image: -webkit-gradient(linear, 0 0, 10% 100%, color-stop(0.5, #2980b9), color-stop(0.5, #3498db)); background-image: linear-gradient(15deg, #3498db 50%, #2980b9 50%); } .ss-style-inczigzag::after { bottom: 0; background-image: -webkit-gradient(linear, 0 0, 10% 100%, color-stop(0.5, #3498db), color-stop(0.5, #2980b9)); background-image: linear-gradient(15deg, #2980b9 50%, #3498db 50%); }
城壁の上部のようなラインにします。
.ss-style-castle::before { left: 0; width: 100%; height: 50px; background-size: 200px 100%; top: 0; background-image: -webkit-linear-gradient(40deg, #3498db 50%, #2980b9 50%); background-image: linear-gradient(40deg, #3498db 50%, #2980b9 50%); }
シャドウ付きのスリットをいれます。
#slitPath1 { fill: #3498db; stroke: red; stroke-width: 0; } #slitPath2, #slitPath3 { fill: #2072a7; }
端を折り返します。
.ss-style-foldedcorner::before, .ss-style-foldedcorner::after { bottom: 0; width: 100px; height: 100px; } .ss-style-foldedcorner::before { right: 0; background-image: -webkit-linear-gradient(top left, #37a2ea 50%, #3498db 50%); background-image: linear-gradient(315deg, #3498db 50%, #37a2ea 50%); } .ss-style-foldedcorner::after { right: 100px; background-image: -webkit-linear-gradient(top left, transparent 50%, #236fa1 50%); background-image: linear-gradient(315deg, #236fa1 50%, transparent 50%); }
中央にドットを配置します。
.ss-style-dots::before { bottom: 20px; width: 14px; height: 14px; border-radius: 50%; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); background: #2072a7; box-shadow: 30px 0 #2072a7, -30px 0 #2072a7; }
中央に二重線を配置します。
.ss-style-doubleline::before { bottom: 30px; width: 140px; height: 2px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); background: #2072a7; box-shadow: 0 30px 0 #2072a7; }
中央にクロスを配置します。
.ss-style-cross { padding-bottom: 15em; } .ss-style-cross::before, .ss-style-cross::after { background: #2072a7; bottom: 70px; width: 200px; height: 2px; left: 50%; -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; } .ss-style-cross::before { -webkit-transform: translateX(-50%) rotate(45deg); transform: translateX(-50%) rotate(45deg); } .ss-style-cross::after { -webkit-transform: translateX(-50%) rotate(-45deg); transform: translateX(-50%) rotate(-45deg); }
切手の縁のようなラインにします。
#stamp path { fill: #3498db; stroke: #3498db; /* avoid gap in FF */ }
雲のようにモコモコのラインにします。
#clouds path { fill: #ecf0f1; stroke: #ecf0f1; }
sponsors