好吧,这是一个具有挑战性的!我真的想看看这是否可以用CSS完成如果可能的话。DIV与最大宽度和最大高度和保留比例(仅CSS)
我有一个独特的布局,要求图像的大小和位置根据他们的父容器。如果图片超过它的高度或宽度的父母,我需要它缩小大小以适应。目前,我一起使用最大宽度和最大高度,并且工作正常。图像调整大小以适应并保持高宽比。
现在,这里是棘手的部分。我需要为这个图像添加一个特殊的阴影,而这个阴影不能用CSS阴影框来实现。阴影使用PNG图像。阴影需要根据图像调整大小和放置位置 - 这意味着它落在图像的底部,它等于图像的宽度。
通常我会做到的阴影与::后的大小和位置使其相对于它的父元素,它完美的作品除了它的父是图像和图像不允许::之前或之后:: 。
所以,据我所知,实现这一目标的唯一方法是将图像包装在另一个容器中,以便我可以使用该容器作为父级元素和阴影图层的定位参考。 但是我无法找到一种方法来使容器div的行为与图像的最大宽度和最大高度的大小相同,同时仍然保持纵横比。
保持高宽比的最佳方法是使用填充顶部,当宽度是唯一重要因素时,它的出色表现非常出色。但是,填充顶部技术不允许容器具有最大高度。
所以我正在寻找一种CSS技术,可以让块元素保持其纵横比,同时具有最大宽度和最大高度。类似于图像在这种情况下的表现。
我搜索了一个解决方案的互联网,并没有看到任何人描述这种确切的情况。非常感谢任何能够提供帮助的人。
新增2017年9月1日:
我应该指出,这不仅仅是影子,我需要相对于图像定位更多。还有一些其他元素需要以这种方式定位,而其他元素不是简单的背景图像。因此,尽管Lightbender的解决方案对于影子来说非常棒,但它并不能解决眼前的大问题。我需要一个容器周围的图像,我可以用它作为参考来定位其他子元素。
简单的解决方案。我会尽快尝试,并确认它是否适用于我的情况。 –
这看起来像是一个很好的阴影解决方案。尽管我现在意识到我不仅需要这个解决方案,还需要这个解决方案。在一些页面上,还有其他元素需要相对于图像进行定位(例如,绝对定位好像图像是相对父元素)。所以为了让这些工作,我确实需要一个解决方案,在该图像周围包装一个容器,以便我可以使用容器来定位这些其他元素。所以我赞赏这个解决方案对于影子的简单性,但不幸的是它并没有解决整个问题。 –
我不认为你可以用你想像的方式在纯css中做到这一点,因为max-height不会影响包含图像的高度。相反,图像会尊重宽度和溢出。我从来没有尝试过,但它可能会为您提供一种可行的方法。 https://stackoverflow.com/a/10804311/8533154对不起,我的解决方案并没有解决你的整个问题,最好的运气:) – LightBender