当前位置: 首页 > 面试题库 >

在CSS中将文本限制为兄弟图像的宽度/自动宽度

公冶兴文
2023-03-14
问题内容

我本质上是在尝试创建一个“ figure”元素的版本(HTML5中即将推出),在该图像的下面有一个简短说明的图像。

但是,我想将整个元素的宽度限制为图像的宽度,以使文本不比图像宽(必要时可以换成多行)。

基本HTML:

<div class="figure">
<img src="..." alt="..." width="..." height="..." /><br />
A description for the image
</div>

我精通使用CSS,但我想不出任何纯CSS解决方案,而无需添加style="width:100px"div相匹配的图像宽度。

更新
:经过一番搜索和思考,最好的方法似乎是在div上使用内联宽度。如果我希望div比图像宽一点(例如,容纳更长的标题),我将在图像上保留width属性。

这种方法还意味着我可以并排放置两个图像,并在下面添加标题。如果我有一组大小相同的图像,我当然可以为每个图像添加额外的样式div

感谢所有回答!


问题答案:

样式表

div.figure img,
div.figure div.caption {
    width: 100%;
}
div.figure div {
    overflow: hidden;
    white-space: nowrap;
}

注意:要启用换行,只需删除最后的CSS行

HTML

<div class="figure" style="width:150px;">
    <img src="logo.png" alt="logo" />
    <div class="caption">A description for the image</div>
</div>

我已经在Chrome,Firefox和IE7中对其进行了检查,在所有这三个方面看起来都不错。我意识到这在div上具有宽度,而在img上没有,但是至少您只需要将宽度设置在一个位置即可。没有使用css-
expressions(仅适用于IE),我看不到将外部div宽度设置为第一个子元素的宽度的方法。



 类似资料:
  • 问题内容: 当文字到达图片的右侧时,如何将文字包裹在其中? 这是笔:http : //codepen.io/mjankowski/pen/pbzejy 在上述情况下,第二个图形标题移动到图像的右侧之外。我希望它在“ Longname”之后换行。 另外,对于更简单的方法,也欢迎提出建议。我只希望图像/标题整洁。 谢谢,马特 问题答案: 一种方法是使您的元素具有弹性容器,并将其对齐方式设置为。这样可以

  • 问题内容: 我有一个元素,其内容更改时我想为其宽度设置动画。它具有,并且永远不会改变。我已经看到了这个技巧,但这是为了在两个值之间进行转换并设置一个。我根本不操纵值,仅操纵内容,我希望元素的大小随动画而变化。CSS完全有可能吗? 这是我的代码的简化版本: 当用户将鼠标悬停在元素上时,我希望更改的大小可以动画。 问题答案: 正如我所评论的,还不能设置动画,所以请使用/ 技巧,或者,如果需要更精确的设

  • 问题内容: 鉴于以下几点,我如何使我的最后一列自动调整大小?(最后一列应自动调整内容的宽度。假设我只有1 li元素应该收缩,而我只有3 li元素等等): CSS: 问题答案: 以下将解决您的问题: 灵活的基于类的解决方案 一种更灵活的解决方案是创建一个类,并将其应用于您要确保其内容适合一行的任何列: 然后在您的HTML中:

  • 我在响应式站点上设置了flexSlider。我正在创建的滑块可以拍摄横向和纵向图像。我设置了,以便调整高度以适应图像。 在最大的媒体查询中,flexslider容器的宽度为750px。这对于横向图像很好,但纵向图像太大了。肖像图像的宽度设置为与容器相同的大小-750px宽,因此高度至少是容器宽度的两倍,因此如果不滚动,则无法查看整个图像。 在css中,我尝试设置最大高度:750px,这解决了高度问

  • 问题内容: 如何为宽度创建CSS规则 默认使用100%宽度 如果100%的宽度超过了某个像素的宽度(例如512像素),则该宽度将被限制为该像素的宽度 我不确定宽度和最大宽度关系,也不知道如何支持calc()或可以表达这一点。这需要与最新的WebKit浏览器和Firefox 4配合使用。不需要IE8等支持。 问题答案: 这实际上是的预期用途。如果元素的计算值(实际值)超过,它将被限制为最大值,而不是

  • 我创建了条形图的简单示例,但我注意到条形图的大小适合图表。我怎样才能限制尺寸?我想限制宽度大小。