CSS学习笔记

这篇博客详细介绍了CSS的学习笔记,包括CSS2.0到CSS3.0的重要特性。内容涵盖了选择器、浮动、定位、盒子模型、CSS预处理器以及CSS3动画和转换。重点讨论了选择器的种类,如标签、类和ID选择器,以及2D和3D转换的实现。此外,还探讨了浮动、定位的原理和解决父级边框塌陷的方法,并举例说明CSS3动画的基本属性和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSS学习笔记

1、CSS2,2.1,3

CSS2.0 div+CSS,html与css分离的思想

css2.1 浮动,定位

css3.0 圆角,阴影,动画。。。

2、css的优势

  • 内容与表现分离
  • 网页结构表现统一,可以实现复用
  • 样式十分的丰富
  • 建议使用独立于html的css文件
  • 利于SEO,容易被搜索引擎收录

3、三种导入方式

  • 行内(标签内属性)
  • 内部样式(style标签)
  • 外部样式(文件)

行内>内部>外部样式(就近原则)

外部样式的两种写法:

1、链接

<link rel="stylesheet" href=""></link>

2、导入(在style中)

<style>
@import url(""</style>

4、选择器

选择页面上的某个元素

4.1、标签选择器

会选择所有指定标签,只能放基本的通用样式

4.2、类选择器

选中同类名的,一组标签。

<style>
    .classname{
        
    }
</style>

4.3、ID选择器

id要唯一

#idname{

}

d选择器>类选择器>标签选择器

4.4、层次选择器

  • 后代选择器

在某个元素的后面。eg.body后面有p

body p{
    
}
  • 子选择器(第一代儿子)
body>p{
    
}
  • 相邻兄弟选择器

只有一个,下面的那一个元素。

div1 + div2{

}
  • 通用选择器

当前选中元素的所有向下兄弟元素

div1 ~ div2{

}
border-radius: 24px;//圆角

4.5、结构伪类选择器

//第一个和最后一个
ul li:first-child{
    
}
ul li:last-child{
    
}

:hover



// 选中当前p元素的父级元素,进而选中父级元素的第一个,并且选中的元素是当前元素(p)
p:nth-child(1){
    
}
//选中父元素下的p元素的第二个,类型
p:nth-of-type(1){
    
}

4.6、属性选择器(常用)

id和class结合

//a标签中带有id属性的
a[id]{
    
}
//a标签中id=nm的
a[id=nm]{
    
}

//语法:属性名 = 属性值(正则)
//=绝对等于
//*=包含
//^=以什么开头
//$= 以什么结尾

a[class *= "links"]{
}
//同时含有多个属性
a[href][title] {color:red;}

5、美化网页元素

标签:突出字体,括起来要美化的元素,再对span添加css。

5.1、字体样式

font-family: xxx,xxx;//字体族
font-size: 50px;//字体大小
font-weight: bold;//字体的粗细
color: #12a;//字体颜色

//第一是风格,第二是粗细,第三是大小,第四是字体
font: oblique bolder 12px "楷体";

5.2、文本样式

//颜色 :单词/RGB/RGBA(A是透明度0-1)
color: rgba(0,255,255,0.5)

//排版
text-align: center;
//首行缩进 2em是两个字符
text-indent: 2em

background: #000012;

//行高和块的高度一样的话就上下居中
height: 300px;
line-height: 300px;


//下划线
text-decoration: underline;

//上划线
text-decoration: underline;

//中划线
text-decoration: line-through;


//多元素水平对齐
img,span{
    vertical-align: middle;
}
<div>
    <img>
    <span>
 
    
    


5.3、伪类

//鼠标悬浮(重点)
a:hover{
    
}
//鼠标点完之后
a:visited{
    
}

//鼠标按住未释放的状态
a:active{
    
}

5.4、列表

<ul>
	<li>
    <li>
    ....
    
//选中ul下的所有li
ul li{
    height: 30px;//高度
    list-style: none;//去掉列表前的黑点,circle为空心⚪,decimal为数字
    
    
    
}    

