CSS3学习笔记
CSS33只是版本号,目前主流浏览器都支持了,IE10以后也开始全面支持CSS3。
- CSS3提供了更加强大的且精准的选择器,提供多种背景填充方案,可以实现渐变颜色,可以改变元素的形状,角度等。可以加阴影效果,报纸布局,弹性盒子,ie6混杂模式的盒模型,新的计量单位,动画效果等
但CSS3并不是所有属性都通过了W3C标准,要查兼容性手册。
CSS3的特性
border-radius –圆角,实现一个叶子的形状,画一个半圆
1
100px 100px 0 0;
box-shadow 盒子的阴影 box-shadow x代表偏移量,y代表偏移量, ,阴影模糊半径,阴影扩展半径,阴影颜色,投影方式
text-shadow
==不过shodow都是性能杀手==
线性渐变 语法:linear-gradient[方向,颜色,颜色,颜色…]
径向渐变 语法:
1
radial-gradient(shape at position ,color[percent ] ,color)
shape :放射的形状,可以为原型circle 或拖延ellipse,position 为圆心位置
border-image
border-origin:content-box / border-box / padding-box
background-clip :
1
border-box / padding-box /conteent-box /no-clip
参数分别从边框,或内填充,或内容区域向外剪裁背景
text :background-clip :text;
background-size :auto |<长度值>|<百分比>
background-position: center
CSS3 选择器:
属性选择器
- E[att ^= “val” ]{….} 选择匹配元素E,且E元素定义了属性att ,其属性值以val 开头的任何字符串
- E[att $= “val”]{….} 选择匹配元素E ,且E元素定义了属性att ,其属性以val为结尾的任何字符串
- E[att *= “val”]{….} 选择匹配元素E, 且E元素定义了属性att ,其属性值任意位置出现了’val’ ,即属性值包含了“val”,位置不限。
- ~=的意思是只要有item 的元素都被选中了。
伪类选择器
伪元素选择:伪元素的效果是需要通过添加一个实际的元素才能达到的.
CSS3 对伪元素进行一定的调整,在以前的基础上增加了一个:也就是
1 | ::first-letter, ::first-line ,::before ::after |
另外还增加了一个 ::selection
root选择器
等同于html ,但权重比html更高
not 选择器
除了那一个,其他都选中
empty 空标签选择器
target 目标元素选择器
被锚点的元素,被选中的元素被进行操作。
伪类选择器:
- first-child 第一个子元素
- last-child 最后一个子元素
- :nth-child(){} 第XXX个子元素,n代表变量自然数
- first-of-type 第一个子元素
- :last-of-child 最后一个子元素
- :only-of-type 唯一一个子元素
表示状态的伪类选择器
1 | :enabled 可用的元素 |
有些表单元素才会有这样的元素,例如输入框,密码框,复选框
:check 已经被选中的状态 check-box
read-only 选中只读的元素
伪元素选择器
::first-letter 首个字母
:first-line 首行
::selection 被选中时候的文本
条件选择器
E > F 直接子元素选择器
E + F 后面紧挨着的兄弟节点
E ~ F 后面的兄弟节点
例如单选框旁的div ,被选中的时候隔壁也被选中。 input:checked + div
CSS3 动画
形状变换
- transform 可以实现元素的形状,角度,位置等变化(包括旋转)。transform: rotateX /Y/ Z( deg);不写默认是Z。
- rotate3d(x , y, z, Angel)
- scale () 以x/y 轴进行缩放
- scale(x,y)接受两个值,如果第二个参数未提供,则第二个参数使用第一个参数的值。
- skew() 对元素进行倾斜扭曲
shew() 接受两个值,分别对应X轴 和Y轴, 如果第二个参数未提供,则默认为0; - translate(x ,[y]) 移动
- 使用CSS3属性实现水平垂直居中当使用:
1 | top: 50%;left: 50%;, 是以左上角为原点,故不处于中心位置。 |
- transition 过渡动画
1 | transition 第一项选择属性(什么width height fontsize opacity ,就是一项属性,用于监听),第二项选择时间,第三项选择速度,第四项指定过渡函数,第五项为动画的延迟时间 |

- animation 动画
- animation-iteration-count 属性主要用来定义动画的播放次数
- animation-direction 。normal 正常播放, reverse 反向播放
- animation-play-state 用来控制动画的播放状态 running播放,paused 暂停。
CSS 多列布局
为了能在Web页面中方便实现类似报纸,杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局。
语法:
1 | columns:[column-width][column-count] columns:2; 变成两列 |
设置列与列之间的宽度,直接用数值即可(eg:10px)
column-span 设置多列布局的子元素可以跨列,类似标题效果。
CSS3 盒模型:
IE6混杂模式,首先要触发一个怪异模式。 在IE6混杂模式盒模型下(IE6及以下浏览器),内容宽度(盒子) = width - padding -border.width包含padding 和 border
W3C标准下的空间高度(盒子)= width +padding +border; width 为内容宽度,不包括padding 和 border
CSS3 弹性盒子 display :flex
==flex为复合属性,必须配合父元素display :flex使用==
如图

6个属性
flex-grow 把盒子分成多少份,要是1 的话就分成1分自己独占。默认是0;
flex-shrink 多出盒子的部分,按照比例的大小砍掉相应的大小,即比例越大,被砍的越大。
flex-basis 伸缩基准值,占据主轴空间。
flex order 可以进行排序,从小到大进行排列
1
2
3
4align-self {
auto / flex-start /flex-end / center /baseline(基准线对齐) /stretch
}
主轴 /侧轴/交叉轴flex-direction 决定主轴的方向
row 从左向右, row-reverse , column ,column-reverseflex-wrap 是否换行
flex-flow 是dirction 和 wrap的简写方式
justify-content
1.flex-start 左对齐- flex-end 右对齐
- conter 居中
- space-between 两端对齐,项目之间的间隔都相等
- space-around 每个项目两侧的间隔相等。
- align-items 属性如何在侧轴上对齐
- flex-start 交叉轴的起点对齐。
- flex-end 交叉轴终点对齐
- center 交叉轴中点对齐
- baseline 项目的第一行文字基准线对齐
- stretch 如果未设置高度或设为auton ,将占满整个容器的高度
transparent 透明色颜色值。
CSS3响应式布局
通过设备不同的宽度,相应出不同的布局。这就叫做响应式布局。
1 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
媒体查询:媒体查询是向不同设备提供不同样式的一种方式,为每种类型的用户提供了更佳的体验。
CSS2 :mdeia type 是CSS2中一个非常有用的属性,通过media type 我们可以对不同设备执行不同的样式
CSS3 mdeia query 是CSS3对meida type的增强。
添加方式:
1 | 第一种插入样式,需要多个CSS文件 |
第二种插入方式
1 | @media screen and (max-width:300px){ |
and not only 这三个值。only是仅有的意思。 and是再添加这个属性的意思
demo–>从四列变三列再变成两列一列的CSS3响应式布局
1 | .wrapper{ |