Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 响应式设计:如何调整图像/背景图像的大小并垂直对齐div?_Jquery_Html_Css_Responsive Design - Fatal编程技术网

Jquery 响应式设计:如何调整图像/背景图像的大小并垂直对齐div?

Jquery 响应式设计:如何调整图像/背景图像的大小并垂直对齐div?,jquery,html,css,responsive-design,Jquery,Html,Css,Responsive Design,我正在试验响应性设计。我的图像当前没有调整大小。在我的标记中,我还将背景图像应用于某些需要调整大小的div 以下是HTML视图: 请参见此处的代码: 对于800px和1100px之间的屏幕宽度,我想调整图像的大小。对于低于800px的任何东西,我想垂直对齐图片框-每行1或2个,无论屏幕宽度允许 当前,当我将浏览器调整到较窄的宽度时,最多有2个帧会环绕到下一行,但如果我继续调整大小,则相框的背景似乎会被切断,一些图像似乎会消失。不确定如何修复此问题。这是因为您使用的滑块具有绝对定位负载和固定的宽度

我正在试验响应性设计。我的图像当前没有调整大小。在我的标记中,我还将背景图像应用于某些需要调整大小的div

以下是HTML视图:

请参见此处的代码:

对于800px和1100px之间的屏幕宽度,我想调整图像的大小。对于低于800px的任何东西,我想垂直对齐图片框-每行1或2个,无论屏幕宽度允许


当前,当我将浏览器调整到较窄的宽度时,最多有2个帧会环绕到下一行,但如果我继续调整大小,则相框的背景似乎会被切断,一些图像似乎会消失。不确定如何修复此问题。

这是因为您使用的滑块具有绝对定位负载和固定的宽度/高度。我建议使用一些实际响应性很强的东西,比如Flexslider()

但是如果不想这样做,可以从.mrpv_容器类中删除位置:relative和fixed height--


CSS的其余部分可能也需要清理,但这会产生预期的效果吗

我也一直在尝试响应式设计,发现Twitter的“引导”非常有用。它只有3个文件,我用它建立了我所有的网站。如果您还没有这样做,请查看:

我已经使用了twitter引导,并根据屏幕和图像大小调整了图像的高宽比


如果您使用的是图像滑块,那么jquery bxslider也非常有帮助

让您的图像和背景正确调整大小,我建议进行以下更改

首先用百分比设置图像的宽度和高度,为边缘周围的帧留出足够的空间,并使用
position:relative
添加距顶部的百分比偏移,而不是设置边距。你不必担心水平位置,因为它已经居中了,除非你想稍微调整它来解释你的帧图像不是完全均匀的事实

ul.mrpv_slider li div img {
    position:relative;
    top:11%;
    width:67%;
    height:78%;
}
然后将
background size:100%100%
添加到*image\u container*中,这样帧的背景图像也会调整大小以匹配容器

ul.mrpv_slider li div.image_container { 
    text-align:center;
    background-image:url(http://i36.tinypic.com/5feusn.png);
    background-position:bottom;
    background-repeat:no-repeat;
    margin-right:10px;
    display:inline-block;
    zoom: 1;
    *display: inline;
    height:324px;
    width:250px;

    /* this is the line you need to add */
    background-size:100% 100%;
}
此时,您可以在媒体查询中覆盖容器的宽度和高度,图像和帧都将进行适当的调整

我不确定随着窗口大小的改变,您打算对布局做什么,但您当前的媒体查询将宽度设置为100%,高度设置为自动,这肯定行不通

例如,当屏幕宽度小于600px时,您可以使用如下查询使图像大小减半:

@media screen and (max-width: 600px) {
    ul.mrpv_slider li div.image_container {
        height:162px
        width:125px;
    }
}

关于Flexislider,不,我不能使用它,因为我试图实现的目标有点不同。你的CSS建议似乎在某种程度上有效。它以较窄的浏览器宽度垂直对齐div。我想我仍然需要做一些清理,让它看起来更好。你知道为什么我的图片和背景图片没有调整大小吗?还有一件事。。。如果我想为移动显示器创建不同的标记,该怎么办?例如,在移动设备上,如果我想一次显示一个图片帧而不是4个,我必须更改整个标记。我如何做到这一点?我认为光靠媒体查询是做不到的。有什么建议吗?你想达到什么效果?如果你想调整图像的大小,你必须从img{}CSS中删除max width:100%,并将其改为just width:100%。至于移动设备,我是否正确地认为您希望它在桌面上是一个四向上的滑块,但在移动设备上一次只显示一个项目?在这种情况下,将
max width
更改为
width
似乎不起作用。这似乎破坏了形象。我认为这是因为图像的父div设置了固定的宽度。但是如果我没有将其设置为固定的宽度或高度,背景图像将不会出现。我仍然无法理解这一点。在我的例子中,除了图片之外,还有一些背景图片。是的,你对移动设备的看法是正确的。在更宽的屏幕上,我希望所有的四个图片框同时显示,但在窄屏幕上(带有纵向显示的移动设备),我希望一次将滑块转换为一个项目。我知道这可能需要调整HTML标记本身。我可能需要重新创建布局。我只是不知道如何处理这个问题——媒体查询是否足够,或者我是否需要使用jQuery来实现这一点,或者是否需要为移动设备加载一个完全不同的HTML文件。实际上,你没有调整图像的大小,是吗?当我缩小我的浏览器时,我看不到大小调整,只有图像movements@Chococroc在上面的url中,没有,我没有调整大小。我尝试在另一个版本中调整它的大小,但是我的绝对div等有其他问题,我发现很难将其转换为响应。好的,只是要确定,在这个示例中,在调整大小时,您只想确保所有内容都进入列,但您想要实现的是列+调整大小,是这样吗?@Chococroc基本上在更宽的屏幕上,当调整大小时,我希望帧和背景按比例调整大小。关于移动横向定位,我希望所有四个相框同时显示。在移动纵向上,我希望将滑块一次转换为一个项目。我知道这可能需要调整HTML标记本身。我可能需要重新创建布局。我只是不知道如何处理这个问题——媒体查询是否足够,或者我是否需要使用jQuery来实现这一点,或者是否需要为移动设备加载一个完全不同的HTML文件。是的,我最初想使用bootstrap,但认为没有它会更容易,因为我的滑块有许多不同层的绝对位置。如果没有别的办法的话,我可能不得不修改
@media screen and (max-width: 600px) {
    ul.mrpv_slider li div.image_container {
        height:162px
        width:125px;
    }
}