5.5、背景

背景颜色

背景图片

//div中方背景图片
div{
    backgroud-image: url("");
    backgroud-repeat: no-repeat;//(repeat-x,,repeat-y,,水平平铺和竖直平铺)
}
//默认是全部平铺,不断重复图片,铺满位置

//参数:颜色,图片,图片位置,平铺方式
backgroud: red url("") 270px 10px no-repeat;

5.6、渐变

//渐变色,角度,起始颜色,结束颜色
background-image: linear-gradient(10deg,#21D4FD 0%,#B721FF 100%);

6、盒子模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xXaVkkN-1615626227331)(C:\Users\刘国林\AppData\Roaming\Typora\typora-user-images\image-20210312164732644.png)]

宽高,外边距,边框,内边距,内容。

先初始化,所有的标签都有默认的内外边距。

外边距

margin: 0 auto;//居中元素,写两个参数就是上下,左右

控制好:外边距+边框+内边距+内容=规定的大小

//圆角边框:四个参数,左上,右上,右下,左下。。
//两个参数:左上+右下,右上+左下
//一个参数:上下左右
//参数是圆角的半径!!

border-radius:


7、浮动

标准文档流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQkmxYJO-1615626227342)(C:\Users\刘国林\AppData\Roaming\Typora\typora-user-images\image-20210312202406547.png)]

块级元素:独占一行,block

h1-h6\p\div\列表

行内元素:不独占一行,inline

span \a\img\strong...

行内元素可以包含在块级元素中,反之不能。

div和span最常用

display: block;//块级元素;;inline是行内元素

inline-block是块元素,但是可以在一行。一行中的一块。

块级元素/行内元三年也是一种实现行内元素排列的方式

浮动

float: left;//right

左右浮动,超脱出标准文档流,引起父级边框塌陷的问题。

父级边框塌陷问题

//right//右侧不允许浮动
/*
left

none
*/
clear: both;两侧不允许有浮动元素

1、增加父级元素的高度

2、在后面添加一个空的div,清除浮动

3、在父级元素添加overflow

4、在父类添加一个伪类(类似空div)(推荐使用)

#father:after{
	content: '';
	display: block;
    clear: both;

}
overflow: sroll;//超出大小,生成滚动条。

8、定位

8.1、相对定位

相对于自己原来的位置,进行偏移。

position: relative;//上下左右
top: 20px;//距离上边20px,即元素向下偏移20px
left: 20px;
bottom: 20px;
right: 20px;

8.2、绝对定位

positon: absolte;//上下左右
//没有父级元素定位的情况下,相对浏览器定位。
//相对父级元素,父级要有position属性,可以是relative;

8.3、fixed固定定位

position: fixed;
//固定在一个位置,拉滚动条也不变

8.4、z-index

同级盒子对比
七层模型
background < 负z-index < block <float < inline-block < z-index: auto/0 <正z-index
层级,

一层一层的在上面。

z-index: 99;//

opacity: 0.6;//设置透明度

9、CSS预处理器

SASS

LESS:基于NodeJS。(必学)

css动画

css3动画

1、基本属性

1.1 定义动画

@keyframes animateName {  }

//@-webkit-keyframes

1.2 绑定动画到div元素

至少包含动画名称和动画时长。

//简写
animation: animateName 5s;

//单独写
animation-name:
animation-duration:

绑定多个动画,则用逗号隔开。

duration的时间一一对应name上的动画。若未写,则按第一个duration的时间。

多个动画,出现相同属性,则,谁先出现就按谁的。

1.3 动画属性

//动画播放次数
animation-iteration-count: infinite;    //infinite是循环

//暂停与继续
animation-play-state: paused;   //running

//完成播放时的样式
animation-fill-mode: forward;

//延迟开始时间
animation-delay: 

//可定义动画运动是速度
animation-timing-function: cubic-bezier(n,n,n,n) | linear | ease-in-out
默认是ease,加速运动。

animate和transform冲突

