Hallo heinetz,
PHP ist nicht auf HTML als Containersprache angewiesen, CSS geht auch. Aber ich gebe zu, das ist lästig und die klassischen Editoren unterstützen PHP mit HTML, aber kein PHP mit CSS.
Eine Datei styles.css.php könnte so aussehen. Den Header zu setzen ist wichtig, weil PHP Responses normalerweise dynamisch sind und nicht gecached werden (oder ich hab was falsch verstanden, wie so oft 😉)
<?php
header('Cache-Control: public, max-age=31536000'); // Darf 1 Jahr im Cache liegen
$font = getLatoFontDescription();
?>
@font-face {
font-family: 'Lato';
font-weight: 300;
font-style: normal;
src: url(<?= $font->Url ?>) format(<?= $font->Format ?>
}
p.big { font-family: Lato; font-size: 3em; }
Was nicht zu gehen scheint, sind CSS Custom Properties (a.ka. CSS-Variablen) in der @font-face Definition. Zumindest zeigte im Experiment src: url(var(--fontsrc))
keine Wirkung. Den Wert für --fontsrc
hatte ich mit style-Attribut am body-Tag zu setzen versucht, auch mit :root. Ging nicht. Hab's auch mit url(var(--schrift)) im src versucht.
:root {
--schrift: url('https://fonts.gstatic.com/s/indieflower/v9/m8JVjfNVeKWVnh3QMuKkFcZVaUuH.woff2');
}
@font-face {
font-family: 'SomeFont';
src: var(--schrift) format('woff2');
}
p { font: 20px SomeFont; }
Rolf
--
sumpsi - posui - clusi
sumpsi - posui - clusi