gpt4 book ai didi

html - 在方形html元素内保持图像的纵横比

转载 作者:行者123 更新时间:2023-11-28 14:21:17 25 4
gpt4 key购买 nike

这是 html/css 中众所周知的难题,但我还是要问。我正在寻找具体的回应,而不是哲学的回应。

如果在下面的 html 文件中我只使用“width: 64px;”,图像以正确的宽高比显示,但列表项的间距不均匀。

如果我使用“width: 64px; height: 64px;”,元素分隔是正确的,但图像的长宽比错误。

一个常见的解决方案是将图像包裹在一个正方形内。我想避免这种情况。

<html>
<head>
<style type = "text/css">
img {
width: 64px;
}
</style>
</head>
<body>
<ul>
<li>
<a href="foo.html">
<img align="middle" style="bulletIcon" src="image1.svg"/>
Foo
</a>
</li>
<li>
<a href="bar.html">
<img align="middle" style="bulletIcon" src="image2.svg"/>
Foo
</a>
</li>
<li>
<a href="bar.html">
<img align="middle" style="bulletIcon" src="image2.svg"/>
Foo
</a>
</li>
<li>
<a href="foo.html">
<img align="middle" style="bulletIcon" src="image1.svg"/>
Foo
</a>
</li>
</ul>
</body>
</html>

这是两张图片。它们在这里是为了完整性而使用 svg,但实际问题确实更难,因为它们是 jpg/png(所以我不能只使用 svg viewbox,无论如何这是一个糟糕的解决方案)。

这是image1.svg

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="100" height="200"
viewBox="0 0 100 200"
version="1.1">
<g>
<path d="M 10 10 L 90 10 L 90 190 L 10 190 z"
fill="cyan" stroke="blue" stroke-width="3" />
</g>
</svg>

现在是 image2.svg

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="200" height="100"
viewBox="0 0 200 100"
version="1.1">
<g>
<path d="M 10 10 L 190 10 L 190 90 L 10 90 z"
fill="cyan" stroke="blue" stroke-width="3" />
</g>
</svg>

最佳答案

如果您不需要 IE7 支持,我建议您使用 table-row/table-cell: http://jsfiddle.net/vRkgs/

li {
display:table-row;
}
li a {
display:table-cell;
height:100px;
vertical-align:middle;
}

关于html - 在方形html元素内保持图像的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com