html5 vanilla JS CSS3
가끔 고객이 아 이 페이지는 다른 대메뉴의 하위메뉴로 옮겨주세요~ 라는 등 사이트맵 구조가 바뀌면 html DOM을 일일히 수정하는 노가다 작업을 해야하는데 그게 너무 싫지 않습니까...
1) 모든 페이지에 일일히 하드코딩으로 <li>대메뉴</li> <li>중메뉴</li> <li>소메뉴</li> 타이핑해주기
2)
위의 방법은 일일히 ctrl+F 해서 찾아서 수정해야함. 인간은 반드시 실수를 함.. 뭔가 빼먹게 되어있음
그래서 이번엔 페이지 상단 스크립트에 선언을 해서
var depth_1 = '대메뉴명'
var depth_2 = '중메뉴명'
<li class="depth_1">0000</li> <li class="depth_2">00000</li> : HTML DOM은 이렇게 작성하고
스크립트 파일에서 for문을 돌려 해당 클래스명을 가진 DOM의 innerHTML을 변수에 선언해준 스트링값으로 몽창 전환하는 방법을 썼었음.
ㄱ그러나 이 방식도 굉장히 귀찮은게 결국 depth가 깊어지거나 짧으면 HTML DOM을 직접적으로 추가하고 삭제해야함
3)
그래서 생각한게 지금 이 방법.
depth가 아무리 깊어지더라도 자동으로 알아서 DOM 객체를 선언해주면 좋겠는데....
HTML + CSS + JS(배열은 이후 유지보수 및 수정을 감안하여 찾기 쉬운 head 상단에 선언하는게 좋다)
그리고 JS
결과물
depth가 얼마나 늘어나든~~ 알아서 추가해주고
CSS에서 last-child 속성을 이용하여 화살표 제거 및 최종 depth(현재 페이지)를 강조 표시 할 수 있다.
저는 친절하니까 파일도 올려드림
'CSS&JS > ⚡Thinkers' 카테고리의 다른 글
ColorThief를 이용하여 이미지에서 색 추출하기 (0) | 2020.11.06 |
---|---|
ajax(jQuery / vanilla JS)로 탭메뉴 만들어보기 (0) | 2020.10.30 |
onfocusin onfocusout을 이용하여 input, select floating label처럼 만들기 (0) | 2020.03.20 |
CSS 커스텀 체크박스 + vanilla JS로 체크박스 전체선택, 전체해제 (2) (0) | 2020.03.11 |
checkbox 전체선택, 전체해제.... 한 페이지에 아이템이 여러개 있을 경우 / 여러페이지 일괄 적용 가능한 vanilla JS (0) | 2020.01.30 |