2013-08-31 2 views
3

자,이 웹 사이트를 운영하고 있습니다. 대부분 PHP로 구동됩니다. header.php와 footer.php 파일이 포함되어 더 깨끗한 작업 영역을 얻을 수 있습니다. 문제는 내 메인 페이지 (홈페이지)가 main.css 파일을 사용한다는 것입니다. 뉴스 페이지에는 많은 유사한 기능이 있으므로 main.css 파일도 사용하지만 news.css 파일에 의해 일부 특정 설정이 무시됩니다. 그것이 모든 HTML이었을 때 나는 그것이 작동하도록 만드는 것이 쉬웠다. (그냥 main.css를 먼저 호출 한 다음 news.css를 호출했다.) 하지만 스타일 시트 호출이 일반적인 헤더 파일에 있기 때문에 예기치 않은 원치 않는 CSS 효과가 홈 페이지에 나타납니다.특정 페이지에 대해 특정 CSS 파일을로드합니까?

PHP에서 news.php가로드 될 때만 news.css 파일을로드하도록 브라우저에 지시 할 수있는 방법이 있습니까?

감사합니다 !!!

if ($current_page == "join") { 
    echo "stylesheet.."; 
} else { 
    echo "another stylesheet.."; 
} 

header.php을 포함하여 if 문을 만족하는 변수를 설정 :

+2

전체 사이트에서 CSS가 정확하도록 수정하는 것이 가장 좋습니다. 추가 스타일 시트의 추가 HTTP 요청 및로드 시간은 이상적이지 않을 수 있습니다. – Scott

답변

2

header.php에서, if 문처럼합니다.

$current_page = "join"; 
include '../header.php'; 
0

당신은 같은 것을 할 수있는 :

if ($_SERVER['PHP_SELF'] == 'http://url-to-news-page') 
    echo '<link rel="stylesheet" href="path-to-stylesheet">'; 

를하거나 URL을 지정하지 않으려면이 같은 somethign, 그냥 경로 (더 나은) 지정하려면 :

if ($_SERVER['SCRIPT_NAME'] == '/path/to/news.php') 
    echo '<link rel="stylesheet" href="path-to-stylesheet">'; 
1

당신은이 라인을 따라 뭔가를 할 수 있습니다

<?php 
if (stristr($_SERVER['SCRIPT_NAME'], 'news.php')) { 
    print('<link rel="stylesheet" type="text/css" href="/news.css">'); 
} 
?> 
0

나는 각 섹션에 분리 된 CSS 파일을 사용하는 것을 크게 좋아하지 않습니다. HTTP 요청을 가능한 한 낮게 유지하는 것을 선호합니다. 또한, 하나의 CSS 파일을 가지고 있으면 내 생각에 미래의 유지 보수가 쉬워집니다.

향후 프로젝트의 경우 각 사이트 섹션에 대한 특정 본문 클래스 또는 ID를 선언 할 수도 있습니다.

<body class="news"> 
<div id="header".... 

이 방법을 사용하면 필요할 때 CSS의 특정 부분을 무시하고 같은 CSS 파일을 사용할 수 있습니다. 당신이 다른 뉴스 섹션 사업부의는 #header의 스타일을해야하는 경우

예를 들어, 당신의 CSS에 당신은 할 수 : body 태그가 header.php에 선언

#header { 
height: 120px; 
background-color: #CCC; 
} 

.news #header { 
height: 40px; 
background-color: #000; 
} 

경우를 포함한다 동적으로 몸 클래스를 추가하기 위해 제안 된 방법 중 하나를 사용할 수 있습니다 : 다음

if ($_SERVER['PHP_SELF'] == 'http://url-to-news-page') { 
$body_class="news"; 
} 

과 :

<body class="<?php echo $body_class;?>"> 
0123을자세한 내용은
관련 문제