css - 无法摆脱 CSS 网格装订线(并且嵌入太宽)
问题描述
我有一个简单的两行 CSS 网格(嵌套在另一个网格内),我有两个问题。
我无法让行之间的排水沟消失,除非将顶行内容的下边距减少 3px。关于更优雅的解决方案的任何想法?我在下面的 CSS 中注释掉了我的残酷修复。实时链接: http: //nyveen.ca/bb-test/
为什么嵌入的 Vimeo 视频会超出媒体 div 的边界一两个像素?
@charset "UTF-8";
body {
background-color: #89726c;
}
.main-nav {
grid-area: nav;
}
.main-head {
grid-area: header;
}
.content {
grid-area: content;
background-color: #443937;
}
.main-footer {
grid-area: footer;
}
.wrapper {
margin: 5%;
display: grid;
gap: 20px;
grid-template-areas:
"nav"
"header"
"content"
"footer";
}
header, footer {
background-color: #000000;
color: #89726c;
}
nav, .content, a {
color: #fffcfd;
}
nav ul {
display: flex;
justify-content: space-between;
}
img {
max-width: 100%;
}
.media {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: auto;
}
.image1 {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
}
.image2 {
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
/** .image1, .image2 {
margin-bottom: -3px;
}
**/
.video {
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 2;
grid-row-end: 3;
}
<div class="wrapper">
<nav class="main-nav">
<ul>
<li><a href="">Link 1</a></li>
<li><a href="">Link 2</a></li>
</ul>
</nav>
<header class="main-head">
<p>TITLE</p>
<p>in progress</p>
<p>by me</p>
</header>
<div class="content">
<h1>film title 2020 00:05:00</h1>
<div class="media">
<div class="image1"><img src="http://nyveen.ca/bb-test/images/1.png"></div>
<div class="image2"><img src="http://nyveen.ca/bb-test/images/2.png"></div>
<div class="video">
<div style="padding:46.88% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/207028770" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe></div>
<script src="https://player.vimeo.com/api/player.js"></script>
</div>
</div>
<h1>second film 2020 00:05:00</h1>
<div class="media">
<div class="image1"><img src="http://nyveen.ca/bb-test/images/3.png"></div>
<div class="image2"><img src="http://nyveen.ca/bb-test/images/4.png"></div>
<div class="video">
<div style="padding:42.5% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/108650530?color=ffffff&title=0&byline=0&portrait=0&badge=0" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe></div>
<script src="https://player.vimeo.com/api/player.js"></script>
</div>
</div>
</div>
<footer class="main-footer">The footer</footer>
</div>
解决方案
要解决装订线问题,只需为图像包装器设置全高,为内部图像设置全宽和全高并最终覆盖它们,就像这样。
.image1 {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
height: 100%;
}
.image2 {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
height: 100%;
}
.image1 img, .image2 img {
width: 100%;
height: 100%;
object-fit: cover;
}
关于你的第二个问题。我没有看到媒体 div 的任何边框。
推荐阅读
- java - 公共静态双verifyDouble函数不返回
- c++ - 如何在 C++ 中使用数组值作为类对象名?
- html - 如何限制 MaterializeCSS 库中每行的图像数量
- javascript - 对象作为 React 子级无效(找到:[object Promise])。但我没有回报承诺?
- json - @rollup/plugin-typescript 找不到 JSON 文件
- css - 如何在 React Native 中设置卡片样式?
- javascript - PixiJS renderTexture 抗锯齿
- mailkit - Mimekit / MailKit BSMTP 文件
- python - TypeError:'class Meta' 的属性无效:约束
- javascript - 从具有范围的类中传递函数