html - 将 img 大小(保留纵横比)自动缩放到父级的 div 高度
问题描述
我无法弄清楚如何防止图像(见下文)溢出div
它所包含的内容。
我已经厌倦了明显的解决方案,例如设置height: 100%
以及display: block
或的各种组合display: flex
如何自动缩放图像(保留纵横比)以填充其父 div 的高度(但不是更多)?
这是 HTML 文件和 CSS 文件。按“运行代码片段”完美地显示了问题。
body {
margin: 0.0em;
padding: 0.0em;
}
.banner {
width: 100%;
background-color: yellow;
}
.text-one {
margin: 0.0em;
padding: 0.2em 0.2em 0.0em;
font-weight: bold;
}
.text-two {
margin: 0.0em;
padding: 0.0em 0.4em 0.5em;
font-style: italic;
}
.picture {
float: right;
height: 100%;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CSS Problem</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="main">
<div class="banner">
<a href="https://www.other-example.com">
<img class="picture"
src="https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg">
</a>
<div class="both-text">
<a href="https://www.example.com/">
<h1 class="text-one">
www.Example.com/
</h1>
</a>
<h3 class="text-two">
The Example Application
</h3>
</div>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.
</p>
</div>
</body>
</html>
解决方案
您需要指定将图像保存到display
的 anchor( <a></a>
) 标记的属性inline-block
。另一种方法是通过指定高度来固定横幅高度,例如height: 100px
.
编辑:要动态缩放图片并将其固定在容器中,请使用:
body {
margin: 0.0em;
padding: 0.0em;
}
.banner {
width: 100%;
background-color: yellow;
position: relative;
}
.text-one {
margin: 0.0em;
padding: 0.2em 0.2em 0.0em;
font-weight: bold;
}
.text-two {
margin: 0.0em;
padding: 0.0em 0.4em 0.5em;
font-style: italic;
}
.picture {
height: 100%;
}
.img-container {
height: 100%;
right: 0;
position: absolute;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CSS Problem</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="main">
<div class="banner">
<a class="img-container" href="https://www.other-example.com">
<img class="picture"
src="https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg">
</a>
<div class="both-text">
<a href="https://www.example.com/">
<h1 class="text-one">
www.Example.com/
</h1>
</a>
<h3 class="text-two">
The Example Application
</h3>
</div>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.
</p>
</div>
</body>
</html>
推荐阅读
- javascript - 为什么 create-react-app 使用 Dashjs 的调试版本构建我的应用程序?
- hyperledger-fabric - Chaincode 已安装、批准、提交,但仍无法调用
- css - 如何创建像 CleanMyMac X 这样的 UI?
- javascript - 我的 node js 项目有问题,我的服务器不会响应并且会报错
- r - 如何使用 R 计算每种流派的电影数量?
- ios - 在Objective C中推送segue时出现无法识别的选择器错误
- regex - 正则表达式匹配以预定义字符开头和结尾的字符串的首次出现
- c++ - 如何使我的代码重复而不是以 c++ 结尾?
- avfoundation - AVFoundation 使用蓝牙耳机录制视频
- wget - 使用“wget”递归下载站点遇到错误