안녕하세요 질문입니다

안녕하세요 질문입니다

QA

안녕하세요 질문입니다

답변 1

사용하는 빌더

아미나

본문


<!-- 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);
}
.darkreader .btn_dark_mode:hover {
  background: #3d3d3d;
}
</style>
<!-- darkmode/lightmode tail part-->
 
<!---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="https://cdnjs.cloudflare.com/ajax/libs/darkreader/4.9.58/darkreader.min.js"></script>
<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

헤드/바디가 바뀌지 않음은 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에 아래 스크립트 추가 ( 선택적인 사용 )

<script>
window.addEventListener('DOMContentLoaded', () => {
  if (DarkReader.isEnabled()) {
    document.body.style.backgroundColor = "#2d2d2d";
    document.body.style.color = "#ffffff";
  }
});
</script>

해당 스타일 시트에 적용하셔야죠~
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/ 폴더에서 관련 기능을 확인

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 898
© SIRSOFT
현재 페이지 제일 처음으로