CSS入门知识点简单总结

学习来源:B站up主 :罗大富Bigrich

相关视频:【3小时前端入门教程(HTML+CSS+JS)】

网址:   https://www.bilibili.com/video/BV1BT4y1W7Aw/?share_source=copy_web&vd_source=9efdad29078e1a84ebec03582c7d2b9f


学习成果:简单了解了盒子模型,网页布局的方式:浮动,定位的优缺点


CSS学习记录:

css三大特性:

1.层叠性:
如果两个相同的选择器之中有样式声明冲突的情况下,后面的选择器的样式会将前面选择器的样式覆盖掉

如果没有冲突样式,则保留不变

2.继承性

父元素的一些样式会同时继承到它的子元素之中,帮助我们避免代码重复

样式的继承只会继承font,text,line开头的样式和color样式

子元素继承的样式权重为0

3.优先级
哪个选择器的权重高就执行那个选择器的样式

通配符选择器,继承样式 0
标签选择器权重     1
类选择器权重       10
id选择器权重       100
内联样式权重       1000
!important       无穷大

复合选择器采用权重叠加的方式

1.CSS盒子模型

常用于布局的基本概念,文档中的每个元素都可以被看成是一个矩形的盒子,理解盒子模型是构建网页的基础,更加精确的控制元素在页面的位置和大小

内容区content

内边距 padding

边框 border

外边距margin

1. border边框的样式
border-width     用来调整盒子模型边框线宽
border-style     用来调整边框线条样式
border-color     用来调整边框线条颜色

border-style样式的属性
solid    实线
dashed   虚线
dotted   点线
none     无边框

border复合样式
border:线宽 线条样式 线条颜色;
border-top 上边框
border-right
border-bottom
border-left


边框会影响盒子模型的实际大小
----------------------------------------------------
2. padding内边距
padding-top 
padding-right
padding-bottom
padding-left

padding复合样式

padding:20px;       表示上右下左内边距都是此数值的长度
padding:20px 10px;   第一个数值为上下内边距,第二个数值为左右内边距
padding:30px,20px 10px;  第一个数值为上内边距,第二个数值为左右内边距,第三个数值为下内边距

3.marging外边距
盒子模型与其他模型相隔的距离,在盒子模型之外不会影响模型大小

同padding

marging:0 auto 盒子模型居中

1.1 复合样式

border边框的样式:

solid      实线
dashed     虚线
dotted     点线
double     双实线
----------------------------------------------
<head>
    <style>
        .demo{
            background-color:red;
            display:inline-block;
            border:5px solid yellowgreen;
            padding:50px;
            margin:40px;
        
        }
    </style>
</head>
<body>
    <div class="demo"> 一个盒子模型内部内容</div>
</body>
------------------------------------------------
border,padding,margin都是复合样式

 1.2 复合样式拆分后还是复合样式

border-style,border-width,border-color是复合属性

10px     上下左右四个边框都是10px
10px 0   上下是10px  左右为0
10px 0  20px  上右下
10px 0  20px 30px    上右下左的顺序,顺时针
-----------------------------------------------------------
<head>
    <style>
        .border-demo{
            background-color:red;
            border-style:solid;
            border-width:10px 0 20px 30px;
            border-color:yellow;

            border-left:10px solid brown;
        }
    </style>
</head>
<body>
    <div class="border-demo"> 一个盒子模型内部内容</div>
</body>

2.传统网页布局方式

:把盒子放到合适的位置即布局完成

2.1 FLEX布局

一维布局

在选择器中使用flex布局

对三个栏的整体布局
.flex-container{
    width:100%;
    max-width:800px;
    min-width:500px;  //在屏幕中实现更好的效果,确实很好用!!!
    margin:0 auto;    //居中显示
    display:flex;   //实现纵向几栏的布局
    
    //实现盒子的flex布局,在左上左下右上右下,任何空间位置都可以布局
    height:800px;  //整体布局高度
    align-items:flex-center;        //竖直方向居中显示盒子 flex-end
    justify-content:flex-center;    //水平方向居中显示,flex-left
    

}

对每个栏的单独布局
.flex-item{
    padding:10px;
    border:1px solid grey;
    border-radius:5px;

    max-height:500px;    //单个显示栏的高度,小于整体的高度,,就可以调整该栏在整体中的位置
    
    flex:2;
    
}

.flex-item:nth-child(2){
    flex:3;  //共三栏,第2栏的比例为3,其他为2
}

.flex-item:nth-child(2n+1){
    width:200px;
}

2.2 Grid 布局 更加全面更加强大

二维布局

Grid布局

.grid-container{
    display:grid;
    //设置三列的宽度,以后的盒子自动依据这个布局
    grid-template-columns:200px 300px 200px;
    grid-template-columns:20% 50% 30%;   //百分号布局
    grid-template-columns:1fr 2fr 1fr;   //特殊单位,表示1:2:1
    grid-template-columns:repeat(3,1fr)
    grid-template-columns:repeat(auto-fill,20px) //网页自动布局,每个盒子20px,过于灵活

    //每行的高度
    grid-template-rows:1fr 2fr;

}

