Extra Form
PHP PHP 7.0
CMS Rhymix

버튼을 누르면 다크모드, 다시 누르면 기존모드 이 두가지를 사용하고싶습니다.

이미 이런걸 적용하는 사이트들도 있는데요..

 

원리가 궁금합니다.

 

버튼을 누르면 css 적용 파일이 바뀌는걸까요? 레이아웃과 게시판 css 두가지 모두 바꿔줘야 하나요?

 

그리고 제일 궁금한건, 한번 다크모드로 설정한 회원은 계속 다크모드로 유지하고싶은데, 이게 제일 어렵네요..

어떤 방식으로 하면 될까요?

  • ?
    저도 알아보고 있어요 다른 곳에 그런 곳이 있어서요
    애드온이나 이런것을 제작해야 할것 같아요
  • ? ?
    이런 애드온도 곧 나오긴 하겠죠? 아직은 없는건지 제가 못찾은건지, 연구해봐야겠어요~
  • profile

    다크모드 버튼을 누르면 쿠키를 생성하면 되구요. 쿠키가 있고 없음에 맞춰서 css를 다르게 불러오면 됩니다.

     

    레이아웃이던 어디던 필요한 부분이 나이트모드에 적합한 것으로 준비된 것으로 불러오면 되는거죠.

  • profile ?
    쿠키를 사용해야하는군요, 구키사용에 대해서 공부를 해봐야겠네요~!
    고맙습니다!
  • profile
    쿠키에 저장하거나 회원 확장변수에 담는 방법도 있겠네요.
    그리고
    현재 몇몇 최신 브라우저(?)에서 운영체제에서 다크모드 활성화시
    다크모드인지 알수 있는듯 합니다
    물론 어디까지나 브라우저가 지원 해야하구요
    ios13 개발자 버전에선 되더라구요 그래서 시험사마 테스트 해보려구요

    다크모드같는 경우는 작정하고 나온 스킨 아니면 커스터마이징이 많이 필요합니다
  • profile ?
    회원확장 변수에 담으면 로그인사용자만 사용할 수 있겠군요~
    더 공부해야겠어요~ 고맙습니다!
  • profile
    1. 애드온으로는 제어가 어렵습니다.
    다크모드라는 것이 결국 화면에 보여지는 html을 제어하는 것인데
    레이아웃마다, 또 사용자가 레이아웃을 수정할때마다 다 달라집니다.
    일괄로 변경이 불가능하다는 것이죠.
    애드온으로 body에 background를 #000을 먹여도 레이아웃의 contents에 #fff가 먹여 있으면 본문영역은 흰색이 됩니다.
    요소의 id나 class는 다 제각각이므로 모든 레이아웃에 적용되는 애드온을 만들기는 레이아웃의 갯수만큼 적용을 해야 한다는 것으로 불가능에 가깝습니다.

    2. 이런 이유에서 다크모드는 레이아웃에서 제공을 해야 합니다.
    옛날 기준은 생각하지 않고 요즘 기준에서만 생각하면 레이아웃에서 css를 2가지로 만들어야 한다는 거죠.
    모든 css를 다크모드가 적용된 것으로 새롭게 만들어줘야 하고, 로고 같은 이미지 요소의 경우 배경색에 영향을 받는다면 두가지를 모두 올릴수 있게 해야 합니다.
    레이아웃에 대한 전반적인 이해가 필요합니다.

    3. 다크모드가 1회성이냐 사용자별로 저장이 되느냐에 따라서 설정을 저장하는 방법을 달리 가져가야 합니다.
    쿠키/세션/회원정보 등을 활용할수 있겠죠.
    세션은 브라우저가 닫히면 날라가므로 1회성으로 한정되고
    쿠키는 기간을 늘려주면 그만큼 저장되겠죠.
    회원정보는 본인이 바꾸지 않는 이상 계속 될테구요.
  • profile ?
    쿠키로 하는 방법은 알겠는데, 회원정보에서 제어가 할 수 있나요? 이 방법도 좋을것 같습니다.
  • ? profile
    회원정보 db의 어떤 필드에 저장하는 거죠. 필드를 추가할수도 있고, 확장변수에 넣을수도 있겠죠.
  • profile ?
    회원정보는 한번도 안건들여봤는데, 한번 찾아봐야겠군요~! 너무 고맙습니다!