【问题标题】:How can I have % of width of an img wrapped in a specific div width?如何将 img 的宽度百分比包裹在特定的 div 宽度中?
【发布时间】:2014-03-03 13:32:43
【问题描述】:

我只是将图像包装到一个 div 中,以便在调整屏幕大小时可以准确控制图像的位置。一切都很好,就像我调整大小时隐藏了左侧部分,所以根据我的规范也隐藏了右侧部分。但看起来我的 img 保持相同的宽度,所以有那个烦人的水平滚动条。

这是我的现场演示:
http://jsfiddle.net/U3pB9/11/

HTML

<div id="slideShow">
    <img id="ss1" src="http://i.imgur.com/gDRF4rO.jpg">
</div>

CSS

#slideShow {
    width:1200px;
    height:329px;
    margin:auto;
}

#ss1 {
    width:1920px;
    height:329px;
    display:block;
    position:relative;
    left:-360px;
    overflow:hidden;
    border-bottom:3px solid rgb(254,199,73);
}

所以,我尝试为我的图片设置一个动态权重,等于用户屏幕宽度,但它不会正常工作。调整屏幕大小时数字是正确的,但图像宽度是错误的。我试图在我的 img id 中设置一个溢出:隐藏,但话又说回来,什么也没发生。调整窗口大小时,滚动条仍然存在。

那么,当你调整屏幕大小时,如何隐藏那个水平滚动条呢?如何去掉图片的正确部分?


编辑部分

由于我的英语不好(大声笑),这里有两张我正在努力实现的目标:

假设用户的屏幕宽度为 1920 像素。 我的图像将如下所示: http://tinypic.com/view.php?pic=29zat0&s=8#.UxSJ5_nxo9U

然后,如果用户将他的窗口大小调整为 1700 像素左右,甚至 1500 像素,我的图片将如下所示: http://tinypic.com/view.php?pic=241qpvl&s=8#.UxSJ_Pnxo9U

如您所见,即使调整窗口大小直到屏幕尺寸达到 1200 像素宽度,我的图像的 1200 像素仍居中。所以图像的左侧部分被隐藏,因为图像的右侧部分也被隐藏了! (然后,当屏幕达到 1200 像素时,我将使用 % 的媒体查询来调整它的大小)

【问题讨论】:

  • 您能否将图像作为背景,使其宽度不会影响页面流?或者也许使用动态@media 查询来根据页面大小更改宽度?此外,溢出只有在#slideshow 上才有意义

标签: html css image


【解决方案1】:

问题

宽度是明确设置的。由于child的宽度大于parent,所以child会溢出。

[edit] 移除滚动条,本质上是同样的问题。设置溢出:对孩子隐藏只会影响孩子而不影响父母。在这种情况下,#slideShow 会溢出,因为 hidden 只会影响 #ss1。

解决方案

将两个孩子的宽度设置为 100%。这意味着它将是容器宽度的 100%。

[编辑] 在受影响的父母上设置溢出。在这种情况下,它是#slideShow 的父级或

示例

body {
  overflow: hidden; /*removes scrollbar on the body */
  width: 100%;
}

#slideShow {
  width: 100%; /* Sets width to body */
}

#ss1 {
  width: 100%; /* Sets widht to #slideShow */
}

【讨论】:

  • 实际上,它工作得很好,但话又说回来,我有一个问题。 (不过,我的真实图片的宽度为 1920 像素。)当我调整屏幕大小时,我希望左边的 360 像素被窗口隐藏。因此,当我在 1200 像素处调整大小时,我的 img 看起来仍然居中。在您的解决方案中,我的图片太窄了。 (我的img里有txt,看不懂)
  • 我没有按照您的意愿进行操作,您能否在 Paint 中绘制您想要的内容并将其发布,以便我更好地了解您的需求?
  • 我用两张图片做了一个编辑部分,试图进一步解释它!
  • 很好!!我在 body 上设置了 overflow:hidden 并将宽度设置为 100% 并且它可以工作。滚动条已消失,因此用户不会看到我的 img 的右侧部分。但是,我仍然使用#slideshow width: 1200px 和 #ss1 宽度为 1920px。 :) 谢谢! (这是最后的样子jsfiddle.net/U3pB9/12
  • 这是你想要的吗? link如果这是你想要的效果,我可以更新我的解决方案。
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 2019-06-28
  • 2013-03-13
  • 1970-01-01
  • 2013-07-23
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多