CSS 保留宽高比但填充父级 div

2023-12-28

基本上,我有一个想要用圆圈遮盖的图像。

<div class="thumbnail-mask">
  <img class="thumbnail-pic" src="/image.jpeg">
</div>

CSS(我使用 LESS)非常简单:

.thumbnail-mask {
  width: @circleSize;
  height: @circleSize;
  border-radius: @circleSize/2;
  -webkit-border-radius: @circleSize/2;
  -moz-border-radius: @circleSize/2;
  overflow: hidden;
}

我已经弄清楚如何将图像在父级中垂直和水平居中

.thumbnail-pic {
  text-align: center;
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);

  // width: 100%;
  // height: auto;
  height:auto;
  width: 100%;
}

但现在的问题是高度和宽度。

如果我尝试height:100%; width:100%;纵横比发生变化。

如果高度 > 宽度,那么我想要width: 100%; height: auto;。如果宽度>高度,我想要height: 100%; width: auto。这样,圆圈就完全填满了。但这似乎不可能。我尝试过设置min-width:100%; min-height:100%但是如果不设置高度或宽度,图像就太大了。


例如小提琴 http://jsfiddle.net/rdW8N/3/

一种解决方案是使用 jquery 根据宽高比设置图像宽度和高度

$(document).ready(function () {
    $("img").each(function () {
        // Calculate aspect ratio and store it in HTML data- attribute
        var aspectRatio = $(this).width() / $(this).height();
        $(this).data("aspect-ratio", aspectRatio);

        // Conditional statement
        if (aspectRatio > 1) {
            // Image is landscape
            $(this).css({
                height: "100%"
            });
        } else if (aspectRatio < 1) {
            // Image is portrait
            $(this).css({
                width: "100%"
            });
        }
    });
});

显然,这不像纯 CSS 方法那么优雅,但最终可能会更可靠

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

