div 색상변경

div 색상변경

QA

div 색상변경

본문

안녕하세요?

 

div로 만들어진 메뉴에서 해당 메뉴가 선택되면 색상이 변해있게 하려면 어떻게 해야 하나요?

조언 부탁드리겠습니다.

감사합니다

이 질문에 댓글 쓰기 :

답변 3

원리를 이해하시면 쉽습니다!

일단 아래 링크 들어가셔서 메뉴 눌러보셔요.

https://false9.co.kr/_20200911/page1.php

페이지 에다가 <?php $pagename = "회사소개"; ?> 이렇게 이름 정해주시고,

변경될 클래스 넣어주시면 끝입니다 ㅠ <?php if($pagename == "회사소개") { ?>active<?php } ?>

 

https://false9.co.kr/_20200911.zip (클릭말고 복사해서 붙여넣으세요~)
샘플로 코딩을 했으니 위 링크에서 다운받아서 해보세요~

화이팅!

 

 

pagename 을 정의해줘야 합니다.

<?
$pagename = explode('.', basename($_SERVER['PHP_SELF']));
?>

위처럼 적은후,

내가 만든 페이지가 aaa.php 라면

<div <?php if($pagename[0] =='aaa'){?>class="menu_on"<?php } ?>>메뉴명</div>

aaa 라는 페이지가 일치할때 menu_on 클래스가 동작합니다.

 

게시판이라면?

<div <?php if($bo_table =='notice'){?>class="menu_on"<?php } ?>>공지사항</div>

notice = 게시판명

 

여러가지 방법이 많습니다~~

https://zetawiki.com/wiki/PHP_%ED%98%84%EC%9E%AC_%ED%8E%98%EC%9D%B4%EC%A7%80_URL_%EC%A3%BC%EC%86%8C_%ED%99%95%EC%9D%B8

위 링크도 한번 보시면 더 도움되실겁니다.

 

 

 

 

여러가지 방법이 있겠지만..

조건이 참일때 class 를 넣어주는 방법 입니다.

 

우선 활성화시 표현될 스타일을 active 에다가 넣어줍니다.

.active {background-color:#ffcccc;}

 

각 페이지를 구분할 수 있는 기준을 정해주기위해

$pagename="aaa";  형태로 각 페이지에 이름을 정해줍니다.

 

활성화 처리를 할곳에 조건을 넣어줍니다.

<div class="menu1 <?php if ($pagename == "aaa") { ?>active<?php } ?>">메뉴1</div>

(현재 페이지에 $pagename이 aaa인 경우 class="" 에 active 를 출력)

 

이렇게 했을때 열려있는 페이지에 $pagename="aaa"; 가 있으면 참이 되므로

<div class="menu1 active">메뉴1</div> 이렇게 표현이 되겠죠?

 

이런형태로 aaa, bbb 등등 지정해주면 되겠습니다.

다소 노가다적인 방법이지만 최소한의 설명으로 구현되는 내용이라

이방법으로..^^;

 

 

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$outlogin_skin_url.'/style.css">', 0);

include_once(G5_THEME_PATH.'/head.sub.php');
include_once(G5_LIB_PATH.'/latest.lib.php');
include_once(G5_LIB_PATH.'/outlogin.lib.php');
include_once(G5_LIB_PATH.'/poll.lib.php');
include_once(G5_LIB_PATH.'/visit.lib.php');
include_once(G5_LIB_PATH.'/connect.lib.php');
include_once(G5_LIB_PATH.'/popular.lib.php');
?>

<style>
.active {background-color:#f6f6f6;}
</style>

<?
$pagename = explode('.', basename($_SERVER['PHP_SELF']));
$bo_table = explode('.', basename($_SERVER['PHP_SELF']));
?>

<?php echo $bo_table ?>
<?php echo $pagename ?>

=======위의 두줄을 출력해 보았는데 Array 라고만 출력이 됩니다

<div class="menu <?php if ($bo_table = "notice") { ?>active<?php } ?>" style=" cursor: pointer;border-bottom:0px;" onclick="location.href='<?php echo G5_BBS_URL ?>/board.php?bo_table=notice'"
>공지사항</div>
<div class="menu <?php if ($bo_table = "download") { ?>active<?php } ?>" style=" cursor: pointer;" onclick="location.href='<?php echo G5_BBS_URL ?>/board.php?bo_table=download'"
>다운로드</div>

답변 너무나도 감사합니다
님이 말씀하신대로 해보았는데 제가 잘몰라서 실행이 안되고 있습니다

위에 적은 소스대로 이렇게도 해보고 저렇게도 해보는데
잘안되고 있습니다

조금더 조언을 부탁드려도 될까요?

($bo_table = "download") 이 부분은

= 이 하나일때도 두개일때도 동일하게 실행이 안되고 있습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 123,117 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT