盒模型以及清除浮动 041

本文深入解析盒模型的属性及计算方式,展示如何利用CSS属性绘制圆形和三角形。同时,探讨了margin和padding的区别,margin塌陷问题及解决方案,以及浮动的四大特性与清除浮动的方法。

盒模型以及清除浮动 041

盒模型 : box model  网页中都会显示一些方方正正的盒子 称这种盒子叫盒模型

  盒模型属性:

    width : 内容的宽度

    height: 内容的高度

    border 边框

    盒模型的计算 : 先不管margin

      盒子的真实宽度 = width + 2*padding + 2*border

      盒子的真实高度 = height + 2*padding + 2*border

  如果要保证盒子的原来尺寸 加padding就要减去width 减padding就要加width border也一样.

  利用border属性画一个圆

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            width: 300px;
            height: 300px;
            background-color: darkgoldenrod;
            /*border: 1px solid darkred;*/

            /*根据方向来设置属性*/
            /*border-left: 1px solid darkred;*/
            /*border-right: 5px dotted darkgoldenrod;*/
            /*border-top: 10px double darkblue;*/
            /*border-bottom: 1px solid greenyellow;*/
            /*根据三要素*/
            /*border-width: 5px 10px 1px;*/
            /*border-style: solid double dashed;*/
            /*border-color: red yellow darkcyan darkgray;*/
            /*border: 0;*/
            border-radius: 50%; //边框的弧度 成圆的关键
        }
    </style>
</head>
<body>
<!--三要素  粗细  线性样式 颜色-->
    <div class="box"></div>
</body>
</html>

造一个三角形

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
<!--利用边框的宽度挤压出来三角形-->
        .sanjiao{
            width: 0px;
            height: 0px;
            border-left: 50px solid transparent;
            border-bottom: 50px solid green;
            border-right: 50px solid transparent;
        }
    </style>
</head>
<body>
    <div class="sanjiao"></div>
</body>
</html>

padding 和margin的使用 padding 没有问题  可以正常使用 但是margin在垂直方向上就会出现塌陷问题 即给两个标准流下的盒子设置垂直方向上的margin时, 比如上边的盒子设置margin-bottom : 20px; 下边的盒子设置 margin-top : 50px; 结果两个盒子之间的距离仅为50px 不是70px 称这种现象叫做塌陷 没法解决 称这种技巧为'奇技淫巧'  解决方案 设置浮动

  margin : 0 auto;  使盒子居中

div{
            width: 780px;
            height: 50px;
            background-color: red;
            /*水平居中盒子*/
            margin: 0px auto;
                        /*水平居中文字*/
            text-align: center;
        }

  使用margin: 0 auto 注意事项

    1 . 水平居中盒子必须有width 要有明确的width 即不是100% 有具体数量

    2 .只有标准流下的盒子才能使用

    3 .是居中盒子 不是居中文本 文本居中使用的是text-align:center;

  margin 描述的是兄弟盒子之间的关系 而padding 描述的是父子盒子之间的关系

  要善于使用父亲的padding 而不是margin

版心设置 : 即让文本在盒子的中心

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        body {
            font-size: 14px;
            color: #fff;
        }
        a{
            text-decoration: none;
        }

        #top {
            width: 100%;
            background-color: #000;
            height: 40px;
            line-height: 40px;
        }
        .container{
            width: 1226px;
            /*background-color: red;*/
            /*让盒子居中*/
            /*margin-right: auto;*/
            /*margin-left: auto;*/
            margin: 0 auto;
        }
        #top  a{
            font-size: 12px;
            color: #b0b0b0;
        }
        #top  a:hover{
            color: #fff;
        }

    </style>
</head>
<body>
<div id="top">
    <div class="container">
        <div class="top-l">
            <!--div标签是块级标签 独占一行,span是行内标签 一行内显示-->
            <a href="#">小米商城</a>
            <span class="sep">|</span>
            <a href="#">MIUI</a>
            <span class="sep">|</span>
            <a href="https://iot.mi.com/index.html" target="_self">loT</a>
            <span class="sep">|</span>
        </div>
    </div>
</div>

<div>
    <div class="container"></div>
</div>
</body>
</html>

 标准文档流 :  即从上而下 从左到右 进行排布

  微观现象有 : 空白折叠现象 :多个空格会被合并成一个空格现在世道浏览器页面中 即空白折叠现象

        高矮不齐 底边对齐:即文字和图片并排 高度不一样 但是底边对齐

        自动换行 : 一行盛不下换行写

