什么是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
x x轴偏移量
y y轴偏移量
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-flow flex-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;
			}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