금요일이 되어 드디어 마지막, html css 클론 시간이었다. 경일게임 아카데미의 footer 부분 이외에 마지막 부분 이외에 커리큘럼 홈페이지와 가이드 홈페이지를 클론을 진행하였다.
1. 클론 페이지 5
1. 클론 할 화면 - 1
커리큘럼 홈페이지를 클론 하기 앞서 어떤 식으로 클래스를 감쌓주고 텍스트박스와 item요소들을 지정할지 고민하였다. 반응형 웹으로 개발하기 위해, 화면을 줄이면서 어떤 식으로 반응하는지 살펴보았다. 화면이 특정 px 보다 작아졌을 시 네 가지 아이템이 보이다가 두 가지 아이템만 보이도로 반응하였다. 이를 구현하기 위하여 전체를 묶어주는 컨테이너박스 아래에 title-box와 box-wrapper로 감쌓주었고, box-wrapper 아래에 div > class box > class square, p 태그를 이용하여 두 개를 div로 묶음처리하여 웹이 작아진 상황에 4개에서 2개가 보이는 반응형 웹을 개발하였다.
1. 예상 클론 레이아웃 - 1
1. 클론 후 화면 - 1
2. 클론 페이지 6
2. 클론 할 화면 - 2
가이드 페이지를 클론 하면서 살짝 까다로웠던 점은 전체를 묶어준 이후 flex 형태로 박스들을 배치하였지만, 각각의 아이템 박스들이 3, 3, 4, 1 개의 아이템을 가지고 있어 그대로 속성을 적용한다면 화면이 깨진다는 것이었다. 이를 해결하기 위해 부모속성과 자식 속성에 flex를 모두 부여하고 각각의 차일드를 찾아서 직접 색을 부여하였다.
2. 예상 클론 레이아웃 - 2
2. 클론 후 화면 - 2
일주일 동안 여러 가지의 클론을 진행하면서 html, css의 기본적인 요소들과 속성들을 이해하였고, 인라인과 블록형식, 반응형 웹을 개발할 때 어떤 식으로 각각의 아이템박스들을 묶어줄지 고민하였다. 이를 바탕으로 내가 원하는 포지션에 원하는 것들을 적절히 배치하여 디자인하여 웹에서 보이는 부분을 꾸밀 수 있을 것 같다. 특히 flex 부분과 마진과 패딩에 간격에 대한 것들이 이해가 부족하여 이 부분을 공부한다며 더 좋을 것 같다.
경일게임아카데미 클론 4회 차이다. 4번째 홈페이지는 특별히 애니메이션이나 다른 기능 없이 개발을 진행할 수 있었다. 지금까지 페이지들이 반응형 웹을 고려하지 않고 픽셀값과 고정된 크기로 주었다면, 4페이지부터는 반응형 웹을 고려하여 박스들을 배치하고, flex를 이용하여 개발을 진행하였다. 이 전 페이지들은 여러 css 들과 애니메이션을 배워 어려웠다면, 오늘 만든 페이지의 경우 화면의 변화에 따라 변화하는 반응형 웹을 고려하여 개발을 진행하였다.
1. 클론 할 페이지
2. 예상 클론 레이아웃
위의 클론 할 페이지를 바탕으로 큰 레이아웃을 구상하였다. 기본적으로 텍스트 박스 두 개는 제목태그를 이용하여 text-align center와 미디어쿼리를 이용하여 480px에 도달 시 fontsize를 조절하여 주었다. h2에는 word-break: kee를 주어 띄어쓰기가 나오면 자동으로 다음줄로 넘어가는 속성을 부여하였다. 화면이 줄어들면 2개의 아이템만 보이는 것을 위해 빨간 큰 row1으로 묶어 주었고, 빨간색 row1 아래에 row2와 img class를 주어 웹이 줄어들고 바뀜에 따라 줄어들면 2가지 아이템 박스가 보이는 반응형 웹을 만들었다.
3. 클론 후 페이지
오늘 웹을 개발하면서 특별히 어려운 부분의 html과 css는 아니었지만, 반응형 웹을 구상할 때 어떻게 자를 것인지와 어떤 비율로 나누어질 것인지에 대해 고민하여 보았다. 또한 media쿼리에 대한 사용법을 알게 되었고, 가상요소, ::before와 ::after 사용법의 숙지와 이에 대해 더 공부하여야겠다.
오늘 클론을 하면서 배운점은 화면에 대한 배치와 배치를 한 후 각각의 아이템에 대한 속성 값을 어떤 식으로 줘야 여러 개의 엘리먼트 값들에 한 번에 속성을 주는지와 애니메이션을 통해 글자박스들의 이동과 글자들의 색상 조절 등의 애니메이션을 주었다. 기본적으로 흐름을 이해하고, html에 속성을 주는 형식을 이해하는 것이 중요한 수업이었다.
1. 클론 할 화면
위의 클론 할 홈페이지 화면을 바탕으로 예상되는 클론 레이아웃을 짜 보았다.
첫 번 째로 전체적인 화면의 div id = why 아래 컨테이너로 전체 레이아웃을 감싸주었고, 그 아래 slide 되는 텍스트 부분과
아래에 화면을 올리면 화면이 바뀌는 버튼 클래스로 묶어 주었다.
2. 예상 클론 레이아웃
2-1. slide class
slide 부분에는 6개의 텍스트를 주었고, @keyframe slide 를 사용하여, 각각의 % 를 지정하였고, 흐린 화면 아래위 두 개와 중앙값 한 개에 대해 진하게 와 글씨를 크게 해 주는 css를 적용하였다. 특히 아래에서 위로 올라가는 화면을 진행하면서 키프레임 % 대해 어떻게 사용해야 할지 생각해 보았고, text가 3개가 보여야 하기 때문에 글자 속성을 slide 박스 전체가 올라가면 안 되기 때문에 div 속성으로 감싸주어 특정 부분에 글씨가 커지고 진하게 보일 수 있도록 애니메이션을 지정하였다.
슬라이드 박스를 구현한 후 버튼들에게 flex 속성을 주고 버튼의 item 들에 hover 속성을 부여하여 마우스가 위로 올라가면 다른 글자와 img 가 보이도록 만들었다. 이때 item 박스에 이미지들에게 동일한 규격의 사이즈를 주기 위해 obeject-fit contain 속성과 너비와 높이를 부여하여 각각의 이미지들에 동일한 속성의 사이즈를 적용하였다.
왼쪽에서 오른쪽으로 이동시키는 애니메이션을 만들기 위하여 item 형식안에 이미지와 글자를 넣어 반복하기 위하여 6개씩 2번 같은 item 박스를 만들어 reviews 클래스로 묶어주었다. div item 박스는 블록속성이기 때문에 아이템들에게 flex 속성을 주고 gap을주어 박스 사이간격을 만들어 주었다. 키프레임 flow를 이용하여 x좌표를 0, -50%로 이동하여 화면이 이동하는 애니메이션을 작성하였고,. reviews::after를 이용하여 양쪽 10%와 90% 지점에 그림자를 주었다. 또한 위아래로 물결치는 웨이브를 표현하기 위하여 키프레임 wave를 이용하여 지점마다 %를 다르게 주어 위아래로 이동하는 애니메이션을 만들었다.
개발을 진행하면 transition 개념과 transform 개념에 대해 부족하여 이 부분에 대해 더 공부해야겠다.