去除行内(inline/inline-block)元素之间的间距

先展示一下,行内元素之间存在间距,实例代码如下:

<style>
    div {
        color: #fff;
        padding: 25px 50px;
    }

    .inline-f00 {
        display: inline;
        background: #f00;
    }

    .inline-0f0 {
         display: inline;
         background: #0f0;
    }

    .inline-block-00f {
        display: inline-block;
        background: #00f;
    }

    .inline-block-000 {
         display: inline-block;
         background: #000;
    }
</style>

<div class="inline-f00">inline</div>
<div class="inline-0f0">inline</div>

<div class="inline-block-00f">inline-block</div>
<div class="inline-block-000">inline-block</div>

运行代码的效果:

为什么会出现间距呢??真正意义上的水平呈现的行内元素间,换行显示或空格分隔的情况下会有间距。

既然知道了出现间距的原因,接下来讨论去除行内元素之间的间距,推荐几种通用的方法。

去除空格或者换行

去除行内元素之间的空格和换行,可以把代码写成这个样子,虽然丑了点,但是得到了想要的效果,

<style>
    div {
        color: #fff;
        padding: 25px 50px;
    }

    .inline-f00 {
        display: inline;
        background: #f00;
    }

    .inline-0f0 {
         display: inline;
         background: #0f0;
    }

    .inline-block-00f {
        display: inline-block;
        background: #00f;
    }

    .inline-block-000 {
         display: inline-block;
         background: #000;
    }
</style>

<div class="inline-f00">inline</div><div class="inline-0f0">inline</div><div class="inline-block-00f">inline-block</div><div class="inline-block-000">inline-block</div>

也可以使用注释去掉空格和换行:

<!-- 下面的注释是重点 -->
    <div class="inline-f00">inline</div><!--
 --><div class="inline-0f0">inline</div><!--
 --><div class="inline-block-00f">inline-block</div><!--
 --><div class="inline-block-000">inline-block</div>

还可以:

<div class="inline-f00">inline</div
><div class="inline-0f0">inline</div
><div class="inline-block-00f">inline-block</div
><div class="inline-block-000">inline-block</div>

font-size: 0

设置父元素的font-size:0,子元素设置字体大小为正常字体大小。

<style>
    div {
        color: #fff;
        padding: 25px 50px;
    }

    .inline-f00 {
        display: inline;
        background: #f00;
    }

    .inline-0f0 {
         display: inline;
         background: #0f0;
    }

    .inline-block-00f {
        display: inline-block;
        background: #00f;
    }

    .inline-block-000 {
         display: inline-block;
         background: #000;
    }

    .font-size-0 {
        font-size: 0;
    }

    .font-size-0 div {
        font-size: 16px;
    }
</style>

<div class="font-size-0">
    <div class="inline-f00">inline</div>
    <div class="inline-0f0">inline</div>

    <div class="inline-block-00f">inline-block</div>
    <div class="inline-block-000">inline-block</div>
</div>

float:left/right

行内元素设置为浮动元素,行内元素之间的间距会消失。

<style>
    div {
        color: #fff;
        float: left;
        padding: 25px 50px;
    }

    .inline-f00 {
        display: inline;
        background: #f00;
    }

    .inline-0f0 {
         display: inline;
         background: #0f0;
    }

    .inline-block-00f {
        display: inline-block;
        background: #00f;
    }

    .inline-block-000 {
         display: inline-block;
         background: #000;
    }
</style>

<div class="inline-f00">inline</div>
<div class="inline-0f0">inline</div>

<div class="inline-block-00f">inline-block</div>
<div class="inline-block-000">inline-block</div>

上面三种去除间距方法的效果:

特殊情况

一种特别的情况,相邻inline元素至少一个不包含内容的时候,不存在间距

<div style="display: inline; background: #f00; padding: 25px 50px;"></div>
<div style="display: inline; background: #000; padding: 25px 50px;"></div>

效果:

时间: 2024-10-20 20:38:26

去除行内(inline/inline-block)元素之间的间距的相关文章

关于 inline block 元素之间的空格

