CSS3知识总结

什么是css3

CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能。 目前主流浏览器chrome、safari、firefox、opera、甚至360都已经支持了CSS3大部分功能了, IE10以后也开始全面支持CSS3了。
最需要注意的问题是各个浏览器的兼容性问题在编写CSS3样式时,不同的浏览器可能需要不同的前缀。

浏览器前缀

前缀浏览器
-webkit-chrome和safari (Webkit)
-moz-Firefox (Gecko)
-ms-IE (Trident)
-o-Opera (Blink)

css3选择器

选择器含义
:link未访问的链接
:visited已访问的链接
:hover鼠标移动到链接上
:active选定的链接(鼠标点击未松开)
p~ul通用兄弟选择器:
p+ul和相邻兄弟选择器
selector[attribute=value]选择 attribute 属性值为 "value"的元素
selector[attribute=value]
selector[attribute^=value]选择 attribute 属性值以 “value” 开头的所有元素
selector[attribute*=value]选择attribute 属性值包含 “value” 的所有元素
selector[attribute$=value]选择 attribute 属性值以 “value” 结尾的所有元素
selector[attribute~=value]选择 attribute 属性值为一个词列表,并且以空格隔开,其中词列表中包含了一个value1或value2词
:first-child匹配选择器的第一个子元素,此元素必须是父元素的第一个子元素
:last-child匹配选择器的最后一个子元素,此元素必须是父元素的最后一个子元素
:nth-child()匹配属于其父元素的第 N 个子元素,不论元素的类型。(odd 奇数序号的元素 even 偶数序号的元素)
:only-child匹配属于其父元素的唯一子元素的每个元素。
:root匹配根元素
:empty匹配没有子元素的对应选择器的元素

边框圆角

长度单位:em,px,pt(点Points),%
  border-radius:20px;//四个角
border-radius:20px 40px 30px 40px;//左上 右上 右下 左下;

在这里插入图片描述

			.box1{
				border-radius: 50%;
			}
			.box2{
				height: 50px;
				width: 50px;
				border-radius:50px 0px 0px 0px;
			}
			.box3{
				height: 50px;
				border-radius:50px 50px 0px 0px;
			}

渐变

径向渐变

链接: C33渐变.

线性渐变

文本和盒子阴影

box-shadow:0px 0px 10px red insert;
text-shadow:0px 0px 10px red;
项目Value
xx轴偏移量
yy轴偏移量
blur模糊度
color颜色
inset/outset内阴影/外阴影

在这里插入图片描述

文字换行

/* 显示一行,省略号 */
 
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-all;/*允许单词断点换行*/
/* 显示两行,省略号 */
 
 text-overflow: -o-ellipsis-lastline;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;

CSS3字体

@font-face可以自定义字体。把我们想要使用的字体放到服务器上,使用时直接加载到本地就能使用了。

font-family:自定义字体的名字
src:字体的路径
在这里插入图片描述

css3 背景

项目Value
background-color指定背景颜色
background-image指定背景图片
background-repeat指定背景图片的显示范围
background-position指定背景图片的位置
background-attachment背景图片固定 ------- scroll(默认值)/fixed(固定到当前窗口)/local(随着内容走)
background-size背景图片大小-------cover(扩大背景图,使背景图片铺满整个容器)/ contain(等比缩放到某一边紧贴容器边缘)/10% 10%/20px 20px
background-clip背景图片裁切 ------content-box(内容区域)/border-box(边框区域)/padding-box(内边距区域)
background-origin背景图片定位区域(右侧可超出,到边框区域后消失) ------content-box(内容区域)/border-box(边框区域)/padding-box(内边距区域)

倒影

box-reflect:below 10px;
倒影,火狐不支持
项目Value
below底部
above顶部
left
right
none无倒影
.box{
				height:100px;
				width: 200px;
				background-image:url(swiper/img/218746.jpg) ;				
				background-size:100% 100% ;
				-webkit-box-reflect:below 1px -webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.3))

			}

在这里插入图片描述

滤镜

filter:blur(10px)
项目Value
grayscale灰度(取值:0-1数值)
sepia褐色(取值0-1)
saturate饱和度(1为正常饱和度,大于1饱和度越高)
hue-rotate色相旋转(取值:角度0-360deg)
invert反色 (取值0-1 )
opacity透明度 (取值0-1)
brightness亮度( 取值:数字 0亮度全黑,1为正常亮度,大于1时会增加元素的亮度)
contrast对比度 ( 取值:数字 0亮度全黑,1为正常亮度,大于1时会增加元素的亮度)
blur模糊(取值:像素,越大越模糊)
drop-shadow阴影(box-shadow类似。)

过渡

transition:all 1s ease;
项目Value
transition-property规定应用过渡的 CSS 属性的名称。
transition-duration定义过渡效果花费的时间。默认是 0。
transition-timing-function规定过渡效果的时间曲线。默认是 “ease”。 (linear:匀速)
transition-delay规定过渡效果延迟时间。默认是 0。