浮动 : 是css里面布局最多的一个属性 也是很重要的一个属性 

  四大特征 :

    浮动的元素脱标

    浮动的元素互相贴靠

    浮动的元素有字围的效果

    收缩的效果

  脱标 即脱标准离文档流. 其不在页面中占位置 相当于'飘起来了'   所有标签一旦设置浮动 就能并排 且都不区分行内 块状元素 都能设置宽高

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            background-color: red;
            float: left;
            width: 400px;
            height: 50px;
            padding-top: 50px;

        }
        span{
            float: left;
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="box">alex</div>
    <span>alex</span>
    <!--<div>此时这个span能够设置宽度、高度</div>-->

</body>
</html>
View Code

  互相贴靠 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .father{
            /*width: 500px;*/
            /*height: 500px;*/
            /*border: 1px solid darkred;*/
        }
        .box{
            width: 200px;
            height: 600px;
            background-color: red;
            float: left;
        }
        .wrap{
            width: 300px;
            height: 300px;
            background-color: green;
            float: left;
        }
        .box2{
            width: 200px;
            height: 500px;
            background-color: yellow;
            float: left;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="box"></div>
        <div class="box2"></div>
         <div class="wrap"></div>
    </div>
</body>
</html>
View Code

    效果发现:

      如果父元素有足够的空间,那么3哥紧靠着2哥,2哥紧靠着1哥,1哥靠着边。
      如果没有足够的空间,那么就会靠着1哥,如果再没有足够的空间靠着1哥,自己往边靠

  字围效果:

    

.box1{
            width: 100px;
            height: 400px;
            float: left;
            background-color: red;
        }
        .box2{
            width: 150px;       
            height: 450px;
            float: left;
            background-color: yellow;
        }
        .box3{
            width: 300px;
            height: 300px;
            float: left;
            background-color: green;
        }


<div>
        <img src="./images/企业1.png" alt="">    
    </div>
    <p>
        123路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞
    </p>

    效果发现:所谓字围效果,当div浮动,p不浮动,div遮盖住了p,div的层级提高,但是p中的文字不会被遮盖,此时就形成了字围效果。

  紧凑效果: 一个浮动元素 如果没有设置width 则自动收缩为文字的宽度.

  谨记:关于浮动,我们一定要遵循一个原则,永远不是一个盒子单独浮动,要浮动就要一起浮动。另外,有浮动,一定要清除浮动,

清除浮动 

  如果不给父盒子设置一个高度 那么浮动的子元素不会填充父盒子的高度 因为其脱离了标准文档流  虽然可以实现元素并排的效果  但是还带来了页面布局的极大错乱 所以要清除浮动

  方法 : 1 给父盒子设置高度 2 .clear :both   3 伪元素清除法  4 overflow : hidden

  第一种  不灵活 使用场景 导航栏

  第二种     给浮动元素最后面加一个空的div 并且该元素不浮动 ,然后设置clear:both 清除别人对我的浮动影响   内墙法  但是其 无缘无故加了div元素 结构冗余 用的也少

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .top{
            width: 100%;
            background-color: darkorange;
            /*1.给父盒子设置高度*/
            /*height: 40px;*/


        }
        .top .left{
            width: 500px;
            height: 40px;
            float: left;
            background-color: darkgreen;
        }
        .top .right{
            width: 100px;
            height: 40px;
            float: right;
            background-color: darkmagenta;
        }
        .header{
            width: 500px;
            height: 100px;
            background-color: red;
        }
        .clearfix{
            clear: both;
        }
    </style>
</head>
<body>
<div class="top">
    <!--<span>alex</span>-->
    <div class="left"></div>
    <div class="right"></div>
    <div class="clearfix"></div>
</div>
<div class="header">
    <span>alex</span>
</div>
</body>
</html>

伪元素选择器:

/*设置第一个首字母的样式*/
        p:first-letter{
            color: red;
            font-size: 30px;

        }
        
/* 在....之前 添加内容   这个属性使用不是很频繁 了解  使用此伪元素选择器一定要结合content属性*/
        p:before{
            content:'alex';
        }
        
        
/*在....之后 添加内容,使用非常频繁 通常与布局有很大的关联(清除浮动)*/
        p:after{
            content:'&';
            color: red;
            font-size: 40px;
        }

  第三种  用得比较多  给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .top{
            width: 100%;
            background-color: darkorange;



        }
        .top .left{
            width: 500px;
            height: 40px;
            float: left;
            background-color: darkgreen;
        }
        .top .right{
            width: 100px;
            height: 40px;
            float: right;
            background-color: darkmagenta;
        }
        .header{
            width: 500px;
            height: 100px;
            background-color: red;
        }
        .clearfix:after{
            content: '.';
            display: block;
            /*隐藏  元素不占位置*/
            /*display: none;*/
            /*隐藏 占位置*/
            visibility: hidden;
            height: 0;
            clear: both;
        }
    </style>
</head>
<body>
<div class="top clearfix">
    <div class="left"></div>
    <div class="right"></div>

</div>
<div class="header"></div>

</body>
</html>

  overflow : hidden:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .top{
            width: 100%;
            background-color: darkorange;
            /*BFC*/
            /*但是不要忘了它本来的一层的意思*/
            overflow: hidden;



        }
        .top .left{
            width: 500px;
            height: 40px;
            float: left;
            background-color: darkgreen;
        }
        .top .right{
            width: 100px;
            height: 40px;
            float: right;
            background-color: darkmagenta;
        }
        .header{
            width: 500px;
            height: 100px;
            background-color: red;
        }

    </style>
</head>
<body>
<div class="top">
    <div class="left"></div>
    <div class="right"></div>

</div>
<div class="header"></div>

</body>
</html>

overflow : 这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。

  

有五个值:

描述
visible默认值。内容不会被修剪,会呈现在元素框之外。
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit规定应该从父元素继承 overflow 属性的值。

逐渐演变成overflow:hidden清除法。

其实它是一个BFC区域: https://blog.youkuaiyun.com/riddle1981/article/details/52126522

posted @ 2018-11-17 21:36 你没有想象的那么重要 阅读( ...) 评论( ...) 编辑 收藏
内容概要:本文是一篇关于使用RandLANet模型对SensatUrban数据集进行点云语义分割的实战教程,系统介绍了从环境搭建、数据准备、模型训练与测试到精度评估的完整流程。文章详细明了在Ubuntu系统下配置TensorFlow 2.2、CUDA及cuDNN等深度学习环境的方法,并指导用户下载和预处理SensatUrban数据集。随后,逐步讲解RandLANet代码的获取与运行方式,包括训练、测试命令的执行与参数含义,以及如何监控训练过程中的关键指标。最后,教程涵盖测试结果分析、向官方平台提交结果、解读评估报告及可视化效果等内容,并针对常见问题提供解决方案。; 适合人群:具备一定深度学习基础,熟悉Python编程和深度学习框架,从事计算机视觉或三维点云相关研究的学生、研究人员及工程师;适合希望动手实践点云语义分割项目的初学者与进阶者。; 使用场景及目标:①掌握RandLANet网络结构及其在点云语义分割任务中的应用;②学会完整部署一个点云分割项目,包括数据处理、模型训练、测试与性能评估;③为参与相关竞赛或科研项目提供技术支撑。; 阅读建议:建议读者结合提供的代码链接和密码访问完整资料,在本地或云端环境中边操作边学习,重点关注数据格式要求与训练参数设置,遇到问题时参考“常见问题与解决技巧”部分及时排查。
内容概要:本文详细介绍了三相异步电机SVPWM-DTC(空间矢量脉宽调制-直接转矩控制)的Simulink仿真实现方法,结合DTC响应快与SVPWM谐波小的优点,构建高性能电机控制系统。文章系统阐述了控制原理,包括定子磁链观测、转矩与磁链误差滞环比较、扇区判断及电压矢量选择,并通过SVPWM技术生成固定频率PWM信号,提升系统稳态性能。同时提供了完整的Simulink建模流程,涵盖电机本体、磁链观测器、误差比较、矢量选择、SVPWM调制、逆变器驱动等模块的搭建与参数设置,给出了仿真调试要点与预期结果,如电流正弦性、转矩响应快、磁链轨迹趋圆等,并提出了模型优化与扩展方向,如改进观测器、自适应滞环、弱磁控制和转速闭环等。; 适合人群:电气工程、自动化及相关专业本科生、研究生,从事电机控制算法开发的工程师,具备一定MATLAB/Simulink和电机控制理论基础的技术人员。; 使用场景及目标:①掌握SVPWM-DTC控制策略的核心原理与实现方式;②在Simulink中独立完成三相异步电机高性能控制系统的建模与仿真;③通过仿真验证控制算法有效性,为实际工程应用提供设计依据。; 阅读建议:学习过程中应结合文中提供的电机参数和模块配置逐步搭建模型,重点关注磁链观测、矢量选择表和SVPWM调制的实现细节,仿真时注意滞环宽度与开关频率的调试,建议配合MATLAB官方工具箱文档进行参数校准与结果分析。
已经博主授权,源码转载自 https://pan.quark.cn/s/bf1e0d5b9490 本文重点阐述了Vue2.0多Tab切换组件的封装实践,详细明了通过封装Tab切换组件达成多Tab切换功能,从而满足日常应用需求。 知识点1:Vue2.0多Tab切换组件的封装* 借助封装Tab切换组件,达成多Tab切换功能* 支持tab切换、tab定位、tab自动化仿React多Tab实现知识点2:TabItems组件的应用* 在index.vue文件中应用TabItems组件,借助name属性设定tab的标题* 通过:isContTab属性来设定tab的内容* 能够采用子组件作为tab的内容知识点3:TabItems组件的样式* 借助index.less文件来设定TabItems组件的样式* 设定tab的标题样式、背景色彩、边框样式等* 使用animation达成tab的切换动画知识点4:Vue2.0多Tab切换组件的构建* 借助运用Vue2.0框架,达成多Tab切换组件的封装* 使用Vue2.0的组件化理念,达成TabItems组件的封装* 通过运用Vue2.0的指令和绑定机制,达成tab的切换功能知识点5:Vue2.0多Tab切换组件的优势* 达成多Tab切换功能,满足日常应用需求* 支持tab切换、tab定位、tab自动化仿React多Tab实现* 能够满足多样的业务需求,具备良好的扩展性知识点6:Vue2.0多Tab切换组件的应用场景* 能够应用于多样的业务场景,例如:管理系统、电商平台、社交媒体等* 能够满足不同的业务需求,例如:多Tab切换、数据展示、交互式操作等* 能够与其它Vue2.0组件结合运用,达成复杂的业务逻辑Vue2.0多Tab切换组件的封装实例提供了...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值