浮动与盒模型

  <!--

浮动:

                标准文档流:元素默认的排列方式(垂直排列、水平排列)

                浮动:让元素漂浮起来

                作用:让垂直排列的元素可以横着排列(页面排版布局)

                属性:float:

                    取值:

                        left------左浮动

                        right-----右浮动

                        none------不浮动(默认值)

                元素浮动后特点:(兄弟关系)

                    1、多个元素同时浮动

                        如果同时左浮动,元素依次从左到右排列

                        如果同时右浮动,元素依次从右到左排列

                    2、元素添加浮动在页面中不占位置(脱离文档流)

                    3、多个元素同时浮动,一行内排列不下,最后一个浮动元素会自动折行显示

                    4、多个元素同时浮动,一行内排列不下,最后一个浮动元素会自动折行显示,折行位置取决于倒数第二个浮动元素的高度。

                清除浮动:(清除前面浮动元素带来的影响)

                    clear:

                        取值:

                            none------不清楚前面浮动父元素带来的影响

                            left-------清除前面前面左浮动元素带来的影响

                            right-------清除前面前面右浮动元素带来的影响

                            both-------清除前面前面浮动元素带来的影响

                浮动带来的影响:

                    父子关系中,子元素添加浮动,父元素高度会发生变化,---------高度塌陷

                        解决方法:

                            1、给子元素添加清除浮动(clear:both),添加在不浮动元素身上

                            2、只有一个子元素,考虑在后面手动添加一个清除浮动的标签,(首选div,选择能够设置宽高的标签)(   <div class=“clearFix”></div>    )

                                弊端:页面结构中多了一个标签

                            3、给父元素添加固定高度

                                弊端:子元素过多,里面内容会超出溢出

                            4、给父元素添加{overflow:hidden;}

                                元素添加overflow:hidden;触发了BFC机制(块级格式化上下文),形成一个独立的空间,

                                内部浮动元素的高度参与计算

                            5、万能清除法

                   

        盒子模型:

            概念:页面中任意一个元素都可以看作是盒子(容器),通常我们把div当成是一个盒子

            组成:(面试题)

                内容--------content

                边框--------border

                内边距------padding—————— 内容到边框之间的间距

                外边距------margin————————边到边之间的间距

               

                内边距:

                    padding:v1---------四个方向上相同内边距

                    padding:v1 v2---------v1:上下     v2:左右

                    padding:v1 v2 v3---------v1:上    v2:左右   v3:下

                    padding:v1 v2 v3 v4---------v1:上    v2:右   v3:下   v4:左

                    给具体某一个方向上添加内边距:

                        padding-方向词(top、right、bottom、left)

                        padding-top

                        padding-right

                        padding-bottom

                        padding-left

                    特点:

                        1、盒子会被撑大

                        2、背景颜色会蔓延到内边距上

                        3、取值为负数没有任何意义

                外边距:

                    margin---------四个方向上相同外边距

                    margin v2---------v1:上下     v2:左右

                    margin v2 v3---------v1:上    v2:左右   v3:下

                    margin v2 v3 v4---------v1:上    v2:右   v3:下   v4:左

                    给具体某一个方向上添加内外边距:

                        margin-方向词(top、right、bottom、left)

                        margin-top

                        margin-right

                        margin-bottom

                        margin-left

                    特点:

                        1、背景颜色不会蔓延到外边距

                        2、取值可以为负值

                        3、会更改盒子的位置

                标准盒子(w3c官方盒模型)

                    盒子宽度=内容宽+左右内边距+左右边框+左右外边距

                    盒子高度=内容高+上下内边距+上下边框+上外外边距

                IE怪异盒

                    需要触发条件:

                        属性:box-sizing:

                            取值:

                                content-box:标准盒子

                                border-box:怪异盒

                        怪异盒子宽=内容宽w(显示内容+左右内边距+左右边框)+左右外边距

                        怪异盒子高=内容宽h(显示内容+上下内边距+上下边框)+上下外边距

                如何区分标准盒子与怪异盒子?

                    看box-sizing:属性的取值为border-box

                外边距的特殊取值:(兄弟关系中)

                    1、元素水平排列,水平之间的外间距是相加和的关系

                    2、元素垂直上下排列,上下外间距取最大值

                父子关系中,子元素margin-top会作用在父元素上面,如何解决?

                    解决方法:

                        1、给父元素添加1像素透明边框,border:1px solid transparent

                        2、给父元素添加padding-top,此时父元素高度会被撑大,可以使用怪异盒子或者父元素高度减去padding-top值

                        3、给元素添加浮动

                        4、给元素添加定位

                        5、给父元素添加overflow:hidden


 

     -->

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值