块级元素、内联元素、内联块元素的width和height的设置问题

块级元素、内联元素、内联块元素的width和height的设置问题

基础知识点:

  1. css文档流概念:对于块级元素,它独占一行(读张鑫旭的css世界,知道是“外在盒子”的缘故),自上而下的排列;对于内联元素,它是自左向右排序,宽度不够的时候换行。

  2. 元素的外在盒子:个人理解,它决定元素在文档中的位置,相当于一个人的体型,有的人是胖子,有的人是瘦子,胖子占的空间大,瘦子占的空间小;所以块级元素就是超级大胖子,它要占一行,内联元素就是瘦子,它可以几个放在一行。

  3. 元素的内在盒子:个人理解,它用来展现元素的内容,相当于一个人的内心世界,有的人内心世界很宽广,有的人内心世界很狭小;对于元素来讲,它的内在盒子包括哪些呢?其实很简单,给元素添加 background-color 属性就一目了然了(在CSS中,background-color起作用的部分:content,padding,border;有人会有疑问了,border怎么会包含其中?当你给border设置transparent之后你就知道了)。

  4. 元素的width和height:这两个属性是元素的content的宽和高。

知道了上面几点之后,下面就来讨论3种类型元素的width和height的设置问题 

一:块级元素(内心世界 和 体型匹配,但是体型 却尽可能地大的人)

  width:

    1. 可以自己设定具体的数值,但是要注意:设定了具体的height之后使用 line-height 不能撑开盒子,可以改变文字的位置。  

    2. 不设置时,默认是auto,等于父级元素的宽度(就是自身的margin,border,padding,content都加起来之后等于父级元素的宽度)

    3. 设定 width:100% ,此时是盒子content的宽度等于父级元素的宽度,所以如果设置了margin,border,padding的值的时候,盒子会凸出来的如下图:

      

  height:

    1. 可以自己设定具体的数值

    2. 不设置具体值的时候,默认值是0,靠内容撑开 (例如:设定line-height: 50px 来撑开盒子的 height )

    3. 由元素内部的文档流的高度之和决定

二:内联元素(体型 包不住 内心世界的人)

  width:

    1. 设定具体的数值是 不起作用的,由文字内容决定;

    2. padding-left 和 padding-right 设定值,可以改变width大小;

    3. margin-left 和 margin-right 设定值,改变不了width大小,但是可以改变元素的位置;

  height:

    1. padding-top和padding-bottom可以设定具体的值,但是已经超出了外在盒子,虽然可以通过background-color观察到,但是却无法撑开元素的位置;margin-top和margin-bottom直接没有效果,所以不要使用

    2. 可以通过font-size来改变其大小其高度的大小,这时就体现出来inline元素是靠内容撑开的特点了

    3. 不能通过设置 line-height 的值来改变height的大小,一定要切记;虽然文字的位置可能改变了,也将父元素的边框撑开了,但是通过background-color可以观察出,其实元素的height没有发生改变,如下图所示,可以清楚的看到前后行高不同,但是height的值并没有改变。

      

三:内联块元素(内心世界 和 体型匹配的人)

  width:

    1. 可以自己设定具体的数值

    2. 不设置具体的数值的时候,靠内容撑开

  height:

    1. 可以自己设定具体的数值,但是要注意:设定了具体的height之后使用 line-height 不能撑开盒子,可以改变文字的位置。

    2. 不设置具体的数值的时候,靠内容撑开 (例如:设定line-height: 50px 来撑开盒子的 height )

  

    

作者:David-lcw
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/david-lcw/p/10539604.html