【问题标题】:Css Displaying only center part of imageCss仅显示图像的中心部分
【发布时间】:2011-10-17 04:32:25
【问题描述】:

是否可以只显示图像的中心部分。例如,使用 CSS 或 JQUERY css 的图像高度 = 300 像素和宽度 = 520 像素会更好,否则我可以使用 Jquery,谷歌搜索没有帮助我

是否有可能我只能使用 css 从中心显示 200 * 130 例如

 -----------------------
|                       |
|       --------        |
|      |Need this|      |
|      | Part    |      |
|       ---------       |
|_______________________|

【问题讨论】:

  • 图片可以作为 div 的背景,还是在 HTML 中给出 <img> 标签?
  • 可以是img标签吗?使用img标签学习会很好

标签: jquery css


【解决方案1】:

您可以将图像设置为元素的背景,然后是这样的:

        div {
            background: #eee url(http://www.google.co.cr/logos/classicplus.png) center center;
            width: 100px;
            height:100px;
            border: 1px solid red;
            text-indent: -9999px;
        }
<img src="http://www.google.co.cr/logos/classicplus.png">
<div>some text that won't be seen</div>

最后得到类似http://jsfiddle.net/9nBRe/

【讨论】:

【解决方案2】:

设置以下 CSS:

.背景{

背景位置:-200px -130px;
背景图片:url("image_name.png");
宽度:200px;高度:130px;

}

【讨论】:

  • 我需要 img 标签...是否可以使用 img 标签?因为该区域需要可点击或使 div 可点击?
  • 不可能使用图片标签...解决这个问题的方法是添加一个
    并将上面的 css 分配给这个 div 并将点击事件添加到这个 div...
【解决方案3】:

如果图像需要是&lt;img&gt; 元素,您可以使用在中心打出透明“孔”的叠加图像来实现。

http://jsfiddle.net/jkwSe/1/

很难看到,但上面的图像是白色的,但有一个透明的中心,就像一个矩形甜甜圈。我在右边留了一点图,让你看看效果。

【讨论】:

  • 想要的效果是什么?您希望叠加层与页面背景融为一体吗?
  • 需要img剪切的中心部分,因为在jsfiddle周围有白色区域,我需要img标签,因为我需要超链接居中的图像缩略图,例如我需要显示一个大横幅图像在小缩略图下方并单击缩略图将用户带到付款流程以便我们在缩略图中获得症结(重要)部分,我正在尝试从中心获取图像(缩略图)
  • 在这种情况下,我认为我的解决方案不是正确的。其他答案可能更好 - 或者如果您想使用 img 标签,您可以使用 jQuery 的裁剪插件 (deepliquid.com/projects/Jcrop/demos.php)
【解决方案4】:

试试这个代码:- 这里我们需要应用图像作为背景。我的意思是,我们不能放&lt;img /&gt; 标签。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Image Page</title>
</head>
<body>
<div style="height:300px;width:520px;text-align:center;">
<div style="width:200px;height:130px;background:Transparent url('http://www.bing.com/fd/hpk2/Nautilus_ROW880768633.jpg') center center;margin:85px auto;">&nbsp;</div>
</div>
</body>
</html>

【讨论】:

    【解决方案5】:

    现在可以使用 CSS clip 属性。欲了解更多信息,请参阅MDN docs

    作为问题的例子,代码会去:

    img {
      position: absolute;
      rect: (50px, 195px, 50px, 195px);
    
    }
    

    Clip 需要 position: absolute 才能工作,因此最好将 wrap &lt;img&gt; 放入 &lt;div&gt;(或 &lt;figure&gt; 或 wathever)并将其设置为 position: relative 以在文档流中包含图像

    【讨论】:

    • 最后(2017 年 4 月 14 日)信息:剪辑已弃用,推荐使用 clip-path(但现在浏览器支持不太好)
    【解决方案6】:

    这对我来说效果更好。

    在 style.css 或标签中。

    img {
        width: 100%;
        height: 100px;
        object-fit: fill;
    }
    

    或者直接在 HTML 中。

    <img style="width: 100%; height: 100px; object-fit: fill;" src="file.jpg" alt=""> 
    

    【讨论】:

    • 一个好的答案将始终包括解释为什么这会解决问题,以便 OP 和任何未来的读者可以从中学习。
    猜你喜欢
    • 2017-10-16
    • 2013-03-24
    • 2020-06-01
    • 1970-01-01
    • 2020-12-21
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    相关资源
    最近更新 更多