0

我想使用 jquery、css、php 和 html 创建一个动态样式表。我正在做一个 ajax 请求(使用 jquery)给 php css 文件我的屏幕宽度。但是我的 php css 文件在 div(容器)中不包含 ajax 请求给出的属性宽度的值(窗口宽度)。该代码应该适用于 IE 和 FF。

代码:

jQuery 阿贾克斯

jQuery(document).ready(function($){
    $.ajax({
    type: "POST",
    cache: true,
    url: 'http://mywebpage/css/template.php',
    data: "bwidth=" + $(window).width(),
    async: false
    }); 
});

包括php css文件

<link rel='stylesheet' type='text/css' href='<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/template.php' />

在 php css 文件中

<?php
header("Content-type: text/css; charset: UTF-8");

$bwidth = isset($_POST['bwidth']) ? (int) $_POST['bwidth'] : 800;
?>

#container
{
width: <?php echo $bwidth . 'px'; ?>; 
}

我做错了什么?

问候

4

2 回答 2

0

没有必要这样做(正如评论所暗示的那样)。CSS 和 jQuery 应该照顾你需要做的一切。

也许您需要对 CSS 媒体查询进行一些谷歌搜索,因为听起来您想根据屏幕宽度影响 css。

于 2013-09-10T08:27:09.950 回答
0

没有应用新的 CSS,因为您没有对 AJAX 响应做任何事情。$.ajax()返回一个带有done()函数的对象,您可以使用该函数获取响应文本:

$.ajax({...}).done(function(css) {
    $('body').append('<style>' + css + '</style>');
});
于 2013-09-10T08:22:51.000 回答