13

在我这个问题的第一个版本中,我没有提供足够的信息,很抱歉。这是我需要的帮助的更清晰版本。您的许多答案已经很接近了,这将有所帮助:

这个问题的更具体的版本:

我决定将 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,在时间和处理速度上都会更有效率。

我被告知这是可以做到的。如何?

4

7 回答 7

18

你的问题措辞不正确,让很多人感到困惑。你想要的是一个 PHP 文件,它可以“生成”一个 CSS 文件。因此<link>,您将使用它来链接到输出 CSS 的 PHP 文件,而不是用于 CSS 文件。如您发布的教程所示。

<?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 查询。由于问题的模糊性,无法彻底。

于 2013-10-20T06:05:06.797 回答
2

在您的 html 文件中:

<link href="testCSS.php" rel="stylesheet">

在 testCSS.php 文件中:

<?php
header("Content-type: text/css");
echo "body,html{background-color:silver; height:100%;color:white}";
?>

这只是一个简单的例子。您总是可以使生成样式表的方式复杂化。

于 2015-03-05T09:16:39.700 回答
1

PHP是一种服务器端语言,而CSS它是样式表,但您可以创建一些条件检查并使用classes.

只是一个例子:

<span <?php if($a == 1) { echo "class='left'" ; } ?>This is some text </span>

在您的 CSS 中:

.left{
//some css work here
}

因此,通过这种方式,您可以根据条件语句将 css 应用于任何元素

于 2013-10-20T05:53:53.780 回答
1

文件标题中的以下内容如何:

<style type=”text/css”&gt;
   table {
   margin: <?php echo rand(1,5);?>px;
   }

这将包括“内联”样式(在这种情况下,表格元素的边距通过选择 5 到 10 之间的随机数以编程方式确定。)。这是一个微不足道的例子,但我相信这就是你所追求的。如果没有提供更多信息,很难提供更多帮助。

显然,您希望您的 php 做一些更明智的事情 - 但这个想法(php 生成一些 css 指令)似乎是您所追求的。

于 2013-10-20T06:01:23.833 回答
1

级联样式表 (CSS) 是一种样式表语言,用于描述以标记语言编写的文档的表示语义(外观和格式)。更多信息:http ://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS 不是一种编程语言,也没有像 PHP 这样的服务器端语言附带的工具。但是,我们可以使用服务器端语言来生成样式表。

<html>
<head>
<title>...</title>
<style type=”text/css”&gt;
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>
于 2013-10-20T05:50:05.893 回答
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/

于 2013-10-20T06:06:51.187 回答
-1

如果您直接在样式标记中的 php 文件上编写 css 部分,而不是在外部包含样式表,这将是可能的

于 2013-10-20T05:52:26.120 回答