HTML行内级元素之间的空格问题

1.为什么元素之间会产生空格?

在编写行内级元素(包括inline-block元素)的代码之间如果有空格(换行),在浏览器上就会显示元素之间有空格。

示例代码如下:

.box span {
background-color: red;
}
<div class="box">
<span>span1</span>
<span>span2</span>
<span>span3</span>
</div>

浏览器运行结果:

注意:

  • 不管我们在元素之间敲如多少空格,都会被解析成一个空格;
  • 空格本身就是一个字符,所以空格的大小是由父元素的font-size来决定的,父级元素设置的字体越大,空格越大;

2.如何去掉元素之间的空格呢?

  • 元素代码之间不留空格:元素产生空格的原因就是我们敲入了空格或者换行,解决方案一就是元素代码之间不留空格,弊端就是代码不美观并且可读性差。

    <div class="box">
    <span>span1</span><span>span2</span><span>span3</span>
    </div>
  • 注释掉空格:浏览器不会解析html代码的注释,将空格注释掉也可以消除元素之间的空格,弊端就是繁琐、不美观。

    <div class="box">
    <span>span1</span><!--
    --><span>span2</span><!--
    --><span>span3</span>
    </div>

  • 设置父元素的font-size为0:空格的大小是由父元素的字体大小决定的,所以可以给父元素添加font-size: 0;,注意原来需要消除空格的元素要重新设置自己的font-size,要不然字体大小会继承父元素的,弊端就是添加了多余的css属性,并且该方法在Safari浏览器中不适用。

    .box {
    font-size: 0; /* 给父级元素设置字体大小 */
    } .box span {
    background-color: red;
    font-size: 16px; /* 防止字体属性继承 */
    }

  • 给元素添加浮动:其原理是添加浮动会触发BFC,元素之间生成结界,形成一个独立的渲染空间,元素与元素之间就不会留有空格了,是目前比较好的解决方案。

    .box span {
    float: left;
    background-color: red;
    }

HTML行内级元素之间的空格问题的更多相关文章

  1. html行内块元素之间的缝隙

    关于html行内块元素之间缝隙的那点儿事情 事情是这样子的,我起初打算验证使用transform属性的标签是否会影响其他的标签的布局,于是写了下面一段代码: <!DOCTYPE html> ...

  2. 解决行内块元素(inline-block)之间的空格或空白问题

    一.问题产生 由于html代码格式化后,标签会缩进或者换行.由于浏览器默认处理导致元素在页面显示中出现单个空格问题,尤其在行内或者行内块元素布局时影响比较明显 例如: 代码 页面显示 二.解决方案 这 ...

  3. css——行内元素和块级元素的具体区别与行内块元素

    (学习笔记) 行内元素(inline)和块级元素(block)都是display属性的值.要知道行内元素和块级元素的区别,首先要了解他们的特性. 行内元素的特性:“行内”,顾名思义,在一行之内,所以相 ...

  4. inline-block(行内区块元素)的详解和应用

    说inline-block(行内区块元素)之前,先说下他另外的2个兄弟 display:inline; 内联元素,简单来说就是在同一行显示.他没有高度,给内联元素设置width和height是没效果的 ...

  5. CSS 两个行内块元素,宽度相加刚好等于父盒子容器的元素,但第二个元素掉在第二行解决办法

    我们可以发现:两个行内块元素,宽度相加刚好等于父盒子容器的元素,但第二个元素掉在第二行,这是什么问题呢? 我们先来看一下效果: <!DOCTYPE html> <html lang= ...

  6. 元素显示模式:块元素 & 行内元素 & 行内块元素

    元素显示模式 前言 了解元素的显示模式可以更好的让我们布局页面.了解显示模式需要学习以下三个方面 什么是元素的显示模式 元素显示模式的分类 元素显示模式的转换 什么是元素显示模式 元素显示模式就是元素 ...

  7. HTML行内元素、块状元素和行内块状元素的区分

    HTML 5 的常用元素分类 HTML可以将元素分类方式分为行内元素.块状元素和行内块状元素三种,这三者是可以互相转换的,通过display属性可以实现互相转换 (1)display:inline;转 ...

  8. HTML的display属性将行内元素、块状元素、行内块状元素互相转换以及三者的区别

    1.行内元素 查看演示 (1)设置宽高无效 (2)对margin仅设置左右方向有效,上下无效:padding设置上下左右都有效,即会撑大空间 (3)不会自动进行换行 <html> < ...

  9. CSS.02 -- 样式表 及标签分类(块、行、行内块元素)、CSS三大特性、背景属性

    样式表书写位置  内嵌式写法 <head> <style type="text/css"> 样式表写法 </style> </head&g ...

随机推荐

  1. HelloWorld与java运行机制

    HelloWorld 新建文件夹存放代码 新建一个java文件 文件后缀为.java Hello.java 注意文件拓展名改为java文件 编写代码 public class Hello{ #类名 p ...

  2. arthas 简单使用

    简介 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 官网地址:https://arthas.aliyun.com/ 它可以做什么,以下功能都是直接操作线上跑着的jar包!!! ...

  3. DTOJ 1561: 草堆摆放

    题目描述 FJ买了一些干草堆,他想把这些干草堆分成N堆(1<=N<=100,000)摆成一圈,其中第i堆有B_i数量的干草.不幸的是,负责运货的司机由于没有听清FJ的要求,只记住分成N堆摆 ...

  4. Linux下脚本文件第一行的作用

    Linux下脚本文件第一行的作用 在Linux/Unix系统中,你可以在脚本hello.py顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行: #! /usr/bin/env py ...

  5. 巩固javaweb第十二天

    巩固内容: HTML 图像- 图像标签( <img>)和源属性(Src) 在 HTML 中,图像由<img> 标签定义. <img> 是空标签,意思是说,它只包含属 ...

  6. R语言学习记录(一)

    (R基础) 对象:什么是对象呢,其实就是一个名称而已,在R中存储的数据 就是一个R对象 a <- 1 ###其中'<-'表示的是一个赋值符号 这句话表示的是,将1赋值给a b <- ...

  7. Spark(十七)【SparkStreaming需求练习】

    目录 一.环境准备 1.pom文件 2.bean 3.工具类 JDBCUtils Properties工具类 3.创建BaseApp 需求一:动态添加黑名单 需求二:广告点击量实时统计 需求三:最近一 ...

  8. 二叉树——Java实现

    1 package struct; 2 3 interface Tree{ 4 //插入元素 5 void insert(int value); 6 //中序遍历 7 void inOrder(); ...

  9. [项目总结]论Android Adapter notifyDataSetChanged与notifyDataSetInvalidated无效原因

    最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因. 首先看一下notif ...

  10. lambda表达式快速创建

    Java 8十个lambda表达式案例 1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnable( ...