1-6-1:标准流下的定位及应用

         css中有三种定位机制:标准流(normal flow)、浮动(float)和定位(position)。

一.标准流下的定位原则

  • 行内元素的盒子在同一行中从左至右水平排列
  • 块级元素的盒子占据一行,从上到下一个一个排列       
  • 对于嵌套元素,子元素的盒子位于父元素盒子的里面,并且叠放在父元素的上方
  • 盒子与盒子之间的距离由margin属性决定。盒子与内容之间的距离由padding决定

  • 在HTML代码中插入一个元素就是向浏览器中插入一个盒子

下面是简单示例:

    <style>
        *{
            border: 2px dashed #f06;
            padding: 6px;
            margin: 2px;
        }
        body{
            border: 3px solid blue;
        }
        a{
            border: 3px solid blue;
        }
    </style>
    <div>网页里的块级元素</div>
    <a href="#">行内元素1</a><a href="#">行内元素2</a><a href="#">行内元素3</a>
    <div>无名块<p>这是盒子中的盒子</p></div>

 效果展示:

 

1.行内元素的盒子

        行内元素的盒子:在浏览器中得到一行带有高度的空间(行高由line-height属性决定,如果没有设置该属性,则是内容的默认高度)。

        注意如果给行内元素的盒子设置上下border、margin、padding等值,导致其盒子的高度超过行高,那么盒子上下部分将和其他元素的盒子重叠。因此,不推荐对行内元素直接设置盒子属性,一般先设置行内元素以块级元素显示,再对它设置盒子属性。

2.display属性

        标准流中的元素可通过display属性来改变元素是以何种方法显示。常见display属性的取值及其含义如下:

display: block|inline|none|list-item|inline-block|flex
  • 块级元素(display:block)

        - 每个元素占据浏览器一整行的位置,元素之间自动换行,从上到下依次排列。

  • 行内元素(display:inline)

        - 行内元素是指元素与元素之间从左到右水平排列,只有当浏览器窗口容纳不下才会转到下一行,每个元素的宽度以容纳内容的最小宽度为准,对行内元素设置width、height、上下margin、上下padding属性均不能增加其占有的空间,但可以设置line-height、左右margin、左右padding。

  • 行内块元素(display:inline-block)

        - 行内块元素将在一行内水平排列,但每个元素又具有块级元素的特点,设置width、height、margin、padding等属性均有效,也就是结合了行内元素和块级元素的特点。

  • 隐藏元素(display:none)

        - 当某个元素被设置成display:none之后,浏览器会完全忽略掉这个元素,该元素将不会被显示,也不会占据文档中的位置。像title元素默认就是此类型。在制作下拉菜单、Tab面板时需要用display:none把未激活的菜单或面板隐藏起来。

        - 注意:使用visibility:hidden也可以隐藏元素,但元素仍然会占据文档中原来的位置。

  •  列表项元素(display:list-item)

        - 在html中只有li元素默认是此属性,将元素设置为列表项元素并设置它的列表样式后,元素左边将增加列表图标(如小黑点)

  • 弹性元素(display:flex)

        - xxx

修改元素的display属性一般有以下用途:

        > :对行内元素设置宽度和高度,或者让行内元素从上到下排列(如制作垂直导航条),这时需将行内元素转换为块级元素显示(display:block)

        > :使块级元素从左到右依次排列,可设置(display:inline-block)或者浮动属性。

        >:控制元素的显示和隐藏,如下拉菜单、提示框、Tab面板中的元素,隐藏时需设置display:none。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值