feed랑 feed-detail화면 컴포넌트는 다 만들어뒀는데 한화면에 끼워보질않아서 주말에 각잡고 해보기로했다.
와장창 하면 세상에 그런 재앙이 없기 때문에...학원에서 하면 집중 잘 안될 것 같았음.
둘다 절반정도 완성을 했는데, 단순히 크기만 커지는게 아니라 레이아웃이 같이 변하는 구조라 이렇게 피그마에 그려놓은 나를 좀 때려주고 싶었다...^^... 그땐 자신있었는데 몰랐지 큰 함정이 있을거란걸.😂
✨ feed
상세화면 하고 나니까 여긴 좀 상대적으로 쉬웠던것같은 느낌적인 느낌 ^^........
✔️ 피드 글자와 좋아요&댓글 + 전체적으로 동시에 늘어나고 줄어드는 비율
1. 피드 내 텍스트 정렬
프로필 사진보다 글자 컨텐츠가 안으로 들어가있는데, 이 비율을 유지하면서 화면이 줄어들때 공간을 뺏기지도 말아야 한다는 것. 처음엔 겉을 싸고있는 박스에다 패딩이나 마진을 줬더니 화면이 좁아지면 공간을 뺏겨서 (그도그럴게 width는 컨텐트 기준으로 부여되는 수치이므로 min-width:300;을 주는건 컨텐트꺼고 그 바깥에 있는 패딩이나 마진은 의미가 없다) 인라인태그에다가 다이렉트로 패딩을 꽂았더니 컨텐트+패딩==컨텐트사이즈가 되어서 공간을 유지할 수 있었음.
따라서 flex-start도 text-box를 기준으로 start시점이 시작되지만, 내가 패딩을 먹여놓았으므로 패딩보다 뒤에서 start할 수 있어서 좌측정렬이 잘 됐고 공간도 뺏기지 않게 되었다!!!!! '컨텐트영역'을 생각해보면 당연한건데 거의 감으로 알아낸것 같음.
.feed-detail .text-box {
display: flex;
flex-direction: column;
justify-content: space-evenly;
width: inherit;
height: inherit;
}
.feed-detail .text-box h1 {
align-self: flex-start;
padding: 15px 20px 15px 20px;
}
.feed-detail .text-box p {
align-self: flex-start;
padding: 0px 20px 20px 20px;
}
2. 좋아요,댓글, 북마크 라인 정렬 (나는 feed용 footer라고 별명을 붙여둠)
여긴 모듈부터 좀 잘못만들었던것 같다. 모듈 하나만 만들땐 중앙정렬 되어있고 잘 늘어나고 줄어드니 별 문제없어보였는데.... 위에 사진보다 안쪽에서 균형을 유지해야하는게 자꾸 공간을 뺏겨서 😂 아이콘끼리 한 블럭이고 북마크가 떨어져있는데 정렬을 유지하면서 공간도 안뺏기면서 비율도 맞아야하고 너는 마진이니 패딩이니 하면서 좀 더럽게 짜여진것 같다.
벗 난 최선을 다했어...
그리고 사진의 세로폭이 커지면서 처음엔 footer가 사진에 묻혀버렸었음.아마 height:100%이었던것 같음. 그래서 사진의 박스에 max-height를 주고 footer가 놓여있으니 사진이 점점 커져도 영향을 안받게 됐다!
.feed-detail .contents-box .feed-pic {
width: 100%;
max-width: 500px;
max-height: 334px;
margin-bottom: 10px;
}
.feed-detail .contents-box .feed-pic img {
width: inherit;
height: inherit;
}
3. 그냥 전체적으로 합맞추는게 어려웠음
모듈 잘 끼면 뿅 될줄 알았는데 사진 비율에 맞춰서 예쁘게 늘어나게 만드는게 전체적으로 어려웠다.
다행히 프로필과 footer는 같은 조건, 같은 폭이라 나중엔 프로필에 설정해둔것과 비교하면서 해결했음!
✨ feed-detail
전날 피드를 한게 그나마 다행이었다. 아니면 이 복잡한걸 해결 못했을듯.
동시에...토요일날 그렇게 머리싸매서 해놓고 일요일에 또 똑같은 모양을 만들고 있으려니 정말 환장하는줄 알았다. 복붙만 하면 될것같지만 전혀 아니고요? 그와중에 여긴 또 다른 함정이 있어서 날 헤매게 만드는데....
일단 '태그' 부분을 컴포넌트에서 빼놔서 그거 하나 더 추가하고 컴포넌트 합쳤다가 css 클래스명 겹쳐서 다시 조정하다가 html부터 싹 뜯어고치고 다시 css 적용해서 넘기느라 진을 빼고 시작했다.
✔️ 프로필라인 상단 라운드처리(absolute) + 하단 버튼들 배치 + 레이아웃 변경
1. 프로필 상단 라운드처리
처음 볼때부터 여긴 absolute로 하는수밖에 없겠단 생각을 하긴 했었다. 함정은 사진이 커지는데 프로필이 그 자리에 박혀있으면 안된다는것. 일단 둘이 한 박스로 묶어주긴 했는데 top으로 하면 사진때문에 자꾸밀려서 고민하다가, bottom으로 설정 해보라는 아이디어를 듣고 해봤더니 먹혀서 천만다행이었다!!!!!!!!
<section class="desc-mobile md:d:none-over">
<!-- 피드 사진 모바일 -->
<section class="feed-detail-pic">
<h1 class="d:none">피드상세사진</h1>
<div class="pic-group">
<img src="/images/index/drawing.jpg" alt="운동">
</div>
</section>
<!-- 피드 프로필 모바일 -->
<section class="feed-detail-profile">
<h1 class="d:none">피드 상세보기 프로필 모바일화면</h1>
<div class="feed-detail-pro-list">
<div>
<div class="profile-pic"><img src="/images/커밋2.jpg"></div>
<div><span class="text-profile-name">회원닉네임</span></div>
</div>
<div><button class="btn btn-size-3 btn-color-2 border-radius-5 btn-ing">진행중</button></div>
</div>
</section>
</section>
//----------------------------------
.feed-detail .desc-mobile {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
position: relative;
}
.feed-detail-profile {
position: absolute;
bottom: -50px;
}
▲ 태그가 모바일 이름으로 따로 묶여있는건..... 내가 설계를 복잡하게 해놓은 탓이다.....
2. 공유하기, 댓글, 북마크, 참여하기 버튼 배치
가로버튼 배치가 쉬울것같으면서도 가운데도 띄우면서 비율도 맞추면서 예쁘게 조정하는게 생각보다 힘들다. 기능적요소때문에 댓글버튼이 새로 생기면서 버튼 사이즈도 리사이징했다!
3. 레이아웃 변경
피그마 그릴땐 크게 레이아웃 변경 하면 되겠지 뭐! 라고 생각했는데 저놈의 라운드처리때문에 absolute가 걸려있으니까 레이아웃 넘길때도 꽤나 골이아팠다. 그래서 모바일은 [모바일용 사진+모바일 프로필(absolute처리된)]을 하나로 묶어서 min-width:800일때 날려버리고, [웹화면 사진] + [프로필+하위컨텐츠]로 다시 묶어서 flex-direction:row; 로 변경 후 모바일 화면에선 none처리를 했다.
이때 양쪽에 다 쓰이는 하위컨텐츠들은 (제목~참여하기버튼) 계속 살려둬야해서 웹용 프로필 태그들이 어중간하게 끼어들게 됨. html만 보면 그리 예쁜 구조는 아닌것같다. 아니...웹화면에선 그냥 relative, absolute조건만 풀고 정렬하면 되겠지 했는데 이게 묶이는 문제가 있어서 뜻대로 쉽게 안되더라고...
그리고 디테일화면에 들어가는게 워낙많아서 처음으로 클래스이름때문에 고전했다. 지금도 한끝차이로 중복을 피해가는 애들이 있어서, 다른 컴포넌트 더 붙일때 한번 더 보수를해볼 예정.
그래도 그나마 나았던건 선생님께서 클래스명 같다고 그 안에 다 때려넣지말고 레이아웃/스타일/미디어쿼리 이렇게 섹션을 나눠서 하라고 하셨는데 덕분에 레이아웃 배치에만 집중할 수 있었던것 같다.
이번 작업들로 얻었던건
- 최상위박스는 보통 flex와 center조건만 먹이고 그 아래에 <div>등으로 공간을 만들어서 본격적인 작업을 하는데, 최상위박스에 width:100%;를 해주는게 좋다는 것. 안써도 아래 박스들이 width:inherit;하면 별 문제없을거같은데 div공간을 추가하다 보면 윗박스가 딱히 설정된 width값이 없어서 아래 설정들이 초기화가 될 때가 있었다. 안전하게 그냥 써두는걸로.
- width는 컨텐트 값이다. 인라인 태그가 있을경우는 인라인에 패딩을 먹여야 컨텐트가 늘어나고 width도 그에 맞게 늘어난다!
- 컴포넌트 대충 짜지 말자... 여러 컴포넌트가 동일한 느낌으로 예쁘게 늘어나려면 컴포넌트에 미디어쿼리 넣을때 계산을 잘해둬야 나중에 고생을 덜한다.
- 클래스명을 더 효율적이고 직관적이면서 안겹치도록 짜보자.... 오늘건 나도 정신 없이 이것저것 추가/삭제를 많이해놔서 누가 코드리뷰해달라고 하면 파악좀 해야할듯.
- 레이아웃이 변경될때 폭 800기준으로 해놓았으므로 사진과 컨텐트폭을 합해서 딱 800 혹은 800이하가 되어야한다! 플렉스로 row설정만 하면되지뭐~ 했다간 화면보다 튀어나가는 애들을 만날 수 있을것... 이것때문에 두번다 고생했는데 그냥 길어서 그런거였다. 미디어쿼리에 잊지말고 사진과 컨텐트 폭 초기화 설정넣어주기.
오늘 진짜 너무 힘들었다. 이렇게 또 주말이 가는구만.
만들고보니 예뻐서 좋긴 한데 약간 전생에 무슨죄를 지었나 하는 생각이 스쳐지나가기도 했..😂
제발 마지막까지 잘 구현되게 해주세요. 헤더랑 다른 컴포넌트 더 추가하기 무섭다 진짜...
7시에는 일어나야하는데 지금 새벽 2시반. 내일 수업을 위해서라도 자자!!!
'😵 ~23.11.10 > ✨ Prj.BuildDiary' 카테고리의 다른 글
[BE] 데이터 조인하기 1차 (Feed) & 오류 정리 (0) | 2023.09.26 |
---|---|
[FE] 세부 디자인 조정 중 (0) | 2023.09.24 |
[publishing] html 구조에 좀더 신경쓰며 화면구현하기! (1) | 2023.09.11 |
[FE] feed 모듈 html/css로 구현중 (2) | 2023.09.02 |
[FE] 👀 아이콘 연습하다 너무 귀여워서 헤더를 만들어보았다 (1) | 2023.08.28 |