这个是在面试的时候,面试官问我的一个小问题 自己没有考虑过inline元素设置margin和padding的问题 学习的过程记录下来

1)inline元素的高度是由元素的内容决定的(字体的大小和行高) 比如你对一个a标签设置它的高度是没有效果的

2)HTML元素分为替换元素和非替换元素 替换元素指的是作为其他的元素占位符的一个元素 例如img   非替换元素指内容包含在文档中的元素  <p>hahaha</p>这个p就是一个非替换元素 区分替换与非替换的方法:替换元素浏览器会根据标签和属性去决定元素的显示 非替换元素是直接将内容显示

进入主题  margin和padding对inline元素的影响 这里我们就要考虑替换元素与非替换元素的区别了

1)margin对inline元素的影响

   <p>
        <img src="#" id="a" alt="我是一个替换元素" />
    </p>
    <p>
        <span>我是行内非替换元素</span>
    </p>

我们对上面的元素设置样式

     p {
            background: red;
            width:400px;
        }

        p img {
            width:100px;
            height:100px;
            background: blue;
        }

        p img#a {
            margin:20px;
        }

        p span {
            margin-top:20px;
            margin-left: 20px;
            margin-right: 20px;
        }

对上面的inline元素img设置了margin  发现四个方向的margin都有了效果

而inline元素span呢 发现只有水平方向的margin产生了效果 垂直方向的没有产生效果

原因在于对行内非替换元素设置margin不会影响行高   margin本身就是透明的 所以margin-top margin-bottom并没有视觉的效果

2)padding对inline元素的影响

同样是考虑对行高的影响  当对一个行内非替换设置padding的时候 padding-top padding-bottom 并不会影响行高所以没有视觉效果

当对行内替换元素设置padding的时候,会发现产生了效果

总结上面的 也就是当我们考虑margin padding对一个inline元素是否会产生视觉效果的时候,要区分对待(行高问题) 替换元素都会产生视觉效果 非替换元素垂直方向不会产生视觉效果 当然你为了让margin 和padding对inline元素产生效果 可以将他们设置成inline-block 这样就会有效果

margin和padding对行内元素的影响的更多相关文章

  1. CSS学习笔记——盒模型,块级元素和行内元素的区别和特性

    今天本来打算根据自己的计划进行前端自动化的学习的,无奈早上接到一个任务需求需要新增一个页面.自从因为工作需要转前端之后,自己的主要注意力几 乎都放在JavaScript上面了,对CSS和HTML这方面 ...

  2. HTML的行内元素与块级元素的区别?

    块级元素:独占一行,其宽度自动填满父元素的宽度,可以容纳行内元素和其他块级元素,可以设置margin和padding值. 行内元素:不会独占一行,与其他行内元素排成一行,直到其父元素拍不下,才会从新一 ...

  3. 块级元素和行内元素的区别 (block vs. inline)

    块级元素 (display: block) 独占一行,多个block元素会各自新起一行.默认情况下,block元素的宽度会填满父元素的宽度. 可以设置width, height属性.但是,即使设置了w ...

  4. 块元素&行内元素

    大多数HTML 元素被定义为块级元素或内联元素.块级元素在浏览器显示时,通常会以新行来开始(和结束) block元素特点 1 总是在新行上开始: 2 高度,行高以及外边距和内边距都可控制: 3 宽度缺 ...

  5. HTML块级元素与行内元素的区别

    块级元素:块级大多为结构性标记 <address>...</adderss> <center>...</center> 地址文字 <h1>. ...

  6. 关于行内元素的margin padding一些说明;background-color的范围

    ①当对行内元素使用padding时,只有左右方向(正常)有效:竖直方向上,内边距对于该行内元素有效果,但是对其他元素无任何影响. ②当对行内元素使用margin时,只有左右方向有效,竖直方向无任何效果 ...

  7. {03--CSS布局设置} 盒模型 二 padding bode margin 标准文档流 块级元素和行内元素 浮动 margin的用法 文本属性和字体属性 超链接导航栏 background 定位 z-index

    03--CSS布局设置 本节目录 一 盒模型 二 padding(内边距) 三 boder(边框) 四 简单认识一下margin(外边距) 五 标准文档流 六 块级元素和行内元素 七 浮动 八 mar ...

  8. padding(内边框), border(边框), margin, 标准文档流, 块级元素和行内元素, 浮动 ,margin的用法

    盒模型 在CSS中,"box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子.我们称为这种盒子叫盒模型. 盒模型有两种:标准模型和IE模型 ...

  9. css 行内元素 块元素 替换元素 非替换元素 以及这些元素的width height margin padding 特性

    一.各种元素的width height margin padding 特性(具体css元素的分来参看二) 1.块级元素 width. height. margin的四个方向. padding的四个方向 ...

随机推荐

  1. 国内的maven镜像

    阿里云 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>ht ...

  2. C# WinForm RDLC报表不预览直接连续打印

    用微软的RDLC报表直接打印不预览 直接上代码. //打印清单 System.Data.DataTable dt = print_QD(dr); ReportViewer rvDoc = new Re ...

  3. MFC下调用控制台和控制台下MFC库的支持

    1.MFC下调用控制台 在CWinApp的InitInstance中对话框的DoModal之前加入 AllocConsole(); // 开辟控制台 SetConsoleTitle(_T(" ...

  4. PS1--cannot be loaded because the execution of scripts is disabled on this system

    在nagiosXI上,通过nsclient++ 引用plugin “check_ms_win_disk_load”(https://outsideit.net/check-ms-win-disk-lo ...

  5. C++ Low level performance optimize 2

    C++ Low level performance optimize 2 上一篇 文章讨论了一些底层代码的优化技巧,本文继续讨论一些相关的内容. 首先,上一篇文章讨论cache missing的重要性 ...

  6. HDU 3487 Play with Chain(Splay)

    题目大意 给一个数列,初始时为 1, 2, 3, ..., n,现在有两种共 m 个操作 操作1. CUT a b c 表示把数列中第 a 个到第 b 个从原数列中删除得到一个新数列,并将它添加到新数 ...

  7. MyBatis知多少(6)表现层与业务逻辑层

    表现层 表现层负责向最终用户展示应用程序的控制方式以及数据.它还要负责所有信息的布局和格式.今天,商业应用程序最流行的表现方式应该算是Web前端了,它使用HTML和JavaScript并通 过Web浏 ...

  8. 2014 网选 5012 Dice(bfs模板)

    /* 题意:就是给定两个筛子,每个筛子上6个面,每个面的数字属于[1,6], 且互不相同! 问a筛子最少经过按照题目规定的要求转动,达到和b筛子上下左右前后的数字相同! 思路:很直白的bfs,将每一种 ...

  9. Socket.IO 1.0 正式发布,快速可靠的实时引擎

    Socket.IO 是目前 Web 领域最火的实时引擎,用于实现基于事件的双向实时的通信.它适用于任何平台,浏览器或设备,专注于可靠性和速度.您可以将数据推送到客户端,并获得实时的计数,日志或图表. ...

  10. Webstrom (或Phpstrom)使用git(oschina-码云)

      .登录"码云"(题外话,这名字起得真好),创建一个新项目   .自动进入了新项目主页,复制该git 仓库的https地址,第4步会用到   .打开Webstrom,选择chec ...