使用 CSS 而不是 jquery 将图像置于 div 中居中

2023-12-04

我试图将任何大小的图像放入(始终)方形 div 中,并在父 div 的大小发生变化时保留外观。这就是我正在做的:

CSS:

.photo_container {
    width: 250px;
    height: 250px;
    overflow: hidden;
    border-style: solid;
    border-color: green;
    float:left;
    margin-right:10px;
    position: relative;
}

.photo_container a img{
    position:absolute;
}

HTML

<!--p>Photo's height>width </p-->
<div class="photo_container">
    <a href="#">
        <img class="photo"  src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/ECurtis.jpg/224px-ECurtis.jpg" 
style="width:100%; height:auto;">
        </img>
    </a>
</div>

<!--p>Photo's width>height </p-->
<div class="photo_container">
    <a href="#">
        <img class="photo"  src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Altja_j%C3%B5gi_Lahemaal.jpg/220px-Altja_j%C3%B5gi_Lahemaal.jpg" 
style="width:auto; height:100%;left=-100px">
        </img>
    </a>
</div>

JavaScript:

// fix image size on load
$(".photo").one("load", function() {
  fixImage($(this));
}).each(function() {
  if(this.complete) $(this).load();
});

// Just to test if everything's working fine
$(".photo").on("click",function(){
   var rand = Math.floor(Math.random() * 200) + 80;  
    $(this).parent().parent().width(rand);
    $(this).parent().parent().height(rand);   
   fixImage($(this));
});

// Brings the photo dead center
function fixImage(obj){
        //alert("something changed");
        var pw = obj.parent().parent().width(); 
        var ph = obj.parent().parent().height();         
        var w = obj.width();
        var h = obj.height();
        console.log(w+"   "+pw);
        if(h>w){
            var top = (h-ph)/2;
            obj.css("top",top*-1);
        }else{
            var left = (w-pw)/2;
            obj.css("left",left*-1);            
        }

}

工作示例:http://jsfiddle.net/vL95x81o/4

不使用jquery而只使用CSS如何做到这一点?如果 div 的大小永远不会改变,那么这个解决方案就很好。但我正在研究响应式设计,看起来像photo_containerdiv 可能需要根据屏幕的大小进行更改(通过 CSS)。

以下是裁剪前的照片:

Portrait Image Landscape Image


你可以这样做:

http://jsfiddle.net/vL95x81o/5/

<!--p>Photo's height>width </p-->
<div class="photo_container">
    <div class="photo photo--1">
    </div>
</div>

<!--p>Photo's width>height </p-->
<div class="photo_container">
    <div class="photo photo--2">
    </div>
</div>

.photo_container {
    width: 250px;
    height: 250px;
    overflow: hidden;
    border-style: solid;
    border-color: green;
    float:left;
    margin-right:10px;
    position: relative;
}

.photo {
    height: 100%;
    width: 100%;
}

.photo--1 {
    background: url('https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/ECurtis.jpg/224px-ECurtis.jpg') no-repeat center center;
    background-size: cover;
}

.photo--2 {
      background: url('https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Altja_j%C3%B5gi_Lahemaal.jpg/220px-Altja_j%C3%B5gi_Lahemaal.jpg') no-repeat center center;
    background-size: cover;
}

