解决行内元素、行内块元素产生水平空隙

问题

行内元素和行内块元素之间换行的话,即使除去内外边距,他们之间还是会有距离,这是因为我们为了代码格式加入的换行和空格被 HTML 当作空格文本,跟 inline 盒混排了的缘故。如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .span-wrap span,.span-wrap input{
            padding: 0;
            margin: 0;
        }
    </style>
<body>
<div class="span-wrap">
    <span>行内元素</span>
    <span>行内元素</span>
    <input type="text" value="行内块元素">
</body>
</html>

在这里插入图片描述

解决方法

1. 代码内删除行内元素、行内块元素之间的换行符、tab(制表符)、空格等字符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .span-wrap span,.span-wrap input{
            padding: 0;
            margin: 0;
        }
    </style>
<body>
<div class="span-wrap">
    <span>行内元素</span><span>行内元素</span><input type="text" value="行内块元素">
</body>
</html>

不推荐,影响阅读

2. 利用HTML注释

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .span-wrap span,.span-wrap input{
            padding: 0;
            margin: 0;
        }
    </style>
<body>
<div class="span-wrap">
    <span>行内元素</span><!--
    --><span>行内元素</span><!--
    --><input type="text" value="行内块元素">
</body>
</html>

不推荐,写起来费时,影响结构

3. 为父元素设置设置font-size:0

注意子元素要重新设置font-size

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .span-wrap{
            font-size: 0;
        }
        span,input{
            padding: 0;
            margin: 0;
            font-size: 12px;
        }
    </style>
<body>
<div class="span-wrap">
    <span>行内元素</span>
    <span>行内元素</span>
   <input type="text" value="行内块元素">
</body>
</html>

4. 利用浮动

利用浮动的元素是紧挨的这一特性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        span,input{
            padding: 0;
            margin: 0;
            float: left;
        }
    </style>
<body>
<div class="span-wrap">
    <span>行内元素</span>
    <span>行内元素</span>
   <input type="text" value="行内块元素">
</body>
</html>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值