위 이미지는 회사 홈페이지에 들어가는 이미지 중에 하나인데,
첨에 빨리 만들어야해서 거진 다 포토샵에서 작업해서 jpg 배경 처리하고,
텍스트 부분만 position: absolute 놓고 top이랑 left 값 조정해서 만들었다.
머 대충 이런 느낌이다.
갑자기 이걸 CSS로도 구현할 수 있지 않을까? 싶어서 작업에 들어갔는데
마름모꼴 만들기가 너무 힘들었다 ... 어찌어찌 만들어도 그 위에 텍스트까지 변형할 자신이 없었고...
그래서 모양을 살짝 바꿨다.
음~ 지금보니 그림자를 안넣었네. 하지만 넘모 귀찮고..
만약 계단쪽에 그림자를 넣으려면 box-shadow로 넣으면 깨지고 난리나니
계단을 똑같이 만들어서 뒷쪽으로 배치하는 것이 좋겠다.
HTML
<div id="content">
<div id="contentBG">
<div class="tread no00"></div>
<div class="tread no01"></div>
<div class="tread no02"></div>
<div class="tread no03"></div>
<div class="riser no01">01</div>
<div class="riser no02">02</div>
<div class="riser no03">03</div>
<div class="riser no04"></div>
</div>
<div id="contentTxt">
<div class="steps">
<div class="stepLeft">
<span class="stepTtl">STEP 01</span><br>
<span class="stepSub">A/S 문의사항<br>신속한 접수·처리</span>
</div>
<div class="stepRight">
<div class="stepPoint"></div><div class="stepArrow"></div>
</div>
</div>
<div class="steps">
<div class="stepLeft">
<span class="stepTtl">STEP 02</span><br>
<span class="stepSub">3개월 단위로<br>정기적인 관심콜 서비스</span>
</div>
<div class="stepRight">
<div class="stepPoint"></div><div class="stepArrow"></div>
</div>
</div>
<div class="steps">
<div class="stepLeft">
<span class="stepTtl">STEP 03</span><br>
<span class="stepSub">완공 후 2년간 고객보다 먼저<br>움직이는 방문점검 서비스</span>
</div>
<div class="stepRight">
<div class="stepPoint"></div><div class="stepArrow"></div>
</div>
</div>
</div>
</div>
CSS
* { font-family: 'NanumSquare', sans-serif; box-sizing: border-box;}
#content { width: 1200px; height: 650px; position: relative; margin: 70px auto 85px; }
#contentTxt { position: absolute; top: 0;}
#contentTxt .steps { width: 350px; height: 130px; position: absolute; text-align: right; line-height: 150%;}
.steps:nth-child(1) { top:310px; Left: 130px; }
.steps:nth-child(2) { top:180px; Left: 240px; }
.steps:nth-child(3) { top:50px; Left: 350px; }
.stepLeft { float: left; width: 55%; }
.steps .stepTtl { font-size: 20pt; font-weight: bold; line-height: 160%;}
.steps:nth-child(1) .stepTtl { color: #e19474 }
.steps:nth-child(2) .stepTtl { color: #d73f17 }
.steps:nth-child(3) .stepTtl { color: #c30f23 }
.steps .stepSub { font-size: 12pt; color: #626262;}
.stepRight { float: left; margin: 18px 0 0 10px; width: 125px; height: 100px; }
.steps:nth-child(1) .stepRight { border: solid 3px #e19474; border-left: none; border-bottom: none; }
.steps:nth-child(2) .stepRight { border: solid 3px #d73f17; border-left: none; border-bottom: none; }
.steps:nth-child(3) .stepRight { border: solid 3px #c30f23; border-left: none; border-bottom: none; }
.stepPoint { position: absolute; top: 10px; width: 20px; height: 20px; border-radius: 20px;}
.steps:nth-child(1) .stepPoint { background: #e19474 }
.steps:nth-child(2) .stepPoint { background: #d73f17 }
.steps:nth-child(3) .stepPoint { background: #c30f23 }
/*역삼각형은 border값 조절해서*/
.stepArrow { position: absolute; bottom: 0; right: 12pt; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; }
.steps:nth-child(1) .stepArrow { border-top: 18px solid #e19474;}
.steps:nth-child(2) .stepArrow { border-top: 18px solid #d73f17;}
.steps:nth-child(3) .stepArrow { border-top: 18px solid #c30f23;}
#contentBG { width: 980px; height: 650px; background: whitesmoke; border: 1px solid lightgrey; margin: 0 auto; }
.riser { width: 200px; height: 90px; position: absolute; text-align: left; font-size: 3rem; font-weight: 800; line-height: 90px; color: white; }
.riser.no01 { bottom: 95px; left: 450px; background: #D76F42; padding-left: 20px; }
.riser.no02 { bottom: 225px; left: 560px; background: #C6251E; padding-left: 20px; }
.riser.no03 { bottom: 355px; left: 670px; background: #9f2125;padding-left: 20px;}
/*화살표모양은 before나 after를 추가해서*/
.riser.no04 { height: 50px; top: 115px; left: 779px; background: #c9c9c9;}
.riser.no04::before { border-bottom: 55px solid #c9c9c9; border-left: 120px solid transparent; border-right: 120px solid transparent; content: ""; height: 0; left: -20px; position: absolute; top: -55px; width: 0;}
/*평행사변형은 transform:skewX 또는 skewY*/
.tread { position: absolute; width: 200px; height: 40px; transform:skewX(-70deg); }
.tread.no00 { bottom: 55px; left: 395px; background: #c9c9c9; }
.tread.no01 { bottom: 185px; left: 505px; background: #e19474; }
.tread.no02 { bottom: 315px; left: 615px; background: #d73f17; }
.tread.no03 { bottom: 445px; left: 725px; background: #c30f23; }
CSS 작성하면서 반복되는게 너무 많아갖고 SASS를 얼른 배워야겠다.. 그런 생각이 드는 미니 플젝이었습니당.
'꿀팁 공유 > ㄴ IT관련' 카테고리의 다른 글
css: 마우스 hover시 이미지 앞뒤로 flip 만들기 (transform: rotateY()) (0) | 2021.06.04 |
---|---|
css : 마우스 올리면 밑줄 그어지게 하기 (:hover, :before/:after) (0) | 2021.03.24 |
카카오톡 단톡방 사진전송 묶어보내기 & 화질 설정 (0) | 2019.12.13 |
인스타그램 해시태그 누락에 대한 고찰 (IP차단) (2) | 2019.02.11 |
옛날에 컴활 2급 독학으로 합격한 후기 + 잡담 (0) | 2018.11.25 |
댓글