zoukankan      html  css  js  c++  java
  • 谈谈对盒模型的理解-笔记

    1、基本概念:标准模型 和IE模型

    盒模型由里向外依次是concentpaddingbordermargin

    盒模型是有两种标准的,一个是标准模型,一个是IE模型。

    标准盒模型的宽高是concent的宽高,而IE盒模型的宽高是concent+padding+border

    2CSS如何设置这两种模型 

    使用CSS3 的属性 box-sizing属性来区分:concent-box(标准)border-box(IE)

    3JS如何设置获取盒模型对应的宽和高

    dom.style.width/height 

     这种方式只能取到dom元素内联样式所设置的宽高,也就是说如果该节点的样式是在style标签中或外联的CSS文件中设置的话,通过这种方法是获取不到dom的宽高的。

    dom.currentStyle.width/height   

     这种方式获取的是在页面渲染完成后的结果,就是说不管是哪种方式设置的样式,都能获取到,但是这种方式仅IE浏览器支持。

    window.getComputedStyle(dom).width/height

     这种方式的原理和2是一样的,这个可以兼容更多的浏览器,通用性好一些。 

    dom.getBoundingClientRect().width/height

     这种方式是根据元素在视窗中的绝对位置来获取宽高的

    dom.offsetWidth/offsetHeight 
    

     最常用的,也是兼容最好的。

    4BFC

    块级格式化上下文Block Formatting Context ):是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。

    BFC布局规则:

    1. 内部的box会在垂直方向一个接一个的放置。(不是BFC也同样的)   
    2. 垂直方向上的距离由margin决定。(解决边距重叠问题)
    3. bfc的区域不会与float区域重叠。 (解决文本包裹浮动元素的问题) 
    4. bfc就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。(解决边距重叠问题)  
    5. 计算bfc的高度时,浮动元素也参与计算。(清除浮动)

    哪些元素会生成BFC

    1. 根元素。 
    2. float属性不为none。  
    3. positionabsolutefixed。  
    4. Display:inline-block或者table-cell或者table-caption或者flex或者inline-flex
    5. overflow不为visible

    案例请移步大佬链接:https://www.cnblogs.com/chen-cong/p/7862832.html

    例如:设置某元素为overflow属性为hidden,即生成了一个BFC。当然,这个元素必须符合《哪些元素会生成BFC》这个规则。

     

     

    参考链接:https://www.cnblogs.com/chengzp/p/cssbox.html

    参考链接:https://www.cnblogs.com/chen-cong/p/7862832.html

    参考链接:https://www.cnblogs.com/pianruijie/p/7929454.html

  • 相关阅读:
    求文件的hash值(基于SHA3的Hash)
    Discrete Log Algorithms :Baby-step giant-step 【二】
    非专业填坑
    xml转换csv
    使用PowerShell批量注册DLL到GAC
    ui-grid 中cellTemplate中click事件
    ui-grid样式,表格高度自适应行高,没有滚动条,去掉表头
    ui-grid使用详解
    数组过滤重复元素
    正则表达式验证邮箱
  • 原文地址:https://www.cnblogs.com/pengxiangchong/p/12736328.html
Copyright © 2011-2022 走看看