【发布时间】:2014-01-16 14:35:38
【问题描述】:
我正在建立一个网站,其中有一个带有背景图片的 div。目前,我每张图片有 3 种尺寸的背景图片,一种用于全屏,一种用于小屏幕,一种用于移动设备。我知道我可以将 @media screen 用于 CSS 背景和缩放,但这需要我为每个图像创建一个新的 CSS 规则。
为了解决我的问题,我认为我可以使用 PHP,但我突然意识到,由于 PHP 是服务器端的,所以页面不会响应,只能在页面加载时选择正确的图像。我当前的 PHP 代码大致是这样的:
编辑:这段代码没有用,因为我忽略了 window.screen.width 是 javascript 而不是 PHP 的事实
<div style="background-image: url(
<?php
var screenWidth = window.screen.width;
if (screenWidth >= 1280)
{
echo $imageregular
}
elseif (screenWidth >= 630 && screenWidth < 1280)
{
echo $imagesmall
}
else
{
echo $imagemobile
}
;?>
);">
</div>
(请原谅我的 PHP 中的任何错误,我还在学习,我还没有测试过)使用 php 包含,然后我会在我想要这样的图像时将这个 PHP 文件包含在我的父 HTML 中,例如
<?php
$imageregular = '1.jpg';
$imagesmall = '2.jpg';
$imagemobile = '3.jpg';
include 'menuitem.php';
?>
那么,我该如何重做,以便使用 Javascript 来检测屏幕宽度并设置图像,同时保持使用 PHP 变量的灵活性?
编辑
好吧,由于 PHP 无法发现浏览器宽度,我假设我可以使用这样的东西:
$( window ).resize(function() {
if ( $(window).width > 1280)
{
//somehow get a php variable and include it in here and do a .css('background-image','url(<?php echo $imageregular ?>');
}
});
等等
如何在 Javascript/Jquery 中使用 PHP 变量?
【问题讨论】:
-
你只是让你的生活变得困难......:)......你可以通过简单地检查 CSS3 中的媒体查询来节省世界上所有的时间。为了让您满意:css-tricks.com/css-media-queries & mediaqueri.es。 3套规则你只需要写...
-
我看了一遍,是不是遗漏了什么?我仍然认为 CSS 媒体规则需要在 CSS 文件中指定背景图像,这意味着我必须为每个背景图像创建一个新的 ID、元素和 CSS 类,而我希望在 PHP 中避免这种情况。跨度>
-
不,您不需要为每个图像设置不同的 id。对于相同的 id,您可以根据屏幕大小拥有不同的背景图像,这非常简单。请参阅:stackoverflow.com/questions/9506069/…
-
我知道我可以根据不同的屏幕尺寸和媒体规则有不同的背景图像,但我正在寻找完全不同的 sets 图像,例如每个图像有 3 种尺寸,我可以在我的 HTML 中设置每个图像,而无需重复自己。如果我使用媒体规则,我需要为每组不同的图像创建一个新规则,我希望避免这种情况。
-
看看我的回答,希望它有意义..
标签: javascript php css