本篇文章由:http://xinpure.com/about-the-inline-block-element-between-spaces/ 说点什么 display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格.然而,我们写代码时,都是用回车来格式化的... 最简单的方法就是把 inline-block 元素之间的回车删除,就是代码显示有点不美观,影响阅读. 方法总结 以下方法不保证浏览器兼容性问

img、input到底是行内还是块级元素?

一.img.input属于行内替换元素.height/width/padding/margin均可用.效果等于块元素.      行内非替换元素,例如, height/width/padding top.bottom/margin top.bottom均无效果.只能用padding left.right和margin left.right改变宽度. 二.在文档类型定义(DTD)中对不同的元素规定了不同的类型,这也是DTD对文档之所以重要的原因之一. 从元素本身的特点来讲,可以分为不可替换元素和替

CSS 可视化设计模型(1)块框(Block boxex)和 行内框(Inline boxes)

包含块(Cotaining Blocks) 在CSS2.1中,很多 box 的定位和大小都根据一个名为包含块 Containing Block 的矩形盒的边缘来计算.一般地,生成的 box 会充当其后代 box 的包含块:我们称盒为其后代"创建"了包含块.说"box的包含块"即是说"box所处的包含块",而不是box所产生的包含块. 每个box会被赋予一个相对于其包含块的位置,但它不会被局限在其包含块内:它有可能溢出. <div> &

Web前端技术:CSS部分深入---盒子模式,overflow属性,border属性,内外边距,水平居中问题,块\行内元素,浮动,层定位

1.盒子模式:页面中的所有元素都可以看成一个盒子,占据着一定的页面空间 2.overflow属性 hidden:超出部分不可见,默认值 scroll:显示滚动条 auto:如果有超出部分,显示滚动条 3.border属性 border-width:px \ thin \ medium \ thick border-style:dashed \ dotted \ solid \ double border-color:颜色 border:width  style color 案例 水平分割线: .

深入理解行内元素的布局

前言 总括: 本文通过实例讲解CSS中最大的难点之一,行内元素的布局,主要是挖掘line-height和vertical-align两个属性在布局方面的使用. 原文博客地址:深入理解行内元素的布局 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书) 博主博客地址:Damonare的个人博客 白茶清欢无别事,我在等风,也在等你.? 正文 讲道理line-height和vertical-align 这对基是十分低调的,日常开发中碰到的很多莫名其妙的bug很大一部分都

行内元素有哪些?块级元素有哪些?CSS的盒模型?转载

块级元素:div p h1 h2 h3 h4 form ul行内元素: a b br i span input selectCss盒模型:内容,border ,margin,padding css中的display属性(行内元素和块级元素) 我们常用的display属性值有: inline block inline-block none 把 display 设置成 none 不会保留元素本该显示的空间,但是 visibility: hidden 还会保留. 我们最关心的还是display:inl

探讨行内元素转换为块级元素

行内元素和块级元素对于前端来说是一个很重要的概念.在CSS中,只有块级元素有物理属性,而元素则有三种形态: 1. 块级元素:有物理属性,width,height写值起作用,而且要占据一行.2. 行内元素:没有物理属性.但是margin,padding值有用.不占据一行,后边可以有兄弟元素.3. 即是块又是行内,根据兄弟元素决定. 一般来说,将行内元素和块级元素进行转换的话是给其加上display这个属性.行内→块级,display:block;块级→行内,display:inline; 这也是大

详解css中的display属性(行内元素和块级元素)

display属性 首先,所有主流浏览器都支持 display 属性.其次,我们都知道display 属性规定元素应该生成的框的类型.默认值:inline 我们常用的display属性值有: inline block inline-block none 把 display 设置成 none 不会保留元素本该显示的空间,但是 visibility: hidden 还会保留. 那么,display:inline.display:block和display:inline-block有什么区别呢? <s

【转】行内元素和inline-block产生的水平空隙bug

重构工程师们在设计代码时,有喜欢手动删除行内元素之间产生的额外空隙,并通过设置margin或padding来获取想要间距吗?如代码: <div class=“”><span class=“bgr”>去掉了间距</span><span class="bgr">去掉了间距</span><span class="bgr">去掉了间距</span><span class="b