테스트 사이트 - 개발 중인 베타 버전입니다

안녕하세요 질문입니다 채택완료

이현진44 8개월 전 조회 1,514

</p>

<p><!-- darkmode/lightmode tail part-->

  <button type="button" onclick="toggleDarkMode()" class="btn_dark_mode">

  <span class="sound_only">다크모드 전환</span>

  <!--<i class="fa fa-moon-o" aria-hidden="true"></i>-->

  <i class="fa-solid fa-moon fa-beat" style="color:#ffd700"></i>

  <i class="fa-solid fa-sun fa-beat" style="color:#ff0000"></i>   

</button>

<style>

.btn_dark_mode {   

  position: fixed;

  right: 20px; 

  bottom: 80px;

  width: 50px;

  height: 50px;

  border: 1px solid #ddd;

  border-radius: 50%;

  background: #fff;

  font-size: 20px;

  z-index: 999;

  cursor: pointer;

  transition: all 0.3s ease;

  box-shadow: 0 2px 5px rgba(0,0,0,0.1);

}

.btn_dark_mode:hover {

  /*background: #eee;*/

  background: #f5f5f5;

  transform: scale(1.05);

}

/* 다크모드일 때 */

/*

.darkreader .btn_dark_mode {   

  background: #333;

  border-color: #666;

  color: #fff;

}

*/

.darkreader .btn_dark_mode {   

  background: #2d2d2d;

  border-color: #404040;

  color: #ffffff;

  box-shadow: 0 2px 5px rgb(255, 255, 255);

}</p>

<p>.darkreader .btn_dark_mode:hover {

  background: #3d3d3d;

}

</style>

<!-- darkmode/lightmode tail part-->

 </p>

<p>

<!---dark mode/light mode(head part)-->

 <?php

// head.sub.php 하단에 추가

//$darkreader = get_cookie('darkreader');//not working as null cookie, so use below code.

$darkreader = isset($_COOKIE['darkreader']) ? $_COOKIE['darkreader'] : '';

?>

<!-- darkreader 스크립트 추가 -->

<script src="<a href="https://cdnjs.cloudflare.com/ajax/libs/darkreader/4.9.58/darkreader.min.js"></script>" target="_blank" rel="noopener noreferrer">https://cdnjs.cloudflare.com/ajax/libs/darkreader/4.9.58/darkreader.min.js"></script></a>

<script>

// 다크모드 토글 함수

function toggleDarkMode() {

  if (DarkReader.isEnabled()) {

    DarkReader.disable();    

    set_cookie('darkreader', '', 365); 

  } else {

    DarkReader.enable({

      brightness: 100,

      contrast: 90,

      sepia: 10

    });

    set_cookie('darkreader', 'enabled', 365);

  }  

}

// 초기 다크모드 상태 설정

window.addEventListener('DOMContentLoaded', () => {

  if('<?php echo $darkreader?>' === 'enabled') {

    DarkReader.enable({

      brightness: 100,

      contrast: 90, 

      sepia: 10

    });

  }

});

</script> 

<!---dark mode/light mode(head part)-->

안녕하세요 다크모드 만들기중인데 위의 코드를 이용해서 버튼 만들고 기능까지 했는데 위젯부분은 색이 변화되는데 헤드랑 바디 배경색이 안바뀝니다  뭐가 문제일까요 ?

 

보니까 게시판의 경우 basic 게시판은 제대로 바뀌는데 basic-board 게시판이 안바뀌네요 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
glitter0gim
8개월 전

헤드/바디가 바뀌지 않음은 CSS 적용 범위 문제와 DarkReader 스크립트의 영향 때문입니다.

DarkReader 기본은 filter: invert(100%) hue-rotate(180deg); 방식으로 다크모드를 적용하는데,

일부 요소가 예외 처리되어 기본 스타일을 유지해서일 것입니다.

그래서 헤드/바디가 다크모드 직접 적용되지 않았을 수 있으므로,

darkreader 클래스가 바디에 적용될 때 이를 직접 스타일링하는 추가 CSS가 필요합니다.

 

basic-board 게시판만 적용되지 않음은 개별 CSS 파일이 별도로 존재하거나,

기본적인 다크모드 스타일이 특정 클래스로 한정 적용되어 있을 가능성이 큽니다.

basic 게시판과 basic-board 게시판이 서로 다른 스타일 파일을 로드하고 있어서~

 

*헤드와 바디에도 다크모드 스타일을 강제 적용

.darkreader body {   background-color: #2d2d2d !important;   color: #ffffff !important; }

.darkreader a {   color: #ffcc00 !important; }

.darkreader header, .darkreader footer {   background-color: #1a1a1a !important; }

.darkreader .container, .darkreader .wrapper {   background-color: #2d2d2d !important; }

.darkreader h1, .darkreader h2, .darkreader h3, .darkreader h4, .darkreader h5, .darkreader h6 {   color: #ffffff !important; }

*../basic-board/style.css, body 또는 .container 등의 색상이 강제로 지정되어 있는지 확인

- 아래 내용을 확인/추가

.darkreader body, .darkreader .container, .darkreader .wrapper {   background-color: #2d2d2d !important;   color: #ffffff !important; }

.darkreader a {   color: #ffcc00 !important; }

 

★붙임) DarkReader가 자동 적용 않되거나 강제로 배경/글자색을 지정하고 싶으시면,

JavaScript를 통해 직접 색을 변경하는 방법도 있음. (상기의 적용이 않될 때)

- head.sub.php에 아래 스크립트 추가 ( 선택적인 사용 )

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

이현진44
8개월 전
위에 코드를 어디에 붙여줘야 될까요 ?
g
glitter0gim
8개월 전
해당 스타일 시트에 적용하셔야죠~
basic이나 basic-board 해당 폴더에 각각의 시트(style.css)가 있지 않나요?
/amina/skin/board/basic/style.css - 정상
/amina/skin/board/basic-board/style.css - 비정상
테마 스타일을 변경하시려면 /amina/theme/사용테마/css/style.css 수정
위젯 및 확장 기능을 활용하시려면 /amina/widget/ 폴더에서 관련 기능을 확인
이현진44
8개월 전
감사합니다 ㅎㅎ
g
glitter0gim
8개월 전
٩(。•ㅅ•。)۶

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인