当元素背部朝向屏幕时隐藏

backface-visibility: hidden;

2D装换

transform :translate(10px 10px);
1.同时使用多个转换,其格式为
transform:translate() rotate() scale()…..等用空格隔开
2.其顺序会影响转换的效果(先旋转会改变坐标轴方向)
3.当我们同时有位移和其他属性的时候,记得要将位移放到最前面
项目Value
translate平移(x轴,y轴)
scale缩放(1,2) 负数是缩小
rotate旋转(30deg)可接受负数
skew倾斜(20deg)
transform-origin改变基准点(可以是数值,百分比,也可以是位置单词如:top,left等)

3D转换

//开启3D空间
transform-style: preserve-3d
//景深
 perspective:600px;

transform: rotateZ(20deg); //增加Z轴的旋转
transform: translateZ(20px); //增加Z轴的位移

在这里插入图片描述

动画

1.指定动画

@keyframes 动画名称{
				0%{}
				100%{}
			}

2.使用动画

animation:name 2s ease infinite;
项目Value
animation-name指定动画名称
animation-durantion指定动画播放的时间
animation-timing-function指定动画播放的速度
animation-delay指定动画播放的延迟时间
animation-iteration-count指定动画播放的次数
animation-direction指定动画播放的顺序(normal alternate reverse)
animation-fill-mode属性规定动画在播放之前或之后,其动画效果是否可见none backwards forwards both
animation-play-state属性规定动画正在运行还是暂停paused running

用js控制动画暂停

div.style.animationPlayState = "paused";
div.style.animationPlayState = "running";

flex布局

链接: flex布局.

flex布局中flex:1和flex:auto的区别

在flex:1 时在尺寸不足时会优先最小化尺寸,flex:auto在尺寸不足时优先最大化内容尺寸。

在这里插入图片描述

flex:1 的尺寸是较长的尺寸优先牺牲自己的尺寸,而flex:auto 中是较长的尺寸优先扩展自己的尺寸。

所以,flex:1 更适合在等比例列表时使用,flex:auto适用于元素充分利用剩余空间,比如头部导航文字多少不一致时使用

项目Value
display指定 HTML 元素盒子类型。(flex)
flex-direction指定了弹性容器中子元素的排列方式(row,row-reverse,column,column-reverse)
justify-content设置弹性盒子元素在主轴(横轴)方向上的对齐方式。(flex-start,flex-end,center,space-between,space-around)
align-items设置弹性盒子元素在侧轴(纵轴)方向上的对齐方式。(flex-start,flex-end,center,baseline)
flex-wrap设置弹性盒子的子元素超出父容器时是否换行。(nowrap,wrap,wrap-reverse)
align-content修改 flex-wrap 属性的行为,类似 align-items, 但不是设置子元素对齐,而是设置行对齐(flex-start,flex-end,center,space-between,space-around)
flex-flowflex-direction 和 flex-wrap 的简写
给子元素设置
order设置弹性盒子的子元素排列顺序。
align-self在弹性子元素上使用,设置自身的对齐方式。覆盖容器的 align-items 属性。(flex-start,flex-end,center,baseline)
flex设置弹性盒子的子元素如何分配空间。

多媒体查询

在这里插入图片描述

@media only screen and (min-width: 100px) and (max-width: 640px) {
				
			}
@media only screen and (orientation:landscape ) {
				
			}

orientation:landscape 横屏时
orientation:portrait 竖屏时
在这里插入图片描述

em/rem

1.当使用rem单位的时候,页面转换为像素大小取决于叶根元素的字体大小,即HTML元素的字体大小。根元素字体大小乘rem的值。

例如,根元素的字体大小为16px,那么10rem就等同于10*16=160px。
使用 em 单位存在继承的时候,情况会变得比较棘手,因为每个元素将自动继承其父元素的字体大小。 继承效果只能被明确的字体单位覆盖,比如px,vw

移动端书写规范

<meta name="viewport" content="width=device-width, initial-scale=1.0">
//开头要写声明 内容宽度等于网页的宽度,不允许手指放大
使用媒体查询 使用rem/em

怪异盒子

在这里插入图片描述

在这里插入图片描述
解决:box-sizing:border-box;

多列布局

项目Value

column-count:|设置列数,默认值auto。
column-width:|设置列宽。规定每列最大的宽度
column-gap:|定义列间距,配合line-height可以使文字更加美观。
column-rule:|定义列边框。用法和border一致。同样可以单独设置列边框的属性。如:column-rule-style:solid;
column-span:|定义跨列显示。多用于标题。默认是none,只在本列中显示,可选all跨列所有。

在这里插入图片描述

	.box{
				width: 600px;
				height: 200px;
				column-count: 3;
				column-gap:40px;
				column-rule:1px solid red;
			}
			.tit{
				column-span: all;
				text-align: center;
				font-size: 20px;
				color: red;
			}
  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值