List Item Height
아직 정리 안됐음.
쇼핑몰 상품 리스트와 같이 여러개의 리스트 항목을 표같이 줄단위로 정렬할 때 각 항목의 높이가 다르면 줄이 맞지 않는다. 또한 브라우저마다 클리어(clear)의 구현이 달라서 줄단위로 리스트를 나누고 클리어 시켜줘야 하는 문제가 있다. 이를 해결하기 위해서 줄단위로 모든 항목의 높이를 가장 큰 값으로 조정해 주는 스크립트 이다.
function initListItemHeight(item_per_row) { var i = 0, j = 0, k = 0, l = 0, m = 0; function getMaxHeight(arr) { var arr_count = 0; var i = 0; var temp_max = 0; arr_count = arr.length; for (i = 0; i < arr_count; i++) { temp_max = Math.max(temp_max, arr[i].offsetHeight); } return temp_max; } var els = document.getElementById("M1W-subcontent").getElementsByTagName("ul"); var list_items = new Array(); for (m = 0; m < els.length; m++) { if (els.item(m).className != "section") { continue; } var lists = els.item(m).childNodes; l = 0; for (k = 0; k < lists.length; k++) { if (lists.item(k).tagName == "LI") { list_items[l++] = lists.item(k); } else { continue; } } //* for (i = 0; i < list_items.length - 1; i = i + item_per_row) { var maxHeight = 0; j = 0; k = 0; var line = new Array(); for (j = 0; j < item_per_row; j++) { if (list_items[i + j]) { line[j] = list_items[i + j]; } } maxHeight = getMaxHeight(line); for (k = line.length; k > 0; k-- ) { list_items[i + k - 1].style.height = maxHeight + "px"; } } //*/ } } initListItemHeight(3);