当前位置: 首页 > news >正文

CSS盒模型的介绍

CSS盒模型的概念与分类

     CSS盒模型就是一个盒子,封装周围的HTML元素,它包括内容content、边框border、内边距padding、外边距margin。

      CSS盒模型分为标准模型和IE模型;

 

标准模型和IE模型的区别

      标准模型:width = 内容content 的宽度;(默认)                                                   

      设置方式: box-sizing:content-box;

       IE模型:width  = 内容content + 边框border + 内边距paddig 的宽度;                  

      设置方式: box-sizing:border-box;

 

通过js如何获取盒模型的宽高

     1.dom.style.width/height                  

    只能获取到dom的内联样式

     2.dom.currentStyle.width/height        

     获取到的是dom的实际宽高,但这种方式只在IE中可以使用

     3.window.getComputedStyle(dom,null).width/height                  

     获取到的是dom的实际宽高,但是不支持IE

     4.dom.offsetWidth/offerHeight                      

    最常用的,兼容性最好的

     第2,3个组合下就可以兼容ie与其他浏览器了 

window.getComputedStyle ? window.getComputedStyle(obj,null).width : obj.currentStyle.width; 

 

边距重叠

     边距重叠是指两个或多个盒子相邻边界重合在一起形成一个边界。水平方向边界不会重叠,垂直方向会重叠,垂直方向的实际边界是边界中的最大值。

      比如子元素设置了margin-top,父元素没有设置,但是父元素也有了上边距。

<!DOCTYPE html>
<html>
<head>
    <title>边距重叠</title>
    <meta charset="utf-8">
    <style type="text/css">
        html *{
            margin: 0;
            padding: 0;
        }

        .content{
            width: 500px;
            height:100px;
            background: green;
        }
        .parent{
            width: 300px;
            height: 300px;
            background: pink;
        }
        .child{
            width: 150px;
            height: 150px;
            background: yellow;
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div class="content">
        占位内容区域
    </div>
    <div class="parent">
        <div class="child">
            
        </div>
    </div>
</body>
</html>

 

下图就是代码运行结果:

解决边距重叠-BFC

      1、BFC概念:块级格式化上下文

      2、BFC的原理:

           BFC的区域不会与浮动区域重叠

           计算BFC区域高度时,浮动区域也参与计算

           BFC区域是独立的一个区域,不与其他区域相互影响

      3、如何创建BFC

            脱离文档流:float不为none;position为absolutely或fixed

            overflow不为visible(如overflow:hidden)

            display为“table-cell”, “table-caption”,  “inline-block”中的任何一个

      4、BFC应用场景

            自适应两栏布局

            清除浮动

            防止垂直margin重叠

 

-THE END-

转载于:https://www.cnblogs.com/menggirl23/p/10068259.html

相关文章:

  • Docker 入门
  • 安装Kubernetes的坑 ---- Flanneld
  • 简单类型和对象的区别
  • Java基础之关键字
  • 作用域和名称空间
  • 云主机文件系统readonly处理案例
  • STM8S003F3通过PWM波实现三基色呼吸灯(转)
  • 前端技术周刊 2018-12-10:前端自动化测试
  • puppet连载22:define用法
  • Django2.0——请求与响应(下)
  • 华为敏捷DevOps实践:如何从Excel管理软件的方式中走出来
  • CentOS7配置Kubernetes(K8S)集群
  • Docker在Linux/Windows上运行NetCore文章系列
  • 使用Python将MongoDB数据导到MySQL
  • Rem之自适应js
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • Cumulo 的 ClojureScript 模块已经成型
  • EOS是什么
  • JavaScript对象详解
  • Java小白进阶笔记(3)-初级面向对象
  • laravel with 查询列表限制条数
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Redis 中的布隆过滤器
  • Ruby 2.x 源代码分析:扩展 概述
  • session共享问题解决方案
  • vue-router的history模式发布配置
  • 百度地图API标注+时间轴组件
  • 从0到1:PostCSS 插件开发最佳实践
  • 前端学习笔记之观察者模式
  • 如何胜任知名企业的商业数据分析师?
  • 移动端唤起键盘时取消position:fixed定位
  • 组复制官方翻译九、Group Replication Technical Details
  • ​MySQL主从复制一致性检测
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (排序详解之 堆排序)
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .cfg\.dat\.mak(持续补充)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 5种线程安全集合
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net6 webapi log4net完整配置使用流程
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [20150904]exp slow.txt
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AR Foundation] 人脸检测的流程
  • [AR]Vumark(下一代条形码)
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C++核心编程](四):类和对象——封装