

2021 [인터랙티브 미디어개론] 팀프로젝트 '보글보글 방울소동' 깨알 홍보
Responsive Web 이라고도 하며, 동일한 페이지를 디바이스에 따라 레이아웃을 다르게 보여주는 웹이다.
Adaptive Web 이라고도 하며, 사용자의 환경(모바일/PC)에 따라 다른 페이지를 보여주는 웹이다.
나는 반응형 웹이 Interactive Web의 다른 말인줄 알았는데, 차이점을 찾아보니
Interactive, Responsive and Reactive – What’s the difference?
사이트 내 사용자의 액션에 반응하는 요소들이 있는 웹
다양한 스크린, 화면 사이즈에 따른 레이아웃을 적용하는 웹
새로고침 없이 서버로부터 자동으로 체크하고 데이터를 업데이트하는 웹
이라고 한다.
이러한 반응형 웹 디자인을 위해 Viewport 란 것이 있다.

이를 위해 html에는 head 부분에 다음 코드를 추가해주면 좋다.
<meta name="viewport" content="width=device-width, initial-scale=1" />
서로 다른 미디어 타입에 따라 별도의 css를 지정하는 방법이다.
@media 미디어유형 and (크기 규칙)
@media screen and (max-width : 1024 px) {
body{
background-color: lime;
}
}
프로젝트마다 다른 Breakpoint를 정하고 그것을 기준으로 레이아웃 다르게 설정
orientation 사용
@media screen and (orientattion: landscape) {
/* 가로 */
body {
background-color: bisque;
}
}
@media screen and (orientation: portrait) {
/* 세로 */
body {
background-color: tomato;
}
}
기본 폰트 크기: 16px
상위 요소의 상대적인 크기
.pct-parent {
width: 500px;
height: 500px;
background-color: plum;
}
.pct-child {
width: 50%;
height: 50%;
background-color: aquamarine;
}
.em {
font-size: 2em;
} // 글자가 3개라면 앞 요소의 2배씩 늘어남
.rem {
/* 뒤 여러개가 앞 글자의 2배만 늘어남 */
font-size: 2rem;
} //
[퀴즈] 현재 웹 브라우저 사이즈(1200px, 900px일 때)
5vw, 5vh 값은?
1vw == 12 px => 5vw = 60px
1vh == 9 px => 5vh = 45px
.vw {
height: 20vw;
width: 20vw;
background-color: coral;
}
.vh {
margin-top: 10px;
height: 20vh;
width: 20vh;
background-color: skyblue;
}
:root {
/* 전역변수 */
--color-success: rgb(49, 156, 49);
--color-error: rgb(237, 58, 58);
--color-white: rgb(250, 250, 250);
}
.btn.success {
background-color: var(--color-success);
}
.btn {
/* 지역변수 */
--size: 8px;
padding: var(--size);
width: calc(var(--size) * 25);
}

웹 사이트를 쉽게 만들 수 있게 도와주는 공개 HTML,
CSS, JS 프레임워크
BootStrap
<i class="bi bi-balloon-heart" style="color: hotpink"></i>
svg: 크기 조정이 가능한 벡터 그래픽. w,h 조정 가능, fill 색상 변경 가능
<svg
xmlns="http://www.w3.org/2000/svg"
width="50"
height="50"
fill="lime"
class="bi bi-boxes"
viewBox="0 0 16 16"
>
<path
d="M7.752.066a.5.5 0 0 1 .496 0l3.75 2.143a.5.5 0 0 1 .252.434v3.995l3.498 2A.5.5 0 0 1 16 9.07v4.286a.5.5 0 0 1-.252.434l-3.75 2.143a.5.5 0 0 1-.496 0l-3.502-2-3.502 2.001a.5.5 0 0 1-.496 0l-3.75-2.143A.5.5 0 0 1 0 13.357V9.071a.5.5 0 0 1 .252-.434L3.75 6.638V2.643a.5.5 0 0 1 .252-.434L7.752.066ZM4.25 7.504 1.508 9.071l2.742 1.567 2.742-1.567L4.25 7.504ZM7.5 9.933l-2.75 1.571v3.134l2.75-1.571V9.933Zm1 3.134 2.75 1.571v-3.134L8.5 9.933v3.134Zm.508-3.996 2.742 1.567 2.742-1.567-2.742-1.567-2.742 1.567Zm2.242-2.433V3.504L8.5 5.076V8.21l2.75-1.572ZM7.5 8.21V5.076L4.75 3.504v3.134L7.5 8.21ZM5.258 2.643 8 4.21l2.742-1.567L8 1.076 5.258 2.643ZM15 9.933l-2.75 1.571v3.134L15 13.067V9.933ZM3.75 14.638v-3.134L1 9.933v3.134l2.75 1.571Z"
/>
</svg> <i class="bi bi-heart hrtIcon"></i>
<!-- <i class="bi bi-heart-fill"></i> -->
<script>
const hrtIcon = document.querySelector(".hrtIcon");
hrtIcon.addEventListener("click", () => {
// hrtIcon.classList.remove("bi-heart");
// hrtIcon.classList.add("bi-heart-fill");
// 늘 둘 중에 하나로 변경
hrtIcon.classList.toggle("bi-heart"); //있으면 제거, 없으면 추가
hrtIcon.classList.toggle("bi-heart-fill"); //없으면 추가, 있으면 제거
});
</script>
BootStrap 사용하며 개발자 커스텀 클래스 역시 사용 가능
html 요소에 개발자 클래스명을 주고, css 파일에서 다음과 같이 정의
.progress-bar-height {
height: 5px;
}
.card_container {
display: flex;
flex-wrap: wrap;
}
아래 링크에 이전 공부 내역 및 캡쳐를 자세히 올려두었습니다.