PHP ile harici bir stil sayfası içindeki bölücü operatörü

3 Cevap php

TL;DR: I use PHP inside an external stylesheet, but it doesn't recognize the '/' as a PHP divider operator, this messes up my CSS. Any help is appreciated

Ben veritabanında bir sayfa tablosu dinamik menü öğeleri yükler basit bir web sitesi üzerinde çalışıyorum. özyinelemeli bir algoritma ile ben doğru yerde tüm sayfaları ve alt sayfaları olsun.

Bu işlevde ben ana menü öğeleri miktarını saymak.

Ben menü çubuğunun bütün genişliğini kapsayan ana menüde <ul> böyle bir genişlik, her <li> yapmak gerekir, çünkü ben bunu. Ben daha fazla sayfa bir ana menü öğesi olarak eklenir eğer, hiçbir şey değiştirmek için veritabanına tek bir uç var ki, bu dinamik yapılmasını istiyorum.

Şimdi benim soru: PHP dosyaları gibi CSS okur böylece Apache yapılandırmak mümkün olduğunu doğru here okuyun. Bir cazibe, yanlış bir şey gibi çalışır. Şimdi var

<link rel="Stylesheet" type="text/css" href="<?php echo base_url().'css/css-reset.css'.'?item_count='.$menu_count; ?>" />

Benim başlığında (Gördüğünüz gibi ben bir post değişken olarak menü öğesi sayısını geçmek). Bu da çalışır. Benim CSS:

<?php Header ("Content-type: text/css");?>
<?php
$wrapper_width = 900;
$menu_item_count = (int)$_REQUEST['item_count'];
$menu_item_width = $wrapper_width / $menu_item_count;
?>

/*lots more boring CSS */

div#wrapper
{
text-align:left;
width:<?php echo $wrapper_width.'px'; ?>;
}

div#menu a
{
display:block;
height:1.7em;
width:<?php echo $menu_item_width.'px'; ?>;
}

Bir garip bir şey gelir Ve bu nerede. Ben sadece bir int olmak için $menu_item_count ayarlarsanız (ex: $menu_item_count=150) olması gerektiği gibi çalışır. Ama en kısa sürede ben iki değişken arasındaki bölücü operatörünü kullanmak gibi CSS berbat olur. diğer operatörler çalışır.

Ben onu görmek yol, bölücü operatörü (? Çünkü yorumların) CSS özel olduğunu ve bir PHP bölücü operatörü olarak değil, bir CSS sembolü olarak okumuyor.

Ben işlevi çalışır bir fonksiyonu koyarak denedim, ama bölücü operatör tekrar işler karışıyor.

Yani benim sorular şunlardır: Herkes hiç harici stil PHP ile çalıştı? Eğer öyleyse, bana bu sorunu anlamaya yardımcı olabilir?

3 Cevap

Bu ne yanlış gitti: Ben yanlış CSS dosyası sorgu dizesi ekledi. Bölünme operatör veya herhangi bir şey, sadece benim aptal zihin çok uzun benim monitörden bakmaktan çok iyi değil çalışma ile yanlış bir şey.

Php / css komut çıkışını kontrol edin. Bir tarayıcıda komut için adresini girerek bunu yapabilirsiniz, ve doğru apache kurduysanız, sizin php hesaplamaların sonuçları olmalıdır. Benim tahminim bölme operatörü css ile uyumlu olmayan bazı ondalık sayı dönebilir olmasıdır. Bu deneyin:

$menu_item_width = (int)$wrapper_width / $menu_item_count;

Bölümü sembolü PHP içinde çalışan ve herhangi bir sorun neden olmamalıdır. Yerine açılış yorumlu metin kullanımı ve bunun gibi PHP kapanış önerebilir. Bu daha kolay yönetmek için yapabilir.

<?php 
header ("Content-type: text/css");
$wrapper_width = 900;
$menu_item_count = (int)$_REQUEST['item_count'];
$menu_item_width = $wrapper_width / $menu_item_count;

echo <<<EOL
/*lots more boring css */

div#wrapper {
  text-align: left;
  width: $wrapper_width px;
}
EOL;
?>

Sorununuzu çözmek için, bu dosyanın çıktısını gönderebilir miyim?