html - 无法将图像放入网格单元格中
问题描述
我有一个 div 元素,它在 3x3 网格中被破坏,我想在 div 的左端添加一个图像,该图像仅延伸 1 列但所有三行。这是我的第一个 HTML 和 CSS 项目,所以我很确定我的代码大多是混乱的,我可能错过了一些明显的东西。
我尝试插入的图像被标记为“The Well”,尺寸为 1024x1600 像素。另外,我假设为图像设置一个固定的高度和宽度会导致不同设备宽度和东西的错误,那么有什么方法可以实现我想要使用相对大小的内容吗?感谢您在此事上提供的任何帮助。
PS:HTML和CSS如下:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
header {
position: relative;
width: 100%;
display: flex;
padding: 30px 100px;
justify-content: space-between;
align-items: center;
background: linear-gradient(#182848, #4b6cb7);
}
header .logo a{
color: whitesmoke;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 2px;
font-weight: bold;
font-size: 3em;
}
header nav ul {
display: flex;
justify-content: center;
align-items: center;
}
header nav ul li {
list-style-type: none;
}
header nav ul li a {
text-decoration: none;
padding: 10px;
color: whitesmoke;
border-radius: 20px;
}
.main-content {
position: relative;
width: 100%;
display: grid;
grid-template-columns: 0.5fr 3fr 0.5fr;
}
.book-wrapper {
grid-column-start: 2;
grid-column-end: 3;
padding: 50px 10px;
}
.book1 {
width: auto;
height: 250px;
margin: 10px;
padding: 10px 10px;
border-style: solid;
border-radius: 1px;
border-color: black;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
.book1 img {
max-width: 100%;
height: auto;
object-fit: contain;
grid-area: 1 / 1 / span 3 / span 1;
}
.book1 h2 {
grid-area: 1 / 2 / span 1 / span 2;
}
.book1 p {
grid-area: 2 / 2 / span 3 / span 3;
}
.book2 {
margin: 10px;
height: 250px;
padding: 10px 10px;
border-style: solid;
border-radius: 1px;
border-color: black;
}
.book3 {
margin: 10px;
height: 250px;
padding: 10px 10px;
border-style: solid;
border-radius: 1px;
border-color: black;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Web Page</title>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<div class="logo">
<a href="index.html">GRAPE</a>
</div>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Works</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">About Me</a></li>
</ul>
</nav>
</header>
<div class="main-content">
<div class="book-wrapper">
<div class="book1">
<img src="images/The Well.png" alt="book cover">
<h2>Masquerade</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores, modi. Atque voluptatem illo quas libero error minus pariatur cum eius eligendi consequatur. Tempora, minima perspiciatis.</p>
</div>
<div class="book2">
<img src="#" alt="book cover">
<h2>13 Steps</h2>
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Iste quia qui sint non beatae labore eos excepturi commodi soluta? Modi, quidem. Officiis, ipsa consectetur! Repudiandae.</p>
</div>
<div class="book3">
<img src="#" alt="book cover">
<h2>Project Aphrodite</h2>
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Iste quia qui sint non beatae labore eos excepturi commodi soluta? Modi, quidem. Officiis, ipsa consectetur! Repudiandae.</p>
</div>
</div>
</div>
</body>
</html>
解决方案
就在.book1
set width: 100%;
,删除height
它看起来:
.book1 {
width: 100%;
margin: 10px;
padding: 10px 10px;
border-style: solid;
border-radius: 1px;
border-color: black;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
.book1 img
对于setmax-width: 100%;
和的属性height: 100%;
:
.book1 img {
max-width: 100%;
height: 100%;
object-fit: contain;
grid-area: 1 / 1 / span 3 / span 1;
}
对其他书也一样...
推荐阅读
- constraints - 使用投影规则进行约束传播
- matplotlib - geopandas中地图周围的边距问题
- python - Python Pandas:将具有不同长度的列表作为一行分配给熊猫数据框
- java - Vert.x 请求处理程序和阻塞数据库查询
- python - 为什么导入完整模块时无法访问itertools的某些功能
- git - git 用 master 的旧版本覆盖我的更改
- firebase - 在 Firebase Cloud Function 上运行 Socket.io 是个好主意吗?
- python - 是否有一个库可以遵循一系列索引和“getattr”操作?
- java - 如何在 JavaFX 应用程序中从 Excel 中读取数据?
- excel - .End(xlUp).select - 选择下一列而不是行