【问题标题】:Image border to remain 120x120 while image maintains aspect ratio图像边框保持 120x120,同时图像保持纵横比
【发布时间】:2017-02-16 20:16:26
【问题描述】:

我试图在我的 drupal 7 网站上实现的目标是让所有图像 (120x120) 的文章图像边框保持一定大小,而实际图像本身会根据图像样式 (100x100) 进行调整并居中对齐。 (我无法提供示例图片,因为我没有 10 个声望点...)

因此,对于纵向图像,高度将被限制为 100 像素,宽度将是纵横比。 与横向图像相反,宽度上限为 100 像素,高度为纵横比。

灰色边框始终保持为 120x120 块,并且不会根据图像大小而变化。

如果您需要我网站上的任何代码来帮助解决此问题,请告诉我。

【问题讨论】:

  • 你能添加一个带有html、CSS和假图片的sn-p吗?

标签: css image drupal-7


【解决方案1】:

实现目标的最简单方法是在父级div 上使用table-cell 显示属性和vertical-align: middle,并设置所需的边框、高度和宽度。比您的 img 应该将 max-widthmax-height 属性设置为 100%。所以有这样的 HTML 结构:

<div class="img-container">
  <img src="..." />
</div>

您的 CSS 可能是:

.img-container {
  width: 120px;
  height: 120px;
  display: table-cell;
  vertical-align: middle;
}

.img-container > img {
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
  display: block;
}

Codepen 显示结果:http://codepen.io/anon/pen/BpeOzG

【讨论】:

  • 非常感谢您的建议。它几乎解决了这个问题。它似乎与边框一起工作,但图像高度的问题仍然存在。看看底部附近的 Fallout 图像作为示例:link 这是我输入到注入器模块的 CSS:code.field-type-image { width: 140px;高度:140px;显示:表格单元格;垂直对齐:中间;文本对齐:居中; } .field-type-image > img { 最大宽度:100%;最大高度:100%; }
  • 这是我在注入器模块中输入的 CSS:.field-type-image { width: 140px; height: 140px; display: table-cell; vertical-align: middle; text-align: center; } .field-type-image &gt; img { max-width: 100%; max-height: 100%; }
  • 您是指图像和边框之间的额外空间?如果是这样,原因是默认情况下图像是内联渲染的,这意味着它与字母 a、b、c、d 等位于同一行,而这个额外的空间是用于 f、g、是的。要解决问题,只需添加到.img-container &gt; img display: block;,您的问题就会得到解决。在这里你还可以找到关于下降器的很好的解释:stackoverflow.com/questions/31444891/….
  • 不,一点也不,额外的空间是我想要保持图像边框一致的地方。辐射图像通过提高高度来打破这种一致性。我认为 drupal 中的图像样式设置会降低这种情况,但它似乎不起作用。除非我做错了什么。
  • @Steve-o 要么我不明白你的意思,要么覆盖样式可能有问题。我在 codepen 中检查了我的方法并将链接放在我的答案中,这样您就可以查看它是否是您想要的结果。但是在添加display: block 后,父级上的text-align: center 应替换为图像本身上的margin: 0 auto;。此更改也放置在 codepen 中。请看一下,如果它可以解决您的问题,请告诉我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多