【问题标题】:How to get <img> to be the same width as <figcaption>?如何使 <img> 与 <figcaption> 的宽度相同?
【发布时间】:2012-11-22 05:44:09
【问题描述】:

在响应式设计中,如何使&lt;figcaption&gt; 的宽度根据&lt;img&gt; 的宽度进行调整,但又不超过它?

 <section>    
    <figure>
        <img src="link.jpg">
        <figcaption>Caption</figcaption>
    </figure>
</section>

corresponding CSS 只限制&lt;img&gt; 而不是&lt;figcaption&gt;,请参阅:

如何在&lt;figure&gt; 容器上使用max-width: 200px(或12.5em)来限制&lt;figcaption&gt;&lt;img&gt;没有



以下是 CSS 的重要部分 (full on JSFiddle):

section figure {
    position: relative;
    margin: 0 auto; /* to center it */
}

section figure img {
    max-width: 100%;
    vertical-align: middle; /* to make sure images behave like blocks */
}

section figure figcaption {
    position: absolute;
    right: 0; bottom: 0; left: 0;
}

【问题讨论】:

  • 你能发布你的CSS吗?
  • @Lokase,有一个 JSFiddle 链接,但我也将相关的 CSS 包含在问题中(根据 StackOverflow 指南)
  • 感谢 Baumr,第一次通读时没有看到 jsFiddle 链接。 javascript/jQuery 解决方案是不可能的吗?还是您只想拥有一个 CSS 解决方案?
  • 是的,正在寻找一个不错的、简单的跨浏览器友好的 CSS 解决方案

标签: image html css responsive-design fluid-layout


【解决方案1】:

section 上设置max-width: 100%; display: inline-block; (http://jsfiddle.net/vZpmq/1/) 或float: [left|right] (http://jsfiddle.net/cdmU3/1/) 会使其收缩以适应其内容(以及它所在的框)。不过,您可能需要重新设计一些其他内容以适应这些更改。

或者,尝试在 img 上设置 width: 100%; height: auto;,并在 figure 元素上设置宽度? http://jsfiddle.net/9yUsP/

(在img 上设置height: auto; 意味着无论heightwidth 属性在img 元素本身上设置如何,它都会保留其纵横比)

【讨论】:

  • 我更新了你的小提琴,在img 上设置了width: 100%; height: auto;,并在图上放置了max-width。似乎工作,除了当窗口变小时标题转义(由于绝对定位):jsfiddle.net/9yUsP
  • 谢谢。我正在寻找一种避免设置max-width: 200px 的方法(无需您进行其他更改即可工作)— 我应该编辑我的问题以强调吗?谢谢
  • 设置figure { display: inline-block; max-width: 100%; }figure img { max-width: 100%; } 不能实现这一点吗?例如jsfiddle.net/vZpmq/1
  • 此时你遇到了 CSS 的限制 :( 你真的需要一个容器吗?在外部添加一个 &lt;div&gt; 不会影响语义;它实际上并不意味着任何东西(据我所知)。对于 IE6/7,添加 zoom: 1; 以使 inline-block 工作。
  • 我已经在 IE7 兼容模式下尝试过(手头没有真正的 IE7),它看起来不错(当我添加最新的 HTML5Shiv 时):jsfiddle.net/WDj4Y
猜你喜欢
  • 2011-09-25
  • 2021-02-26
  • 2022-12-05
  • 1970-01-01
  • 2019-04-12
  • 2019-01-18
  • 2018-09-03
  • 2021-02-09
  • 1970-01-01
相关资源
最近更新 更多