개발공작소
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

개발공작소

@모찌바라기

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