我已将 imgs 更改为带有背景图像的 div,并使用背景位置覆盖,图像居中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CSS 而不是 jquery 将图像置于 div 中居中 的相关文章

  • 如何居中对齐数据表标题

    我是数据表新手 当我制作表格标题时 它总是左对齐 如何将标题设置为居中对齐 我已阅读 datatables net manual styling classes 和 datatables net reference option colum
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • 在问题内显示内联块文本

    我一直在尝试显示内联块 如果我没有在 div 中添加任何内容 一切都会很好 但是当我这样做时 div 会折叠起来 我不知道确切的原因 任何想法 https jsfiddle net giancorzo ebqoptbd https jsfi
  • 如何使用 CSS 或 jQuery 设置第一个和最后一个 li 的样式?

    我如何设计第一个 顶级 li和最后一个 顶层 li使用 CSS 还是 jQuery 我正在使用 CSS 设置第一个li但它也是造型第一li在每个中学阶段ul 那么我怎样才能让它只设置样式li其中包含 Main 1 最后一个包含 Main 6
  • jquery 聚焦/聚焦

    我想要的是将 active 类添加到输入焦点上的输入 当焦点关闭时 删除该类 Thank s 一旦你包含了 jquery 库 它就非常标准了 input focus function this addClass active input b
  • jQuery 日期格式

    如何使用 jQuery 设置日期格式 我正在使用下面的代码但出现错误 txtDate val format date new Date dd M yy 请提出解决方案 在您的页面中添加 jquery ui 插件 txtDate val da
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • Firefox 忽略 CSS 中的最小高度

    由于某些原因 最小高度在 Firefox 上不起作用 我尝试在 body 上设置 min height 但 Firefox 完全忽略了它 由于我的页面是动态的 我不能只将高度设置为 100 我应该怎么办 body border 1px so
  • Razor mvc3 + jquery + Url 操作 + 部分视图

    我有一个关于 jQuery Razor 的问题 我想使用 razor 和 Url Action 构建一个 javascript 变量 并且 html 属性将是输入的值 像这样 var d1 d1 val var d2 d2 val var
  • 试图隐藏选择列表中的选项..不适用于 chrome 和 ie

    我有一个选择列表 其中有很多选项 根据某些输入 我想从选择列表中隐藏一些选项 为了隐藏选择列表中的选项 我编写了jquery 例如 selectlist1 option each function this hide 但这段代码似乎只适用于
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • 使用flex-basis控制行上显示的项目数

    我想在使用 Flex 时将元素推出以隐藏它们 例如 如果flex basis为 50 仅显示两个项目弯曲到给定空间 而其他元素则在overflow hidden 领土 Or if flex basis为 25 则仅显示 4 个 Flex 元
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • 我应该创建一个块还是一个元素 BEM CSS?

    Bem官网说 创建一个块如果一段代码可以被重用并且它不依赖于正在实现的其他页面组件 创建一个元素如果一段代码在没有父实体 块 的情况下无法单独使用 我有一个 关于部分 块 它的元素依赖于父级并且不能在网站中重复使用 如何根据 bem 这段代
  • 选择子元素但不选择孙元素

    我有以下简化的代码 div p text p div div p text p div div p text p div div p text p div 每当我设置一些值时 content pCSS 文件中的元素 更改也适用于 col1
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 如何从 html 字符串向 jQuery DataTable 添加多行

    我有一个 jQuery DataTable 我想向其中添加 html tr 行 这些行以 html 字符串的形式出现 我可以使用标准 jQuery 将它们添加到表中 但这意味着它们绕过 DataTable 对象 并在重新排序表时丢失 要使用
  • Cycle2 初始化事件未触发

    我使用 Cycle2 作为基本的轮播 我的幻灯片项目有时在其数据中包含一个 url 因此我必须使用 Cycle2 api 事件来使用该 url 当它存在时 我的问题是 虽然 cycle after 事件触发正常 但初始化事件都不会触发 因此

