티스토리

티스토리: 글 안에 CSS 스타일 태그 넣기

eoureo 2024. 12. 15. 20:47

티스토리에서는 포스트 글 안에 <style> 태그를 직접 넣는 것이 기본적으로 허용되지 않습니다. 티스토리 편집기에서 HTML 모드<style> 태그를 입력한 후 기본 모드로 전환하면 해당 태그가 삭제됩니다. 이 <style> 태그뿐만 아니라 onclick 속성, 줄 안에 이미지, SVG 태그 등 몇몇 HTML 요소 삽입에도 제한이 있습니다. 물론 티스토리 스킨 편집 기능을 이용해 스타일을 추가할 수는 있지만, 이는 특정 글 하나에만 스타일을 적용하기에는 다소 번거로운 방법입니다.

이 문제를 해결하기 위해, HTML 소스를 수정한 후 HTML 모드에서 곧바로 완료 버튼을 눌러 저장하는 방법을 사용할 수 있습니다. 이 방법은 기본 모드로 전환하지 않기 때문에 수정 내용을 유지할 수 있게 해 줍니다. 하지만, 수정된 글을 다시 열어 편집하려고 하면, 기본 모드로 열리면서 애써 작성한 <style> 태그가 사라져 버립니다.

다행히 티스토리에서는 JavaScript를 사용할 수 있기 때문에, 이를 활용해 문제를 우회할 수 있습니다.

 

JavaScript로 스타일 추가하기

JavaScript를 사용해 <style> 태그를 동적으로 추가하는 방법입니다. 아래 코드는 <head> 태그에 스타일을 삽입하는 방식입니다.

<script>
  const style_241145 = document.createElement('style');
  style_241145.id = "style_241145";
  style_241145.innerHTML = `
/* 여기에 CSS 스타일 구문이 들어갑니다. */
  `;
  document.head.appendChild(style_241145);
</script>

 

다음 방법을 이용할 수도 있습니다. <style> 태그 자체를 코드가 삽입된 글 위치에 삽입하는 방식입니다.

<script>
  document.write(`
<style id="style_241145">
/* 여기에 CSS 스타일 구문이 들어갑니다. */
</style>
  `);
</script>

 

혹시나 "style_241145" 같은 변수 이름이나 id가 다른 글이나 티스토리에서 중복 사용하여 예기치 않는 문제가 일어날 수 있으므로 저처럼 중복 가능성이 낮은 이름으로 바꾸는 것이 좋습니다.

 

사용예

아래는 버튼 스타일을 적용하는 예제입니다. W3Schools의 CSS Buttons(https://www.w3schools.com/css/css3_buttons.asp)의 예제를 조금 고쳐봤습니다.

소스 코드

<p data-ke-size="size16"><span>스타일이 적용 안된 버튼</span></p>
<p><button><span>Click Me</span></button></p>
<p data-ke-size="size16"><span>스타일이 적용 된 버튼</span></p>
<p data-ke-size="size16"><span>
  <button class="button_241145"><span>Click Me</span></button>
  <button class="button_241145"><span>눌러봐</span></button>
</span></p>
<script>
  const style_241145 = document.createElement('style');
  style_241145.id = "style_241145";
  style_241145.innerHTML = `
.button_241145 {
  display: inline-block;
  padding: 15px 25px;
  width: 200px;
  font-size: 24px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  outline: none;
  color: #fff;
  background-color: #04AA6D;
  border: none;
  border-radius: 15px;
  box-shadow: 0 9px #999;
}

.button_241145:hover {background-color: #f4511e}

.button_241145:active {
  background-color: #3e8e41;
  box-shadow: 0 5px #666;
  transform: translateY(4px);
}

.button_241145 span {
  cursor: pointer;
  display: inline-block;
  position: relative;
  transition: 0.5s;
}

.button_241145 span:after {
  content: '»'; /* \ 00bb U+00BB */ 
  position: absolute;
  opacity: 0;
  top: 0;
  right: -20px;
  transition: 0.5s;
}

.button_241145:hover span {
  padding-right: 25px;
}

.button_241145:hover span:after {
  opacity: 1;
  right: 0;
}
  `;
  document.head.appendChild(style_241145);
</script>

 

실행 결과

위 코드를 HTML 모드에서 붙여넣으면 다음과 같은 결과를 확인할 수 있습니다. 이 문장 바로 다음에 붙여 넣었습니다.

 

스타일이 적용 안된 버튼

스타일이 적용 된 버튼

 

 

마치며

위 방법을 통해 티스토리 글 안에서도 그 포스트 안에서만 사용하는 스타일을 손쉽게 추가할 수 있습니다. 궁금한 점이나 의견이 있다면 댓글로 남겨주세요! 😊