animate中无法定义不同的transform。可以在外面再套一个div来实现。

1.4 中间值

帧动画之间,变化的属性若存在中间值,则慢慢的过渡变化。

就是过渡transition

CSS属性改变的对象
background-color色彩
background-image只是渐变
background-position百分比,长度
border-bottom-color色彩
border-bottom-width长度
border-color色彩
border-left-color色彩
border-left-width长度
border-right-color色彩
border-right-width长度
border-spacing长度
border-top-color色彩
border-top-width长度
border-width长度
bottom百分比,长度
color色彩
crop百分比
font-size百分比,长度
font-weight数字
grid-*数量
height百分比,长度
left百分比,长度
letter-spacing长度
line-height百分比,长度,数字
margin-bottom长度
margin-left长度
margin-right长度
margin-top长度
max-height百分比,长度
max-width百分比,长度
min-height百分比,长度
min-width百分比,长度
opacity数字
outline-color色彩
outline-offset整数
outline-width长度
padding-bottom长度
padding-left长度
padding-right长度
padding-top长度
right百分比,长度
text-indent百分比,长度
text-shadow阴影
top百分比,长度
vertical-align百分比,长度,关键词
visibility可见性
width百分比,长度
word-spacing百分比,长度
z-index正整数
zoom数字

transform的转换也存在过渡。

2、2D转换

2.1 属性

transform: 转换函数;
transform-origin: ;//转换的原点,可为负数

2.2 转换函数

2.2.1 translate(x,y)

x,y轴方向移动x,y距离

向右,向下。

2.2.2 rotate(xdeg)

顺时针旋转x度。沿transform-origin

2.2.3 scale(x,y)

宽度缩放x倍,高度缩放y倍

2.2.4 skew(xdeg,ydeg)

水平和垂直方向倾斜。第二个参数为空则默认0.

3 、3D转换

rotateX(xdeg)

rotateY(ydeg)

rotateZ()

沿x轴或y轴旋转。

y轴向上,x轴横向,z轴指向屏幕

改变transform-origin的位置,可以设置各种运动轨迹。

3.1正方体实现思路

设置一个大盒子,表示正方体

里面设置六个面。

六个面分别通过3D转换到合适位置。

4、css3过渡

  • 指定要添加效果的CSS属性
  • 指定效果的持续时间。

animate也可以达到这样的效果。

transition。

//多个过渡 
transition: width 2s, height 2s, transform 2s;
//观察3d转换元素的视角,从什么视角去看该元素
perspective : xxxpx;

//指定嵌套元素是怎样在三维空间中呈现。
transform-style: flat|preserve-3d;

若div1,为flat,则div2的3D转换不生效。否则div2可自行3D转换。div1的3D转换作用在整个盒子,也影响div2
<div1>
  <div2>

5、transform-origin详解

transform-origin: x y z;

三个属性值。

x是横向,y是向上,z是指向屏幕垂直。

可以是百分比值,或者px值等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uKdOwBRU-1632968752113)(C:\Users\刘国林\AppData\Roaming\Typora\typora-user-images\image-20210531162901499.png)]

100%就是最右边,50%就是向上一半。

2d圆周环绕:

通过设置延迟,可实现多小球跟随。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ML2cCUEQ-1632968752142)(C:\Users\刘国林\AppData\Roaming\Typora\typora-user-images\image-20210531195357840.png)]

在3D转换中,transform-origin(x,y,z)三个参数,代表在该坐标系中的位置,沿某轴旋转运动。

6、椭圆运动实现思路

1、运动合成法

圆周运动+上下运动合成。

一个animate只能一个transform,所以需要再套一层div。

2、圆心移动法

3、3D旋转法

绕y轴旋转。

但由于自身是平面圆,不是球,所以会变成切片。

使用场景

1、通过class动态绑定,js函数点击切换data的boolean值,来改变class,从而使用动画、过渡

2、vue中的transition标签,

3、:hover来使用动画。过渡。

4、直接永久绑定animation。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值