【问题标题】:Small gap between img tag and borderimg标签和边框之间的小间隙
【发布时间】:2021-07-26 00:46:44
【问题描述】:

所以我用 css 属性设置了我的图像标签border:black 2px solid; 显然它上面有一个小间隙

我尝试过: 将 img 转为 display:block; 并删除 html 文件中的空白。知道是什么原因造成的吗?以及如何解决它。据我所知,内联有点像文本一样对待元素,所以它对于文本后代有一个小间隙,这就是为什么它在底部有间隙,而侧面的小间隙是由内联元素和块元素之间的间距引起的。

像这样<div><img></div> 将img 标记转为阻止并删除html 中的空格并不能解决这个问题,因为我直接将边框添加到它自己的img 标记中。

我想知道这是否正常,它只在浏览器缩小 75% 和放大 125% 时出现

这个甚至出现在 100% 缩放的浏览器上

:root {
    min-height: 100vh;
}
body {
    margin: 0;
}

.page-wrapper {
    width: 85%;
    height: 100%;
    margin: auto;
    background-color: aquamarine;
}
/* Styling Heading */
.heading-wrapper{
    height: 500px;
    width: 100%;
}

.heading-wrapper > img {
    height: 100%;
    width : 100%;
    display:block;
    border: black 2px solid;
    box-sizing: border-box;
}
/* image list */

.img-list-wrapper {
    display:block;
    box-sizing: border-box;
    height: 100%;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    align-content: flex-start;
}

.img-list-wrapper > .image-wrapper {
    height: 250px;
    width: 250px;
    margin: 20px 0;
    display:block;
    box-sizing: border-box;
}

.img-list-wrapper > .image-wrapper > img{
    height: 100%;
    width: 100%;
    display: block;
}



/* effect */

.effect {
    border: 5px solid yellow;
}
<!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">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class="page-wrapper">
        <div class="heading-wrapper">
            <img src="https://picsum.photos/800" alt="Main Heading">
        </div>
        <div class="img-list-wrapper">
            <div class="image-wrapper">
                <img src="img/image1.jpeg">
            </div>
            <div class="image-wrapper">
                <img src="img/image1.jpeg">
            </div>
            <div class="image-wrapper effect">
                <img  src="https://picsum.photos/800">
            </div>
            
            <div class="image-wrapper">
                <img src="img/image1.jpeg">
            </div>
            <div class="image-wrapper">
                <img src="img/image1.jpeg">
            </div>
            <div class="image-wrapper">
                <img src="img/image1.jpeg">
            </div>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>

如果您需要其他信息,请随时询问。 谢谢。

【问题讨论】:

  • 您可以将picsum.photos 用于虚拟图像
  • 添加虚拟图片
  • 对我来说看起来像是 Chrome 中的一个小故障。在任何缩放级别上都可以在 Firefox 上正常显示
  • 看起来不错。尝试在隐身模式下,也许某种 chrome 扩展可以做到这一点。您也可以尝试添加font-size: 0; line-height: 0; - 对于图像包装器,如果某种排版样式添加该间距也会有所帮助
  • 我已经尝试过字体大小和行高,仍然与使用 Edge 和 Chrome 浏览器时相同。 @julien.giband 我们是对的,它适用于 firefox

标签: html css


【解决方案1】:

:root {
  min-height: 100vh;
}

body {
  margin: 0;
}

.page-wrapper {
  width: 85%;
  height: 100%;
  margin: auto;
  background-color: aquamarine;
}


/* Styling Heading */

.heading-wrapper {
  height: 500px;
  width: 100%;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}


/* image list */

.img-list-wrapper {
  display: block;
  box-sizing: border-box;
  height: 100%;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  align-content: flex-start;
}

.img-list-wrapper>.image-wrapper {
  height: 250px;
  width: 250px;
  margin: 20px 0;
  display: block;
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-color: #9e9e9e;
}


/* effect */

.effect {
  border: 5px solid yellow;
}
<!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">
  <link rel="stylesheet" href="style.css">
  <title>Document</title>
</head>

<body>
  <div class="page-wrapper">
    <div class="heading-wrapper" style="background-image: url(https://picsum.photos/800);">
    </div>
    <div class="img-list-wrapper">
      <div class="image-wrapper" style="background-image: url(img/image1.jpeg);">
      </div>
      <div class="image-wrapper" style="background-image: url(img/image1.jpeg);">
      </div>
      <div class="image-wrapper effect" style="background-image: url(https://picsum.photos/800);">
      </div>
      <div class="image-wrapper" style="background-image: url(img/image1.jpeg);">
      </div>
      <div class="image-wrapper" style="background-image: url(img/image1.jpeg);">
      </div>
      <div class="image-wrapper" style="background-image: url(img/image1.jpeg);">
      </div>
    </div>
  </div>
  <script src="script.js"></script>
</body>

</html>

【讨论】:

  • 请同时添加解释,而不仅仅是工作代码
  • @John Skiles Skinner 对不起我的英语。我的主要语言是俄语。关于这个决定。在这种情况下,在图层 (div) 中使用图像,其路径使用样式指定。没有不必要的标签和麻烦。这是我的逻辑,这是我想到的第一件事。这个解决方案对我有用。
  • @John Skiles Skinne 此外,在样式的帮助下,您可以创建不同版本的下载和其他解决方案,例如,如果图像未加载。附言伙计们,请帮助我有这样的机会的工作。我没钱了。