여러 CSS를 하나로 생성하는 스크립트 작업 중입니다. 그리고 여기 스크립트가 있습니다.여러 CSS 파일을 하나의 PHP로 병합
$full_string = "";
foreach($allfiles as $curfile => $file) {
$file = $PATH[$curfile] . $file;
$file_open = fopen($file , 'r');
$concat = "\n" . fread($file_open , filesize($file)) . "\n";
$full_string .= $concat;
fclose($file_open);
}
return $full_string;
여기 모든 CSS 파일을 하나로 결합합니다. 하지만 문제는 현재 CSS ($ 파일)을 다른 CSS와 비교해야한다는 것입니다 (이것을 overrider.css
으로 생각합시다). 그리고 $ 파일은 스타일 등을 가진 경우
h1 {
color: white;
background: teal;
FONT-FAMILY: arial, helvetica, lucida-sans, sans-serif;
FONT-SIZE: 18pt;
FONT-STYLE: normal;
FONT-VARIANT: normal;
}
body
{
font-family: arial;
FONT-SIZE: 14px;
}
및
overrider.css는 스타일처럼해야 생성body
{
font-family: Calibri;
color: #3E83F1;
}
그런 다음 최종 CSS (output.css),
가있는 경우h1 {
color: white;
background: teal;
FONT-FAMILY: arial, helvetica, lucida-sans, sans-serif;
FONT-SIZE: 18pt;
FONT-STYLE: normal;
FONT-VARIANT: normal;
}
body
{
font-family: Calibri;
FONT-SIZE: 14px;
color: #3E83F1;
}
override.css
의 본문 스타일은 font-family
이므로 원래 CSS의 font-family 속성을 대체하고 색상은 ($ file)에없는 새로운 속성이므로 원본 CSS 파일이므로 원본 CSS 파일에 속성을 추가해야합니다. 그래서 PHP에서 이것을 구현하는 방법은 CSS 파싱에 대한 아이디어가 없기 때문입니다. 이것에 대한 어떤 생각이라도 크게 감사 할 것입니다.
입력 내용을 file1 ($ file) 및 file2 (override.css)로 지정해야 새 CSS 파일을 생성해야하므로 output.css에 스타일을 재정의해야합니다.
미리 감사드립니다. 당신이 font-family: arial;
브라우저가 자동으로 먼저 CSS에서이됩니다 발견 색상의 두 번째 CSS에서 body 태그에 색상을 추가하기 때문에 당신이 그들을 병합에 대해 걱정할 필요가 없습니다 다음 font-family: arial !important;
으로 추가 적용 할 수 있도록하려면
새 CSS를 생성하고 CSS를 무시하지 말아야합니다 ... – Stranger
@Udhay 당신이 차이점을 발견하고 PHP를 사용하여 새 CSS를 만드는 것을 의미합니까? –