Logo
Published on
·4 min read

상하 대괄호([ ]) 모양(로또 용지 번호 모양) 만들기(css)

서비스 바로가기

로또 번호 생성기

설명할 내용

로또 용지에 있는 상하 대괄호 모양 혹시 기억하나요?
위에 링크한 로또 번호 생성기 서비스를 만들면서 로또 용지와 유사한 UI로 만들어 보기로 했습니다.

아래의 좌측 이미지는 실제 로또 용지, 우측 이미지는 결과물 캡처입니다.

좌) 실제 로또 용지, 우) CSS로 생성한 로또 용지 UI

구현

HTML

<div class="number-wrap"><span class="number">1</span></div>
<div class="number-wrap on"><span class="number">2</span></div>
<div class="number-wrap"><span class="number">3</span></div>
<!-- 이후 번호 생략 ... -->

CSS

숫자를 감싸는 .number-wrap 에서 주황색 테두리를 만들어주고,
::before / ::after에서 주황색 테두리 부분을 배경색으로 덮어주는 것이 포인트입니다.

::before / ::after를 제거해보거나, width/left/right를 각각 변경해보면서 변화를 확인해 보시는 것도 좋습니다.

/* 색상 정의 */
:root {
  --color-black: #000;
  --lotto-color: #e43a3c;
  --primary-background: #fafafa;
  --color-white: #fff;
}

/* 숫자를 감싸는 부분으로, 주황색 테두리를 만들어줍니다. */
.number-wrap {
  position: relative;
  display: inline-block;
  width: 29px;
  height: 47px;
  border: 2px solid var(--lotto-color);
  color: var(--lotto-color);
  font-size: 14px;
  font-weight: bold;
  align-self: center;
  justify-self: center;
  text-align: center;
  vertical-align: middle;
  margin-top: auto;
}

/* 숫자가 선택되었을 때, 검은색으로 마킹 처리 */
.number-wrap.on {
  background-color: var(--color-black);
  color: var(--color-white);
}

/* 괄호 모양을 만들어주는 왼쪽 옆면 지워주기, border 너비에 맞게 left, width 처리 */
.number-wrap::before {
  content: '';
  position: absolute;
  left: -2px;
  top: 20%;
  bottom: 20%;
  width: 2px;
  background-color: var(--primary-background);
}

/* 괄호 모양을 만들어주는 오른쪽 옆면 지워주기, border 너비에 맞게 right, width 처리 */
.number-wrap::after {
  content: '';
  position: absolute;
  right: -2px;
  top: 20%;
  bottom: 20%;
  width: 2px;
  background-color: var(--primary-background);
}

/* 숫자 표시 부분 */
.number {
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

JSFiddle에서 확인하기

https://jsfiddle.net/sosone/end94qya/

연관 포스팅

추가로 안드로이드에서 위와 같은 모양을 구현한 방법이 궁금하다면 아래 포스팅을 참고하세요.

상하 대괄호([ ]) 모양(로또 용지 번호 모양) 만들기(android)