说一说css的font-size: 0?

平常我们说的font-size:0;就是设置字体大小为0 对吧,但是它的用处不仅仅如此哦,它还可以消除子行内元素间额外多余的空白

问题描述?

是否出现过当多个img标签平铺的时候,会出现几个像素的间距?就像这样👇(为了醒目加了个红色的框框)

是什么原因造成的呢?

大家都知道img是行内元素,比如当我们的标签换行的时候,回车符会解析一个空白符,所以这是造成会有间距的原因之一。

当然喽,不仅仅是img,包括其他的一些常见的行内元素,比如span👇标签回车换行的效果,同样也会间隙,当然如果是缩进、空格等字符 同样也会产生空白间隙,导致元素间产生多余的间距

html 复制代码
    <span>背景图</span>
    <span>背景图</span>
    <span>背景图</span>
    <span>背景图</span>
    <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >
    <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >
    <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >

如何解决呢?

那我们首先想到取消换行、空格...

既然是因为标签换行了引起的,那么我们就取消换行、空格等试一试。

html 复制代码
<span>背景图</span><span>背景图</span><span>背景图</span><span>背景图</span>
<img class="item-img" src="./src/assets/login-bg.png" alt="背景图" ><img class="item-img" src="./src/assets/login-bg.png" alt="背景图" ><img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >

证明方法还是有用的~ 那还有没有其他的方法解决呢,那这个时候可以借助font-size:0来用一用。

如何使用font-size: 0 解决呢?

利用font-size:0消除子行内元素间额外多余的空白,需要在父元素上添加font-size:0

是不是就解决了呀?

看一个完整的完整demo效果

当然需要注意一下

设置font-size: 0时,子元素必须指定一个font-size大小,否则文本内容不会显示哦

示例代码:

html 复制代码
<!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>demo</title>
  <style>
    /*************************css代码👇***********************/
    ul {
      margin: 20px;
      display: flex;
      gap: 20px;
    }
    .item {
      width: 300px;
      height: 200px;
      padding: 20px;
      border-radius: 10px;
      background: #fff;
      overflow: hidden;
      font-size: 0;
      box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)
    }
    .item-img {
      width: 100%;
      height: 175px;
      object-fit: cover;
      border-radius: 5px;
    }
    .item-text {
      color: #333;
      font-size: 14px;
    }
    span {
      background-color: red;
      padding: 10px;
    }
  </style>
</head>
<body>


  <ul>
    <li class="item">
      <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" ><p class="item-text">《好看的背景图》</p>
    </li>
    <li class="item">
      <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >
      <p class="item-text">《好看的背景图》</p>
    </li>
    <li class="item">
      <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >
      <p class="item-text">《好看的背景图》</p>
    </li>
    <li class="item">
      <img class="item-img" src="./src/assets/login-bg.png" alt="背景图" >
      <p class="item-text">《好看的背景图》</p>
    </li>
  </ul>
</body>
</html>
相关推荐
码农秋26 分钟前
Element Plus DatePicker 日期少一天问题:时区解析陷阱与解决方案
前端·vue.js·elementui·dayjs
未来之窗软件服务30 分钟前
未来之窗昭和仙君(五十六)页面_预览模式——东方仙盟筑基期
前端·仙盟创梦ide·东方仙盟·昭和仙君·东方仙盟架构
top_designer32 分钟前
Illustrato:钢笔工具“退休”了?Text to Vector 零基础矢量生成流
前端·ui·aigc·交互·ux·设计师·平面设计
星哥说事37 分钟前
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!
前端
donecoding1 小时前
前端AI开发:为什么选择SSE,它与分块传输编码有何不同?axios能处理SSE吗?
前端·人工智能
安_1 小时前
<style scoped>跟<style>有什么区别
前端·vue
姝然_95271 小时前
Claude Code 命令完整文档
前端
wjcroom1 小时前
web版进销存的设计到实现一
前端
无知的前端1 小时前
Flutter常见问题以及解决方案
前端·flutter·dart
BD_Marathon1 小时前
Vue3_Vite构建工程化前端项目
前端