随机推荐

  • 需要 preg_match_all 链接

    我有一个像这样的字符串 string some text http dvz local index index regionId 28 http stuff kiev ua roadmap page php http 192 168 3 1
  • 如何使用查询生成器在 Symfony 4 中连接外部 ID 上的多个实体?

    我正在努力学习 Symfony 今天我正在关注关联教程 我决定制作一个小应用程序 包括房屋 厨房 卧室和橱柜 我 尝试 使用draw io制作一个小的类图 以便为您提供更好的想法 所以基本上一栋房子可以有多个卧室和多个厨房 每个厨房可以有多
  • Javascript - 为什么从函数返回 array.push(x) 不会将元素 x 推入数组?

    我想知道为什么以下功能有效 function foo list var array array push list return array gt foo 1 2 3 1 2 3 而这个则没有 function foo list var a
  • Python 和 .Net 集成选项

    我想将 Python 与 C 集成 我发现两种方法使用进程间通信和 IronPython 进程间通信需要在所有客户端计算机上安装 Python exe 因此这不是一个可行的解决方案 我们开始使用 IronPython 但它目前仅支持 2 7
  • PHP 类 - 如何仅连接一次数据库

    我尝试做一个简单的 SQL 类 只有一个问题 function classDBREAD table where value back link mysql connect 127 0 0 1 XXXX XXXXXX mysql select
  • 如何忽略 LNK2005 和 LNK1169?

    因此 我有一个使用外部库的 Visual Studio 2010 项目 为了在没有 LNK2005 的情况下编译它 我必须在链接器设置中调整库的顺序 我让它在发布模式下编译得很好 但出于某种原因 我无法在调试中没有 LNK 错误的情况下编译
  • 如何在单击按钮时从数据库将新行添加到 jTable 中而不清除现有行

    如何在单击按钮时从数据库将新行添加到 jTable 中而不清除 jTable 中的现有行 我尝试了很多方法 但没有成功 帮助 String SQL SELECT name price FROM items WHERE ID jTextFie
  • Paypal使用phpcurl通过支付密钥获取交易详细信息

    android paypal 付款成功后我得到回复 回应如下 response state approved id PAY 6PU626847B294842SKPEWXHY create time 2014 07 18T18 46 55Z
  • 如何在我的 Activity 中重新启动 Fragment - Android

    我有一个活动 里面有 3 个片段 我需要通过单击按钮重新启动活动中的第一个片段 ViewPagerAdapter adapter new ViewPagerAdapter getSupportFragmentManager adapter
  • 自 iOS 8 起,SignificantLocationChanges 不再起作用

    我有一个问题SignificantLocationChanges自iOS 8发布以来 该方法 locationManager startMonitoringSignificantLocationChanges 在检查可用性后被正确调用 代表
  • 读取由 NewCookie() 创建的 cookie

    I created a cookie using Newcookie and I can access it thorough the browser as below Now I need to read the cookie funct
  • 带有圆角的 UIButton 的活动可点击区域?

    So I have created a button with a border in my storyboard 然后我把它的角弄圆并添加了边框颜色 button layer cornerRadius button bounds size
  • Unified_thread 还没有对外开放?

    据 Facebook 称 他们很久以前就发布了新的消息系统 http developers facebook com blog post 591 来自博客 应用程序应迁移到新的消息传递图形 API 端点和消息传递 FQL 表 unified
  • 为什么 eval('{a:23}') 给我的是 23 而不是 {a:23}?

    我在浏览器中有这段 JavaScript 代码 console log eval a 23 它打印 23 我原本期待看到 Object 有人可以解释一下吗 thanks 在这种背景下 开始一个block 不是对象字面量 a 那么是一个lab
  • .* 匹配 2 次

    我尝试过了match 用C 正则表达式 结果发现它匹配任何字符串两次 first the 完整的字符串 比第二次空字符串 我期望 在一场比赛中匹配所有内容 我完全困惑为什么会这样以及如何防止这种情况 长话短说 我需要替换部分文件名 并且可以
  • 如何在 C++ 中创建文件映射?

    我正在编写一个游戏预加载器 一个简单的程序 在启动程序之前将某些文件 映射 加载到缓存中 我被告知要使用CreateFileMapping 但我仍然不确定它将它加载到物理内存还是虚拟内存中 不管怎样 我应该把需要加载的文件放在哪里 这是我的
  • Jersey 和 HK2 - 注入当前用户

    我正在使用 jersey 2 17 和 HK2 创建一个简单的休息应用程序 我有一个ContainerRequestFilter拒绝任何没有 currentuser cookie 的请求 我有这样的事情 Path users public
  • 远程运行 python 脚本的更好方法

    我在远程计算机上有一个 python 脚本 我想从本地计算机执行该脚本 它接受一些参数 如果我要在那台机器上运行它 这就是我运行它的方式 python python parallel py num 10 ssh home user1 pat
  • Javascript生成具有特定字母数量的随机密码[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在客户端的网页中用 JavaScript 生成密码 密码应使用字母和数字 也许还有一些符号 如何在 Javascript 中安全地生成密码 由于密码需要是不可预测的 因此它需要由
  • 使用 CSS 而不是 jquery 将图像置于 div 中居中

    我试图将任何大小的图像放入 始终 方形 div 中 并在父 div 的大小发生变化时保留外观 这就是我正在做的 CSS photo container width 250px height 250px overflow hidden bor