zoukankan      html  css  js  c++  java
  • 块级元素、内联元素、内联块元素的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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    NPM
    Angular2.0快速开始
    AngularJS常用插件与指令收集
    Linq 操作基础
    SQL Server2008 with(lock)用法
    SQL Server2008 MERGE指令用法
    SQL Server2008 表旋转(pivot)技术
    ef to sqlite 实际开发问题终极解决方法
    windows控件常用缩写
    SQL 查询总结
  • 原文地址:https://www.cnblogs.com/david-lcw/p/10539604.html
Copyright © 2011-2022 走看看