CSS 保留宽高比但填充父级 div 的相关文章

  • Chrome中获取伪元素内容

    我在 webkit 浏览器中通过 Javascript 获取伪元素的生成内容时遇到一些问题 关心者的上下文 我正在开发 jQuery 移动应用程序并尝试使用 FontAwesome 图标 我希望能够使用 jQM 用于其内置图标集的相同数据图
  • 链接到页面上的不同区域

    这似乎是一个愚蠢的问题 但是 所以我想做的是设置一个菜单部分 这样当用户单击该部分的标题时 它会将他们发送到页面上的特定位置 而无需向下滚动 我不完全确定这将如何运作或实现起来有多复杂 所以基本上我会 Menu 第一项 作为链接 第二项 作
  • 如何使用 Selenium WebDriver 获取 CSS 选择器?

    我正在尝试创建横幅菜单中显示的元素的动态 元素映射 包括为每个菜单显示的链接 该地图将存储在String 矩阵 它将用于不同的方法和测试 为此 我得到了元素的href属性并为菜单中显示的每个链接创建我自己的 CSS 选择器 这是我创建 CS
  • 如何使用简单的CSS创建向上箭头向下箭头

    请找到这个CSS类来创建简单的向上箭头 向下箭头 向左箭头和向右箭头
  • 自定义标签...为什么不呢?

    我找到了一个网站 其中包含向 html 添加自定义标签的指南 就像人们让 ie 使用新的 HTML5 标签一样 我必须承认 我认为添加我自己的标签会很棒 这样可以更轻松地 扫描 代码并找到您要查找的内容 但我发现的每个网站 人们都说它不好
  • 使用 jQuery 切换 2 个 div 的位置

    我想知道是否可以使用 jQuery 切换两个 div 的位置 我有两个像这样的div div class div1 STUFF ONE div div class div2 STUFF TWO div so if div2有内容 或不仅仅包
  • HTML5 视频(webm 和 MP4)显示空白屏幕并且无法播放

    我已经用谷歌搜索了一个小时 但我要么很糟糕 要么这不是一个常见问题 这是我的视频标签
  • 当flex-wrap是wrap的时候,flex-shrink还有用吗?

    我不认为flex shrink and flex wrap wrap 在一起有意义 但我想知道我是否遗漏了一些东西 container background DDD width 300px height 100px padding 20px
  • 是否可以在响应完成之前读取 AJAX 请求?

    我有一个 ajax 请求需要一段时间才能完成 但服务器确实会输出一些内容 如果我只是在浏览器中加载请求 我可以看到页面正在缓慢加载 并且可以随时停止 是否可以在服务器关闭响应之前访问不完整的ajax请求 完成此操作的方法是通过侦听 xhr
  • 如何从外部域设置 iframe 内部的样式?

    我有一个网站 其中嵌入了来自 3 个不同域的 3 个 iframe 每个 iframe 都位于单独的页面上 将样式表应用于所有 3 个 iframe 的最佳方法是什么 谢谢你 这可以在某些网站上完成 但由于 同源政策 而并非全部 Twitt
  • 我应该如何使用 Bootstrap 设计 Django 验证错误的样式?

    当 Django 中的表单出现验证错误时 错误会在包含类的列表中给出errorlist 可以通过设置使用 Bootstrap 为元素指定错误样式class alert alert error 结合这些并使用 Bootstrap 的错误样式来
  • 处理重叠 SVG 图层中的鼠标事件

    我正在使用 d3 js 构建地图可视化 我正在为美国各州和县绘制填充多边形 县的 SVG 图层位于州图层下方 状态已填充 但填充不透明度设置为 0 我认为 需要填充来捕获点击事件 我想捕获州级的点击事件 但我想捕获县级的鼠标悬停事件 但是
  • C 代码中的握手 WebSocket

    我是 html5 及其 websocket 的新手 现在我一直在尝试用 c 制作自己的 websocket 服务器但是 这对我来说很难 我只想从 C 服务器发送 hello world 到 html 客户端 但是 我在握手方面遇到了麻烦 o
  • 为什么 Microsoft Outlook 在发送 HTML 电子邮件时不遵循列表样式?

    我有以下代码 但我一生都无法让它在 Microsoft Outlook 中工作 ul style margin left 50px line height 50px list style none li style font size 6
  • Font Awesome 5 - 动画齿轮,如何排列不同的图标?

    我正在尝试以一种非常特殊的方式排列字体真棒动画齿轮 如下图所示 我已经创建了一个我似乎能够得到的最接近的小提琴 小提琴在这里https jsfiddle net rke45798 13 https jsfiddle net rke45798
  • 为什么缓存清单在桌面上按预期工作时可能无法让移动 Safari 缓存站点?

    我正在本地玩一个简单的网络应用程序 但不太明白为什么它在 iPhone 上没有正确缓存 我正在服务一个 manifest文件具有正确的 MIME 类型 并且当我在桌面 Safari Chrome 和 Firefox 上打开或关闭本地服务器时
  • 单击

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道如何用 jquery 做到这一点 但我被 React 困住了 每当用户点击 div 时 我如何聚焦输入字段 你需要有一个onCl
  • Bootstrap 将图像与文本对齐

    我正在尝试使用引导程序将左侧的图像与文本对齐 并且当在移动设备上查看页面时 图像将居中于文本顶部 div class container div class row h1 About Me h1 div class col md 4 div
  • 没有 jQuery 的纯 CSS 工具提示[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用纯 CSS 创建 工具提示尾部 https stackoverflow com questions 5623072 how can i create a tooltip tail using
  • 设置 HTML 表格的最大显示行数

    具有动态生成的 HTML 表 行数未知 的 JSP 页面 在后端有属性 设置最大行数 例如 最大行数 15 如何将 HTML 表格的行数限制为max rows价值 表的其他部分应该可以通过垂直滚动访问 这意味着用户可以看到 15 行 如果向

随机推荐