.grid-item{
    padding:10px;
    border:1px solid grey;
    border-radius:5px;
    max-height:500px;    
    
    //可以让网页显示更多的信息
    overflow:hidden; //超出范围的自动隐藏,配合上方设置每行的高度。
}

3.浮动,不常用

3.1 浮动的三大特性

1.浮动元素会脱离标准流(文档流),浮动元素原来的位置被占用
2.多个盒子设置浮动时,会按照属性值的对齐方向在一行内显示并顶端对齐
3.浮动元素具有块元素的特性,可以设置宽高
  1. 浮动可以改变元素默认的排列顺序,让网页布局更加灵活多变
  2. 浮动典型应用让多个块级元素在同一行内排列显示
  3. 浮动的盒子之间没有缝隙,行内块会有缝隙;
  4. 浮动先占满一行,然后在占用下一行;

3.2 清除浮动 4种

        在网页开发时,常常不能通过限制父元素的高度,从而发生高度塌陷的问题。

双伪元素清除浮动法

<head>
    <style>

        .clearfix::before,.clearfix::after{
            content:'';
            display:table;
        }
        .clearfix{
            *zoom:1;
        }
        .clearfix::after{
            clear:both;
        }
        .box1,.box2{
            float:left;
        }
    </style>
</head>
<body>
    <div>
        <div class='box1'>
        </div>
        <div class='box2'>
        </div>
    </div>

</body>

-----------------------------------------------
在所有元素的前后都加一个空元素
最后一步清除浮动

在父元素中调用这个选择器clearfix


float:left;浮动

4.定位

浮动灵活但是不容易控制,定位布局可以精准定位(某个元素),更加自由,但是缺乏灵活性

4.1 定位语法

定位代码

position:static;    静态定位
position:relative;   相对定位
position:absolute;   绝对定位
position:fixed;      固定定位
position:sticky;     粘性定位
---------------------------------------
1. position:relative;
对标签本身不会有额外的影响,但是可以让内部的标签在定位是作参考!!!
根据该定位元素的原始位置为基准,进行偏移;
相对定位不会脱离文档流,会保留自身的原始位置,不会被别的元素占据自己原来的位置

2. position:absolute;
根据最近一级带有定位的父元素为基准,进行偏移
最近一级没有根据窗口位置进行偏移
绝对定位会脱离文档流,不会保留自身的原始位置

3. position:fixed;
固定定位的元素只会以浏览器视口为基准,无视任何祖先定位
最近一级没有根据窗口位置进行偏移
固定定位会脱离文档流,不会保留自身的原始位置

B站的小窗播放

5. 过渡,变换,动画

5.1 过渡

过渡可以使元素在进行变化(尺寸,颜色变化等)时,呈现更加动态的效果

<head>
    <style>
        *{
            margin:0;
            padding:0;   
        }

        .transition-box{
            width:100px;
            height:100px;
            background-color:yellow;
            /* 过渡,运动时间为1s,从宽100px到宽200px */
            /* transition: width 1s,height 2s, background-color 2s;  */
            /* 同一运动 运动模式:linear匀速运动*/
            transition:all 1s linear; 
        }
    
        /* hover伪类选择器 :改变鼠标经过时的样式*/
        .transition-box:hover{
            width:200px;
            height:200px;
            background-color: aqua;
        }
        
    </style>
</head>




<body>
    <div class='transition-box'></div>
</body>

5.2 变换

*{
    margin:0;
    padding:0;   
}

.transition-box{
    width:100px;
    height:100px;
    background-color:yellow;
    /* 过渡,运动时间为1s,从宽100px到宽200px */
    /* transition: width 1s,height 2s, background-color 2s;  */
    /* 同一运动 运动模式:linear匀速运动*/
    transition:all 1s linear; 
}

/* hover伪类选择器 :改变鼠标经过时的样式*/
.transition-box:hover{
    width:200px;
    height:200px;
    background-color: aqua;
}

.container{
    width:200px;
    margin:0 auto;
    /* 加上3D效果 */
    transform-style:preserve-3d;
    perspective:500px;
    position:relative;
    transition: all 1s;
}
/* 旋转3D */
.container:hover{
    transform:rotate3d(0,1,0,180deg);
}


.transform-box{
    width:200px;
    height:200px;
    background-color:green;
    transition: all 1s;

    /* 移动位置*/
    position:absolute;
    left:100px;
    top:50px;

   /* 旋转中心轴 */
    transform-origin:right bottom;
   
}

/* transform包含了已有的位置功能,还有了增强 */
.transform-box:hover{
    /* 位移 */
    /* transform: translate(100px,20px);
    transform:translateX(100px),translateY(20px); */

    /* 旋转 */
    /* transform: rotate(30deg); */

    /* 缩放 */
    /* transform: scale(0.5,2);  垂直缩小0.5,水平缩小2 */

    /* 变形,倾斜 */
    /* transform:skew(10deg); */

    /* 位移3D效果 */
    /* transform:translate(0,0,100px); */

    /* 旋转3D效果 */
    transform:rotate3d(1,0,0,100deg);
}

.test-box{
    width:200px;
    height:200px;
    background-color:red;
    position:absolute;
    transform:translateZ(100px);

}


 

                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值