본문 바로가기

Computer/HTML, CSS, Javascript

[CSS] 과제: 멋지게 보이는 박스

https://developer.mozilla.org/ko/docs/Learn/CSS/Building_blocks/A_cool_looking_box

 

멋지게 보이는 박스 - Web 개발 학습하기 | MDN

이 평가에서는, 눈길을 사로잡는 박스를 만들어보면서 멋지게 보이는 박스를 만드는 것을 더 많이 연습하게 될 것입니다.

developer.mozilla.org

 

 

폴더 구조

 

 

index.html

<link> 태그로 style.css 파일을 연결했고 div에 text라는 클래스를 추가하였다.

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>Cool box</title>
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <div class="text">This is a cool box</div>
  </body>
</html>

 

 

style.css

  1. div와 text를 나누어서 꾸며주었다. 보기에도 편하고 그리고 text 클래스로 따로 요소를 입력해 주니 text 가운데 정렬하기에도 편했다.
  2. width와 height는 임의로 하였다. margin 0 auto를 사용해 박스를 가운데 정렬하였다.
  3. background-color와 background-image를 사용해 그라데이션과 배경 색상이 한번에 보이도록 하였다. 그냥 background 요소를 사용하니 하나만 적용되었다.
  4. 박스 그림자는 filter 요소를 사용해 좀 더 부드럽게 보일 수 있도록 구현하였다.
  5. 내부 그림자는 inset 값을 사용해 구현하였다.
  6. text 클래스 내부의 font-size를 제외하고 모두 임의로 구현하였다.
  7. font-size는 rem을 사용하여 나타냈는데 rem은 16px이라고 가정하고 계산하였다. 주석에 구체적인 연산이 나와있다.
html {
  font-family: sans-serif;
}

/* Your CSS below here */

div {
  width: 200px;
  height: 150px;
  margin: 0 auto;
  background-color: rgb(255, 0, 0);
  background-image: linear-gradient(
    145deg,
    rgba(255, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.2) 30%
  );
  border: 1px solid brown;
  border-radius: 10px;
  filter: drop-shadow(5px 5px 7px rgb(0, 0, 0));
  box-shadow: inset 2px 2px 5px rgba(255, 255, 255, 0.5),
    inset -2px -2px 5px rgba(0, 0, 0, 0.5);
}

.text {
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 1.2rem; /* 1.2rem = (16*1.2)px */
  text-shadow: 1px 1px 3px rgb(0, 0, 0);
}

 

결과

728x90