ie安全设置相对应得值_重学前端:CSS的定位机制是什么?position有哪些值?弹性布局呢...

学习布局前须知道 CSS 中的定位机制

标准文档流(Normal Flow)

浮动(Float)

绝对定位(Absolute Positioning)

标准文档流:上到下,从左到右的输出文档内容。它由块级(block)元素和行级元素组成,且它们都是盒子模型。

布局是指浏览器将元素以正确的大小摆放在正确的位置上。

18641d06225343e39621f51364fbad2f

display:

设置元素的显示方式

5f12f41c2a814c2e8a8acffe052bcb13

display:block

  • 默认宽高为父元素宽高
  • 可设置宽高
  • 换行显示
  • 默认为block的元素:
    ,

    ,

    ~

    ,
    • ,

    display:inline

    • 默认宽度为内容宽度
    • 不可设置宽高
    • 同行显示(元素内部可换行)
    • 默认为inline的元素:, , , ,

    display:inline-block

    • 默认宽度为内容宽度
    • 可设置宽高
    • 同行显示
    • 整块换行
    • 默认为inline-block的元素:, , ,

    display:none

    • 设置元素不显示

    display:none 与 visibility:hidden 的区别为 display:none 不显示且不占位,但 visibility:hidden 不显示但占位。

    position

    position 用于设置定位的方式与top right bottom left z-index 则用于设置参照物位置(必须配合定位一同使用)。

    三种定位形式

    • 静态定位(static)
    • 相对定位(relative)
    • 绝对定位(absolute、fixed)
    position: static | relative | absolute | fixed/* 默认值为 static */

    position:relative

    • 相对定位的元素仍在文档流之中,并按照文档流中的顺序进行排列。
    • 参照物为元素本身的位置。

    最常用的目的为改变元素层级和设置为绝对定位的参照物。

    5316c1a58ae24e5dbbad2f724bcf3e54

    position:absolute

    建立以包含块为基准的定位,其随即拥有偏移属性和 z-index 属性。

    • 默认宽度为内容宽度
    • 脱离文档流
    • 参照物为第一个定位祖先或根元素( 元素)
    b0816704f554463192d75141cd3cccca

    position:fixed

    • 默认宽度为内容宽度
    • 脱离文档流
    • 参照物为视窗

    NOTE:宽高的100%的参照依然为视窗(例:网页遮罩效果)

    454cefa471bf470e8e4af2facbefc39e

    top/right/bottom/left

    75c86ccaee6c4252aa31dae4f5153eae

    其用于设置元素边缘与参照物边缘的距离,且设置的值可为负值。在同时设置相对方向时,元素将被拉伸。

    z-index

    其用于设置 Z 轴上得排序,默认值为 0 但可设置为负值。(如不做设置,则按照文档流的顺序排列。后面的元素将置于前面的元素之上)

    aec3ae5e69514e8bad6c2114ac741eec

    z-index 栈

    父类容器的 z-index 优于子类 z-index 如图

    bf1cdee2b1ab480c9e61a370f3ebe106

    float

    CSS 中规定的定位机制,其可实现块级元素同行显示并存在于文档流之中。浮动仅仅影响文档流中下一个紧邻的元素。

    float: left | right | none | inherit
    • 默认宽度为内容宽度
    • 脱离文档流(会被父元素边界阻挡与position脱离文档流的方式不同)
    • 指的方向一直移动
    ff1f8c2f03124083b7b73085a811ba9e

    float 元素在同一文档流中,当同时进行 float 时它们会按照文档流中的顺序排列。(当所有父元素中的所有元素脱离文档流之后,父元素将失去原有默认的内容高度)

    16492c99aac44872b3769e4c7d889f62

    注意:float 元素是半脱离文档流的,对元素是脱离文档流,但对于内容则是在文档流之中的(既元素重叠但内容不重叠)。

    eb0dc6b6d2bc482ea538cd17f7f15f9a

    clear

    clear: both | left | right | none | inherit
    • 应用于后续元素
    • 应用于块级元素(block)

    使用方法

    优先级自上而下

    1. clearfix 于父元素
    2. 浮动后续空白元素 .emptyDiv {clear: both}
    3. 为受到影响的元素设置 width: 100% overflow: hidden 也可
    4. 块级元素可以使用
      不建议使用,影响 HTML 结构
    /* clearfix */.clearfix:after { content: "."; /* Older browser do not support empty content */ visibility: hidden; display: block; height: 0; clear: both;}.clearfix {zoom: 1;} /* 针对 IE 不支持 :after */

    flex

    0239b49546894de5a0b8bcb5ccc8c20c

    弹性布局可用于多行自适应,多列自适应,间距自适应和任意对齐。

    创建 flex container

    display: flex/* 弹性容器内的均为弹性元素*/

    flex item

    只有弹性容器在文档流中的子元素才属于弹性元素。

    Block Element
    Inline Element
    Absolute Block Element

    flex 方向

    flex-direction

    flex-direction: row | row-reverse | column | column-reverse
    35301d9777bf4e50bd943a4f0750e639

    flex-wrap

    flex-wrap: nowrap | wrap | wrap-reverse
    3e6f474882324c75b5034cbc457926d9

    flex-flow

    flex-flow 为 flex-wrap 与 flex-direction 的简写,建议使用此属性(避免同时使用两个属性来修改)。

    flex-flow:  || 
    52cdc03239324415adf6d012e3bbff20

    order

    order 的值为相对的(同被设置和未被设置的值相比较),当均为设置时默认值为 0 则按照文档流中的顺序排列。

    order: 
    73f17fb161814674bc58b20496000f16
    2602c2fdedb547d38ff3ce27a687e948

    flex 弹性

    flex-basis

    其用于设置 flex-item 的初始宽高(并作为弹性的基础)。如果 flex-direction 是以 row 排列则设置,如以 column 排列则设置

    flex-basis: main-size | 

    flex-grow

    伸展因子,其为弹性布局中最重要的元素之一,flex-grow 设置元素可用空余空间的比例。flex-container 先安装宽度(flex-basis)进行布局,如果有空余空间就按照 flex-grow 中的比例进行分配。

    Width/Height = flex-basis + flex-grow/sum(flow-grow) * remain

    flex-grow: initial: 0
    db08d6e452c2401caf9ae522e3e05ed1
    8d9c05cd368249eebf0daad5c6565332
    f943ed28d0d7491fb5b0a0ccbc368a8f

    flex-shrink

    收缩因子,用于分配超出的负空间如何从可用空间中进行缩减。

    flex-shrink: initial: 1

    Width/Height = flex-basis + flow-shrink/sum(flow-shrink) * remain

    remain 为负值,既超出的区域。

    5c994650855d416284e74f87e7b8817a

    flex

    其为 flex-grow flex-shrink flex-basis 的值缩写。

    flex:  ||  || initial: 0 1 main-size

    flex 对齐

    justify-content

    其用于设置主轴(main-axis)上的对其方式。弹性元素根据主轴(横向和纵向均可)定位所以不可使用 left 与 right 因为位置为相对的。(行为相似的属性有 text-align)

    justify-content: flex-start | flex-end | center | space-between | space-around
    4b28160d154446e5a6a5fc4974bbe80e

    align-items

    其用于设置副轴(cross-axis)上的对其方式。(行为相似的属性有 vertical-align)

    align-items: flex-start | flex-end | center | baseline | stretch
    4766e4532e154afbb912e8945287d31d

    align-self

    其用于设置单个 flex-item 在 cross-axis 方向上的对其方式。

    align-self: auto | flex-start | flex-end | center | baseline | stretch
    ac1409ee5c0342d0914775dd1146226c

    align-content

    其用于设置 cross-axis 方向上的对其方式。

    align-content:flex-start | flex-end | center | space-between | space-around | stretch
    1ae9c167e1624b8799eeee24f8254590
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值