首页 > 技术文章 > 行内元素的padding和margin是否无效

liutianzeng 2019-02-27 19:23 原文

html中元素分为三种:块级元素、行内元素(也叫内联元素),内联块级元素。

常用块级元素:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

块级元素特点:

1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(霸道,一个块级元素独占一行)

2、元素的高度、宽度、行高以及顶和底边距都可设置。

3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致)

常用内联元素:<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>

内联元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度及顶部和底部边距不可设置;

3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

常用内联块元素:<img>、<input>

内联块级元素特点:(同时具备内联元素、块级元素的特点)

1、和其他元素都在一行上;

2、元素的高度、宽度、行高以及顶和底边距都可设置!

首先行内元素是否具有盒子模型?
答:行内元素同样具有盒子模型。

行内元素的padding、margin是否无效?
答:

  • 行内元素的padding-top、padding-bottom、margin-top、margin-bottom属性设置是无效的
  • 行内元素的padding-left、padding-right、margin-left、margin-right属性设置是有效的
  • 行内元素的padding-top、padding-bottom从显示的效果上是增加的,但其实设置的是无效的。并不会对他周围的元素产生任何影响。



<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        span{
            padding: 10px;
            margin: 20px;
            background-color: red;
        }
        div{
            background-color: yellow;
        }
    </style>
</head>
<body>
<div>nihzidao</div>
<span>nishi</span>>
<div>wozhidao</div>

 

从上图可以看出,sapn标签的padding-top和padding-bottom在显示效果上是增加的,但是和上下两个div标签并没有间距,说明padding-top、padding-bottom设置是无效的,margin-top和margin-bottom也是无效的,

padding-left、padding-right、margin-left、margin-right都是有效的。

总结:行内标签(也叫内联标签)的padding和margin左右设置有效,而padding上下有显示效果,但是设置无效,margin上下也是设置无效,显示也无效。

推荐阅读