CSS를 사용하는 방식을 약간 변경하고 싶습니다. 색상이나 무언가를 정의하기 위해 변수를 사용할 수 있기를 원합니다. 그래서 다음과 같이 할 수 있습니다.PHP를 사용하여 CSS 개선하기
var red = '#FF0000';
물론 적절한 경우 '빨간색'은 '# FF0000'으로 바뀝니다.
어떻게하면됩니까? 나는 일종의 방법을 알고, 나는 단지 정규식을 모른다. 또는 이것이 최선의 방법 일지라도.
CSS를 사용하는 방식을 약간 변경하고 싶습니다. 색상이나 무언가를 정의하기 위해 변수를 사용할 수 있기를 원합니다. 그래서 다음과 같이 할 수 있습니다.PHP를 사용하여 CSS 개선하기
var red = '#FF0000';
물론 적절한 경우 '빨간색'은 '# FF0000'으로 바뀝니다.
어떻게하면됩니까? 나는 일종의 방법을 알고, 나는 단지 정규식을 모른다. 또는 이것이 최선의 방법 일지라도.
이렇게 할 수 있습니다. 간단히 .css 파일에 PHP를 작성하여 HTML 파일을 작성한 다음 웹 서버 (아마 아파치)에게 PHP로 해당 파일을 구문 분석하도록 알려주십시오.
당신은 당신의 CSS를 디렉토리에 .htaccess 파일에이를 추가 할 수
AddHandler php5-script .css
그러나, 그것은 당신의 CSS 파일의 로딩 속도를 느리게하고, 최종 사용자 캐싱을 방지하므로 나쁜 기술이다 속도 차이를 많이 내지 못한다. 그것은 성능에 신경 쓰지 않는 웹 사이트를위한 편리한 지름길이 될 수 있습니다.
그 방법의 절반입니다 : p –
다른 부분을 포함하도록 업데이트 ... –
당신은 같은 것을 할 수있는이 잘 작동해야
<?php
header('Content-type: text/css');
$red = '#F00';
?>
body {
background: <?=$red?>
}
style.css.php합니다.
일부 브라우저는 .css라고하지 않는 CSS 파일을 질식 시키므로, .htaccess에서 다시 작성해야합니다. –
다시 쓸 필요가 없습니다. path_info에 .css 이름을 넣으면 (콘텐츠 형식 헤더와 함께) 브라우저가 정상적으로 작동합니다. –
Paul : 참고로? 나는 그런 일을 할 수있는 브라우저 (넷스케이프 4로 되돌아 간다.)를 알고 있지 않다. 파일 이름은 부적합합니다. 물론 스크립트에서'Content-Type' 권한을 얻어야합니다. – bobince
이 같은 문제에 직면했을 때, 나는 외부 CSS 파일에 많은 변화가없는 CSS를 배치하고 HTML/PHP 파일의 머리 부분으로 변경된 CSS를 표시했습니다. 이렇게하면 외부 파일에 CSS를 모두 갖고 싶지만 비표준 Apache 구성을 작성하는 데 드는 비용은 외부 css 파일을 가질 필요가 없다는 독단적 인 필요성이 없습니다.
가장 좋은 방법은 일부 템플릿 파일을 만든 다음 PHP 스크립트로 처리하여 플랫 CSS 파일을 출력하는 것입니다. 인터넷에서 파고들 수 있으며 멋진 CSS 미니 마이 져를 찾을 수 있습니다. 더 많은 성능을 끌어낼 수 있습니다. 몇 가지 유의할 점 :
1) 보안 - 웹을 통해 작성 스크립트를 실행하는 경우 웹 루트 외부에서 템플릿 파일을 유지하는 것이 좋습니다. 그것이 나 였다면 빌더와 템플리트를 웹 루트 외부에 두어 명령 행에서 빌더 스크립트를 실행하십시오.
2) CSS가 실제로 충분히 가치가있는 복잡한 경우 "사물의 이름"에 대해 오랫동안 열심히 생각하십시오. $ red는 특별히 좋은 이름은 아닙니다. 이제는 변수이기 때문에 어떤 시점에서 $ red는 실제로 파란색 일 것입니다 (# 00F처럼)! 이 작업을 수행 할 때마다 스타일 시트에서 값을 나타내는 변수에 대한 설명이 포함 된 이름을 사용하는 것이 진짜 수수께끼였습니다.
편집 : 내가 대답 한 이래로이 문제를 해결하는 compass을 찾았습니다. 자신의 동적 CSS 시스템을 롤업하기 전에 한 번 해볼만한 가치가 있습니다.
처음으로 Paul McMillan님께 말씀하셨습니다.htaccess로 파일
AddHandler php5-script .css
두 번째는 (예를 들어, 동적 헤더 배경을 변경하는)처럼 whatever.css
파일보기 뭔가를 만들어 (코드는 무엇을 사용 호스팅 회사에 따라 다를 수 있습니다)
<?php header('Content-type: text/css'); ?>
#header {
background-image: url("http://myurl.com/images/<?php switch (rand(0,4)) {
case 0:
echo 'green';
break;
case 1:
echo 'red';
break;
case 2:
echo 'blue';
break;
case 3 :
echo 'purple';
break;
case 4:
echo 'orange';
break;
}
?>.png");
}
'text/css', Firefox가 스타일 시트를 거부하지 않는 한. – bobince
@bobince : 감사합니다. 변경됨! –
아마도 당신이 찾고있는 것을 수행하는 가장 좋은 방법은 CSS 프레임 워크를 사용하는 것입니다. 당신은 아주 쉽게 상수를 정의 할 수 있습니다 CSScaffold
에서보세요 : 최고의 부품의
@constants {
red: #f00;
}
하나는 당신이 원하는대로 선택에 CSS 스타일을 포함하는 유지 mixin을 사용할 수 있습니다.
더 복잡한 경우를 묻는 것일 수도 있습니다. 그러나 CSS에서는 # FF0000이라고 말하면 어디에서나 "빨간색"이라고 말할 수 있습니다. 문자열 자체는 인식됩니다. 5 월 컬러 이름이 CSS에서 인식됩니다. – Aishwar