2021-08-22奥利给

伪元素选择器

元素名::after{content:"在之前"}

::before 在之前 必须要有content

::after 在之后 必须要有content

::first-letter 在首字母

::first-line 在第一行

::selection 鼠标选中的内容

属性选择器

[target="_self"]{font-size : 50 p x}

盒模型

块级元素

占据所有可用宽度,以换行开始

通常用于较大的内容块,比如标题或结构化元素

行内元素

通常用于较小的内容块,如被选设置为粗体或斜体的一些词

只占据内容所需要的宽度,在同一行内一个接一个摆放

盒子的分类

一个元素产生什么样的盒子与它的 display 属性有关

盒子的组成

由 margin、padding、border、content 组成

边框盒(由 border、padding、content 组成)

填充盒(由 padding、content 组成)

内容盒(由 content 组成)

overflow 溢出浮动

overflow:visible;(可见的,默认情况)

overflow:hidden;(隐藏)

overflow:scroll;(生成滚动条)

border-width:所有边框厚度

border-style:所有边框样式

border-color:所有边框颜色

默认情况 内容盒

box-sizing:content-box;

边框盒 自动计算content的width和height

box-sizing:border-box

定位体系

视觉格式化模型规定了三种定位体系

常规流

又叫做普通流,流式布局,文档流,普通文档流

是最常见的定位体系,所有元素默认状态下都是常规流定位

盒子位置

盒子在包含块的垂直方向上依次摆放(按照HTML书写顺序依次摆放)

盒子在包含块中占据的尺寸是整个盒子的尺寸

垂直方向上若两个外边距相邻,则折叠

垂直方向:水平方向上不会重叠

外边距相邻:两个外边距之间没有border、padding和content

合并:均为正数取最大,均为负数取最小,一正一负则相加

浮动

当元素的float属性值为left或right时元素为浮动元素

float:none 不浮动

float:left 左浮动 向上向左排列

float:right 右浮动 向上向右排列

浮动盒子的顶边不得高于上一个盒子的顶边

若放不下则换行

定位体系-绝对定位

任何一个元素都必须属于其中某一种定位体系 设置元素的position属性,则为绝对定位

position:static 默认值,静态位置

position:relative; 相对位置

相对定位 相对于盒子原来的位置偏移

原本所占空间不变 没有脱离文档流

一般会用来做绝对定位的父元素

position:absolute; 绝对位置

相对于设置了定位属性(static)的父元素偏移

如果没有就相对于html元素偏移

脱离文档流 不再占据空间

position:fixed; 固定位置

相对于浏览器窗口的固定位置,不会随着用户的滚动变化

position:sticty; 粘性定位

依赖于用户的滚动,在position:relative;与position:fixed;之间切换(必须有一个方位值)

BFC(块级格式化上下文)

它是一个独立的渲染区域,与这个区域外部毫不相干

如何创建BFC

1、float的值不是none

2、position的值不是static或者relative

3、display的值是inline-block、table-cell、flex、table-caption或者inline-flex

4、overflow的值不是visible

BFC的作用

1、利用BFC避免上下相邻的两个元素margin重叠

<style>
    *{
        margin: 0;
        padding: 0;
    }
    p {
        color: #f555;
        background: yellow;
        width: 200px;
        line-height: 100px;
        text-align:center;
        margin: 30px;
    }
    div{
        /* 激活BFC */
        overflow: hidden;
    }
</style>
<body>
    <p>看看我的 margin是多少</p>
    <div>
        <p>看看我的 margin是多少</p>
    </div>
</body>

2、清除浮动,解决父级高度塌陷的问题

<style>
    .par {
        border: 5px solid rgb(91, 243, 30);
        width: 300px;
       /* 激活BFC */
        overflow: hidden;
    }
    
    .child {
        border: 5px solid rgb(233, 250, 84);
        width:100px;
        height: 100px;
        float: left;
    }
</style>
<body>
    <div class="par">
        <div class="child"></div>
        <div class="child"></div>
    </div>
</body>
</html>

3、自适应两栏布局

<style>
    *{
        margin: 0;
        padding: 0;
    }
    body {
        width: 100%;
        position: relative;
    }
 
    .left {
        width: 100px;
        height: 150px;
        float: left;
        background: rgb(139, 214, 78);
        text-align: center;
        line-height: 150px;
        font-size: 20px;
    }
 
    .right {
         /* 激活BFC */
        overflow: hidden;
        height: 300px;
        background: rgb(170, 54, 236);
        text-align: center;
        line-height: 300px;
        font-size: 40px;
    }
</style>
<body>
    <div class="left">LEFT</div>
    <div class="right">RIGHT</div>
</body>

总结:因为BFC内部的元素和外部的元素绝对不会互相影响,因此, 当BFC外部存在浮动时,它不应该影响BFC内部Box的布局,BFC会通过变窄,而不与浮动有重叠。同样的,当BFC内部有浮动时,为了不影响外部元素的布局,BFC计算高度时会包括浮动的高度。避免margin重叠也是这样的一个道理。

子绝父相

<div class="box1">
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
​
</div>
    .box1{
    width: 400px;
    height: 400px;
    background-color: deeppink;
    position: relative;
    top: 100px;
    left: 100px;
}
.box2{
    width: 100px;
    height: 100px;
    background-color: deepskyblue;
    position: absolute;
    top: 50px;
    left: 50px;
    z-index: 3;
}
​

使用z-index改变堆叠顺序,数值越大,堆叠在越上方

.box2{
    width: 100px;
    height: 100px;
    background-color: deepskyblue;
    position: absolute;
    top: 50px;
    left: 50px;
    z-index: 3;
}
.box3{
    width: 100px;
    height: 100px;
    background-color: forestgreen;
    position: absolute;
    top: 60px;
    left: 60px;
    z-index:2 ;
}
.box4{
    width: 100px;
    height: 100px;
    background-color: rgb(187, 236, 6);
    position: absolute;
    top: 70px;
    left: 70px;
    z-index:1 ;
}

绝对定位

当浮动元素被设置为绝对定位

元素的float属性会被强制改为none(float属性失效)

绝对定位元素对其他元素不会造成影响

绝对定位的位置:left right top bottom

变化的内容 变化规则 变化时间 transition: all linear 2s;

有序列表

< OL >< /OL>自带数字

无序列表

< UL >< /UL>实心圆

定义列表

< DL >< /DL >

< LI >< /LI >是

列表项样式

属性值含义
none取消列表项样式
disc默认,标记是实心圆
circle标记是空心圆
square标记是实心方块
decimal标记是数字
lower-alpha、upper-alpha小写和大写英文字母

列如list-style: none;

二级列表(可以在列表中间插入)

当常规流遇上浮动

常规流盒子和浮动盒子混合摆放

浮动盒子在摆放时要避开常规流盒子

常规流盒子在摆放时无视浮动盒子

常规流盒子的自动高度计算时,无视浮动盒子(高度坍塌)

清除浮动

对最后一个子元素使用 clear:both,可防止父元素高度坍塌

清除浮动是为了最后一个常规流盒子

父级:after{content:" "; display:block clear:both}

通过display改变元素盒子的类型

display: inline-block;(行内块)

display:block;(设置为块盒)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值