개발공작소
728x90

 

 

 

 

어디서 설정했는지 모르는  element.style이 어디선가 적용되어서 CSS가 이상해지는 현상이 예전에도 몇번 있었는데,

그때는 그냥 프로젝트를 하다보니, 시간에 쫒겨서 그냥 !important 속성을 줘서 해결하고 넘어갔었다.

 

 

이번에 시간이 조금 남는 겸 한번 정리해봄..

 

 

element.style이란?

 

element.style CSS 선택자보다 더 높은 특이성 값을 가진 요소의 인라인 스타일을 나타내는 브라우저 개발도구의 일부

-  참조링크

 

element.style을 주는방식은 다음과 같이 크게 2가지 방식이 있다.

 

 

인라인 방식으로 직접 태그에 style을 주는 방법

 

인라인 방식 샘플

<div style="color : red;">스타일 테스트</div>

 

 

javascript 문법을 활용하여 태그에 style속성을 추가

 

javascript문법을 활용하여 style추가

document.querySelector('#L_p04').style.color = "red";

 

인라인 방식이라면 그냥 해당 태그를 가면 손쉽게 찾을 수 있지만, 문제는 js에서 줬을 때이다..

속성값을 하드코딩 했다면 찾기 쉽겠지만, 함수를 써서 속성값을 줬다면 이게 또 찾기 힘들어진다.

 

우선 다음과 같은 곳을 찾아보도록 하자.

 

 

1) 해당 태그에 인라인 방식으로 css를 줬는가? 

2) js파일에서 style을 추가 해주었는가? 

 

 

그래서 디버깅을 해보니, 제이쿼리를 통해 어떤함수를 호출할 때 css속성이 element.style에 추가되는 것을 발견

 

그래서 구글링을 해보니, 제이쿼리나 javascript에서 해당 값을 줬을 수도 있으니 잘 찾아보라는 이야기뿐..

근데 아까도 말했듯이 찾기 힘듦.. 그래서 오늘은 난 도저히 못찾겠다. 그냥 element.style을 수정하겠다 할 때

 

element.style을 수정하는 방법을 정리해보려 한다.

 

 

element.style 수정방법

 

해당 element.style을 주는 곳을 찾는 게 맞지만, 어쩔 수 없는 경우 아래와 같은 방식으로

element.style을 수정할 수 있다.

 

 

!important 속성

#선택자 { color:red !important;}

css를 줄 때 !important 속성을 주어서, 해당 css속성의 우선순위를 가장 높게 잡아준다.

( !important를 너무 남발하지는 말자.. 나중에 css를 변경했는데, 왜 안돼지.. 하고 벙 찌는 상황이 생길지도.. )

 

 

javascript를 통해 element.style 제거

document.querySelector('#선택자').removeAttribute('style');

querySelector함수를 통해 선택자로 가져온 태그의 style속성을 아예 없애버린다. 

특정 css속성만 제거하고 싶다면 아래와 같이 해도 된다.

 

document.querySelector([선택자]).style.removeProperty([]);

 

 

 

결론

 

가장 베스트한 정답은 해당 element.style을 주는 곳을 찾는 것이고

도저히 못찾겠으면 element.style을 수정할 수 있다.

( 나중에 알게 된 사실인데, 처음 보는 js에서 해당 값을 함수를 통해서 주더라.. 디버깅을 꼼꼼히 하도록 하자.. )

 

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!