在我这个问题的第一个版本中,我没有提供足够的信息,对不起。这是我需要帮助的更清晰的版本。你的许多答案已经很接近,这将有所帮助:
此问题的更具体版本:
我决定使用php和css来使我的页面比使用javascript实现相同结果时更有效。这并不重要。重要的是我试图这样做的两种方法(如教程中所示)是:
添加
AddType application/x-httpd-php .css
到我的.htaccess
然后,当样式表出现在页面的来源中但对我尝试使用的页面没有影响
<link rel="stylesheet" href="style.php" media="screen">
将我的样式表链接为php文件,如本教程所示。 http://www.phpro.org/articles/Embedding-PHP-In-CSS.html
这是我用php变量测试的css:
<?php
/*** set the content type header ***/
header("Content-type: text/css");
/** set the paragraph color ***/
$para_color = '#0000ff';
/*** set the heading size ***/
$heading_size = '2em';
/*** set the heading color ***/
$heading_color = '#c0c0c0';
?>
p{
color: <?php echo $para_color; ?>;
font-weight: bold;
font-size: 1.2em;
text-align: left;
}
h1{
color: <?php echo $heading_color; ?>;
font-size = <?php echo $heading_size; ?>;
text-align: centre;
}
两种方法都给了我相同的结果,css完全按照应该作为样式表来源显示,但没有显示在页面上除非我对页面的开发工具中的样式进行了更改,之后页面风格很好。
问题:为什么会发生这种情况,我该如何解决?
旧版本:
这里的问题很简单:
如何在CSS中使用PHP?
我正在创建一个网站,它在时间和处理速度上都会更有效率,我可以在CSS中使用php来实现各种所需的结果,而不是使用javascript。
我被告知这可以做到。怎么样?
答案 0 :(得分:13)
您的问题措辞错误,让很多人感到困惑。你想要的是一个PHP文件,可以“生成”一个CSS文件。因此,不使用<link>
作为CSS文件,而是使用它链接到输出CSS的PHP文件。如您发布的tutorial所示。
<?php
/*** set the content type header ***/
header("Content-type: text/css");
/***
query the database for the background color
provided you have a valid MySQL connection or whatever you are using.
***/
$background_color = mysqli_query($dbc, "SELECT `background_color` FROM user_settings WHERE user_id = 1");
/** set the paragraph color ***/
$para_color = '#0000ff';
/*** set the heading size ***/
$heading_size = '2em';
/*** set the heading color ***/
$heading_color = '#c0c0c0';
?>
html{
background: <?php echo $background_color; ?>
}
p{
color: <?php echo $para_color; ?>;
font-weight: bold;
font-size: 1.2em;
text-align: left;
}
h1{
color: <?php echo $heading_color; ?>;
font-size = <?php echo $heading_size; ?>;
text-align: centre;
}
现在在你的PHP文件中,你会使用类似的东西。
<link rel="stylesheet" href="style.php" media="screen">
修改强> 添加了关于如何检索用户偏好的假设MySQL查询。由于问题的模糊性,不能彻底。
答案 1 :(得分:2)
:
<link href="testCSS.php" rel="stylesheet">
testCSS.php文件中的:
<?php
header("Content-type: text/css");
echo "body,html{background-color:silver; height:100%;color:white}";
?>
这只是一个简单的例子。您总是可以使生成样式表的方式复杂化。
答案 2 :(得分:1)
层叠样式表(CSS)是一种样式表语言,用于描述以标记语言编写的文档的表示语义(外观和格式)。更多信息:http://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS不是一种编程语言,并且没有PHP等服务器端语言附带的工具。但是,我们可以使用服务器端语言来生成样式表。
<html>
<head>
<title>...</title>
<style type=”text/css”>
table {
margin: 8px;
}
th {
font-family: Arial, Helvetica, sans-serif;
font-size: .7em;
background: #666;
color: #FFF;
padding: 2px 6px;
border-collapse: separate;
border: 1px solid #000;
}
td {
font-family: Arial, Helvetica, sans-serif;
font-size: .7em;
border: 1px solid #DDD;
}
</style>
</head>
<body>
<?php>
echo "<table>";
echo "<tr><th>ID</th><th>hashtag</th></tr>";
while($row = mysql_fetch_row($result))
{
echo "<tr onmouseover=\"hilite(this)\" onmouseout=\"lowlite(this)\"><td>$row[0]</td> <td>$row[1]</td></tr>\n";
}
echo "</table>";
?>
</body>
</html>
答案 3 :(得分:1)
PHP
是服务器端语言,而CSS
是样式表,但您可以创建一些条件检查并使用classes
。
只是一个例子:
<span <?php if($a == 1) { echo "class='left'" ; } ?>This is some text </span>
在你的CSS中:
.left{
//some css work here
}
因此,通过这种方式,您可以基于条件语句将css应用于任何元素
答案 4 :(得分:1)
文件标题中的以下内容如何:
<style type=”text/css”>
table {
margin: <?php echo rand(1,5);?>px;
}
这将包括“内联”样式(在这种情况下,通过选择5到10之间的随机数来以编程方式确定表元素的边距)。这是一个微不足道的例子,但我相信这就是你所追求的。如果没有提供更多信息,很难提供更多帮助。
显然你希望你的php做一些更明智的事情 - 但是这个想法(php产生了一些css指令)似乎就是你所追求的。
答案 5 :(得分:1)
您可以将您的css文件设为php文件。
例如,
default.css.php
在那里,你有
<?php header("Content-type: text/css; charset: UTF-8"); ?>
body {
background: <?=$color?>;
}
此处有更详细的信息:http://net.tutsplus.com/tutorials/php/supercharge-your-css-with-php-under-the-hood/
答案 6 :(得分:-1)
如果您在样式标记中直接在php文件上编写css部分而不是在外部包含样式表,那么这是可能的