Rumah  >  Artikel  >  hujung hadapan web  >  后端程序员前端之路05盒子模型详解_html/css_WEB-ITnose

后端程序员前端之路05盒子模型详解_html/css_WEB-ITnose

WBOY
WBOYasal
2016-06-24 11:23:031210semak imbas

目录

  • 图解
  • 盒模型尺寸基准
  • 使用浏览器的开发者工具,查看元素高(宽)度时,遇到的问题
  • 一、图解

          说明:由内而外依次是content、padding(内边距)、border(边框)、margin(外边距)。

          举个例子:一个快递车里放了许多快递包裹(盒子包装的),每个包裹里面又放了不同的东西。

          content:真正容纳其他东西的区域。比如快递车的content,就是那些包裹所处的那个空间;

                       而每个包裹的content,就是那些东西所处的空间。 

                        content里面可以放置 其他元素、文本、图片等

          border: 盒子的边框。比如快递车的那个铁皮,包裹外层的那个盒子。  

                        可以指定边框的颜色、粗细(width)、样式等。

          padding:content到border之间的距离。

          margin: 包裹和包裹之间的距离。这个距离可以是负的,因为可以相互叠加。

          注意事项:由于各个浏览器会对元素的margin、padding值进行不同值的初始化。

                        所以每次写样式时,需要对页面内涉及到的元素进行初始化。      

    /* 将当前页面内涉及的元素表签列出来 */body,div,span{ margin:0px; padding:0px;}

     

    二、盒模型尺寸基准

         默认情况下,设置一个元素的width、height,其实设置的就是content的宽度和高度。

         Q:那这个元素的实际宽度、实际高度是多少呢?

         A:实际宽度=左margin + 左border + 左padding + content + 右padding + 右border + 友margin ;实际高度同理。

     

         Q:那么问题来了,我如果想直接设置某个元素的实际高度怎么办呢?

         A:CSS3新增加了一个属性box-sizing就是用来解决这个问题。它有三个值:content-box、border-box、inherit。

              content-box:就是通常的默认情况,指的是content的高度、宽度。

              border-box :字面意思不难看出,指的就是border以内(包含border)的高度、宽度。

                     inherit:从父级元素继承box-sizing属性的值。

     

    三、使用浏览器的开发者工具,查看元素高(宽)度时,遇到的问题

          使用谷歌浏览器审查元素功能时,它会职能的提示出当前元素的高度、宽度。但经过计算元素的实际高度、宽度,发现与提示的信息不一致。      

    <style> div { width: 200px; padding: 20px; border: 1px solid red; margin: 10px;                   }</style><div>文本内容</div>

          通过计算得出,div的实际宽度= 10 + 1 + 20 + 200 + 20 + 1 + 10 = 262px;  

          而开发者工具展示出来的结果为242px,差了20px;

          

          通过调整不同参数,最后得出结论为: 审查元素计算出来的结果是不包括 margin值的。

             

     

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn