프로그래밍/블로그

[티스토리 스킨] 페이징에 '...'을 처리하자

당근천국 2016. 10. 11. 15:00

티스토리의 페이징 처리는 자동으로 바인딩해주기 때문에 css만 신경 쓰면 되는데....

'...'은 따로 노는 현상이 있습니다.

 

오노!!!

 

1. 원인

html을 확인하면 '...'만 'li'태그가 없는 것을 확인할 수 있습니다.

 

 

아마도 티스토리 쪽에서 '...'은 바인딩 처리를 하지 않는 거 같네요.

 

2. 해결 방법

css를 조작할 수 있다면 '.interword'를 재정의 하여 처리하시면 됩니다.

다른 방법은 자바스크립트(javascript)를 이용하는 방법입니다.

 

css를 조작하는 건 html작업과 연관 있으니 각자 처리해야 합니다.

저는 제이쿼리(jquery)를 이용하여 '...'을 '<li></li>'로 감싸는 방법을 사용하겠습니다.

'<li></li>'로 감싸주기만 하면 상속받은 스타일이 먹힐 테니 별도의 작업이 필요 없다는 장점이 있습니다.

(참고 : [javascript, Jquery] 요소(Element)를 태그(Html tag)로 감싸기(wrap) )

 

'.interword'를 사용하는 항목을 찾아서 '.wrap'함수를 사용하여 '<li></li>'로 감싸줍니다.

 

1
2
3
4
$(document).ready(function () {
    //페이징에 '...'의 li태그를 추가 합니다.
    $('.interword').wrap('<li></li>');
});
cs

 

이제 적용 상태를 확인해 봅시다.

 

원하는 대로 적용된 것을 확인할 수 있습니다.

 

자바스크립트로 처리하려면 'innerHTML'을 이용합니다.

 

1
2
3
4
5
6
7
8
9
10
11
//페이징에 '...'의 li태그를 추가 합니다.
//li를 추가할 태그를 찾고
var span = document.getElementsByClassName('interword')[0];
//li를 생성해서
var li = document.createElement('LI');
//생성한 태그에 기존 태그를 추가하고
li.innerHTML = span.outerHTML;
//부모에 추가한 다음에
span.parentNode.insertBefore(li, span);
//기존 태그를 지운다.
span.remove();
cs