您可以使用 HTML ...这将保留纵横比,但会将图像缩放到所需的任何高度,以使宽度为内容容器的 50%。
<style type="text/css">
img { width: 50%; float: left; }
#product-list { width: 50%; float: right; }
.product { overflow: hidden; }
.button { width: 10%; float: right; background: red; }
</style>
<div id="content">
<img src="http://balloonraces.homestead.com/balloon.jpg"/>
<div id="product-list">
<div class="product">
<a class="button">Button</a>
</div>
</div>
</div>
或者,下面保留图片的大小,产品列表会占用剩余空间。
<style type="text/css">
img { width: 200px; float: left; }
#product-list { margin-left: 200px; }
.product { overflow: hidden; }
.button { width: 10%; float: right; background: red; }
</style>
您可以通过确定您希望一个开始表现得像另一个的停止点来指定更复杂的行为,假设您希望后一个示例直到两者之间的比例为 1:1 并使用媒体查询缩小。
<style type="text/css">
img { width: 200px; float: left; }
#product-list { margin-left: 200px; }
.product { overflow: hidden; }
.button { width: 10%; float: right; background: red; }
@media screen and (max-width: 400px) {
img { width: 50%; }
#product-list { width: 50%; float: right; margin: 0; }
}
</style>
任何比这更复杂的东西都可能涉及 JavaScript。
编辑因为您更改了问题的条件,您希望图像始终为 100% 的高度,这个答案不再适用。而是使用以下 CSS...
<style type="text/css">
img { height: 100%; float: left; }
#product-list { overflow: hidden; }
.product { overflow: hidden; }
.button { width: 10%; float: right; background: red; }
</style>