css3有哪些新属性
• 边框:
border- radius:圆角边框
box- shadow:边框阴影,box- shadow: 10 px 10 px 5 px #888888
border- image:边框图片,border- image: url ( border. png) 30 30 round;
• 背景:
background- size:规定背景图片的尺寸,background- size: 63 px 100 px
background- origin:规定背景图片的定位区域,背景图片可以放置于 content- box、padding- box 或 border- box 区,background- origin: content- box; CSS3 允许您为元素使用多个背景图像。
background- image: url ( bg_flower. gif) , url ( bg_flower_2. gif) ;
• 文本效果:
text- shadow:向文本应用阴影,可以规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色。text- shadow: 5 px 5 px 5 px #FF0000;
word- wrap:允许文本进行换行。word- wrap: break - word;
• 布局:
弹性布局:flex
网格布局:grid
• 动画:Animation
• 过渡:transition
• 变形:transfrom
• 颜色:rgba
• 渐变
• 媒体查询 就在监听屏幕尺寸的变化,在不同尺寸的时候显示不同的样式!
css哪些属性可以继承
字体相关:font, font- size, font- weight, font- family, font- style, font- variant, line- height
文本相关: letter- spacing, word- spacing, text- align, text- indent, text- transform,
列表相关:list- style- image, list- style- position, list- style- type, list- style
颜色:color
单行文本/多行文本省略号
单:
white- space: nowrap;
overflow: hidden;
text- overflow: ellipsis;
多
overflow: hidden;
text- overflow: ellipsis;
display: - webkit- box;
- webkit- line- clamp: 3 ;
- webkit- box- orient: vertical;
1rem、1em、1vh、1px各自代表的含义
• rem:rem是全部的长度都相对于根元素< html> 元素。通常做法是给html元素设置一个字体大小,然后
其他元素的长度单位就为rem。
• em:子元素字体大小,em是相对于父元素字体大小,元素的width/ height/ padding/ margin用em的话是相对于该元素的font- size
• vw/ vh:全称是 Viewport Width 和 Viewport Height ,视窗的宽度和高度,相当于 屏幕宽度和高度的
1 % ,不过,处理宽度的时候% 单位更合适,处理高度的 话 vh 单位更好。
• px:px像素(Pixel )。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。一般电脑的分辨率有{ 1920 * 1024 } 等不同的分辨率,1920 * 1024 前者是屏幕宽度总共有1920 个像素, 后者则是高度为1024 个像素
BFC规范
• 浮动元素:float 除 none 以外的值
• 绝对定位元素:position ( absolute、fixed)
• display: 为 inline- block、table- cells、flex
• overflow:除了 visible 以外的值 ( hidden、auto、scroll) 浮动元素:float 除 none 以外的值
CSS Hack
CSS Hack 用来解决浏览器的兼容性问题,为不同版本的浏览器定制编写不同的CSS效果,使用每个浏览器单独识别的样式代码,控制浏览器的显示样式。
Hack 分类
1. CSS属性前缀法
2. 选择器前缀法
3. IE条件注释法
css水平、垂直居中的写法
• 水平居中
行内元素: text- align: center
块级元素: margin: 0 auto
position: absolute + left: 50 % + transform: translateX ( - 50 % )
display: flex + justify- content: center
• 垂直居中
设置line- height 等于height
position:absolute + top: 50 % + transform: translateY ( - 50 % )
display: flex + align- items: center
display: table+ display: table- cell + vertical- align: middle;
画一个三角形
border- width: 100 px;
border- style: solid;
border- color: transparent #0099 CC transparent transparent;
0.5橡树
height: 1 px;
transform: scale ( 0.5 ) ;
label标签的用法
label标签主要是方便鼠标点击使用,扩大可点击的范围,增强用户操作体验
盒模型
盒模型的组成,由里向外content, padding, border, margin.
在IE盒子模型中,width表示content+ padding+ border这三个部分的宽度
在标准的盒子模型中,width指content部分的宽度
box- sizing的使用
box- sizing: content- box 是W3C盒子模型
box- sizing: border- box 是IE盒子模型
box- sizing的默认属性是content- box
选择器有哪些
ID选择器
CLASS选择器
标签选择器
通配选择器
群组选择器
层次选择器
属性选择器
伪类选择器
CSS伪类用于向某些元素添加特殊的效果。一般用于初始样式添加不上的时候,用伪类来添加。
: link、: visited、: hover、: active
1. link visited 只能给a标签加,hover和active 可以给所有的标签加。
2. 如果四个伪类都生效,一定要注意顺序 : L V H A 。
3. 一般网站只这样去设置:a{ } a: hover{ } 。
: after、: before
: checked、: disabled
: focus
: nth- of- type ( ) 、 : nth- child ( )
: first- of- type、 : first- child
: last- of- type、 : last- child
: only- of- type、 : only- child
css优先级
第一优先级:无条件优先的属性只需要在属性后面使用* * !important* * 。它会覆盖页面内任何位置定义的元素样式。ie6不支持该属性。
第二优先级:在html中给元素标签加style,即内联样式。该方法会造成css难以管理,所以不推荐使用。
第三优先级:由一个或多个id选择器来定义。例如,#id{ margin: 0 ; } 会覆盖. classname{ margin: 3 pxl}
第四优先级:由一个或多个类选择器、属性选择器、伪类选择器定义。如. classname{ margin: 3 px} 会覆盖div{ margin: 6 px; }
第五优先级:由一个或多个类型选择器定义。如div{ marigin: 6 px; } 覆盖* { margin: 10 px;}
第六优先级:通配选择器,如* { marigin: 6 px; }
4 个等级的定义如下:
第一等级:代表内联样式,如style= "" ,权值为 1000
第二等级:代表id选择器,如#content,权值为100
第三等级:代表类,伪类和属性选择器,如. content,权值为10
第四等级:代表标签选择器和伪元素选择器,如div p,权值为1
注意:通用选择器(* ),子选择器(> ),和相邻同胞选择器(+ )并不在这个等级中,所以他们的权值为0 。
calc, support, media各自的含义及用法?
@support 主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写一套样式,如果不支持某个属性,你也可以提供另外一套样式作为替补。
calc ( ) 函数用于动态计算长度值。 calc ( ) 函数支持 "+" , "-" , "*" , "/" 运算;
@media 查询,你可以针对不同的媒体类型定义不同的样式。
min-width/max-width和min-height/max-height属性间多的覆盖规则
max- width会覆盖width, 即使width是行内样式或者设置了!important
min- width会覆盖max- width, 此规则发生在min- width和max- width冲突的时候
块元素,行内元素,行内块元素的区别
• 行内元素: display: inline
行内元素:a、b、span、i、em、img、u、br、
* 可以和别的行内元素放在一起
* 不能设置宽高、由内容撑开
• 块元素:display: block;
块元素:div、p、h1- h6、dl、hr、pre、table、ul、li、form
* 所有的块级元素独占一行显示
* 可以设置宽高
• 行内块: display: inline- block;
行内块:input、img、button、value、label、select、option
* 可以设置宽高、并且在一行上显示
* 默认对齐的是基线
伪类与伪元素区别
伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息。
通常表示获取不存在与DOM树中的信息,或获取不能被常规CSS选择器获取的信息。
: hover
: focus
: empty
伪元素本质上是创建了一个有内容的虚拟容器。这个容器不包含任何DOM元素,但是可以包含内容。另外,开发者还可以为伪元素定制样式。
: : selection
: : first- line / first- letter
: : before / after
link 标签和 import 标签的区别
link 属于 html 标签,而@import 是 css 提供的
页面被加载时,link 会同时被加载,而@import 引用的 css 会等到页面加载结束后加 载。
link 是 html 标签,因此没有兼容性,而@import 只有 IE5 以上才能识别。
link 方式样式的权重高于@import 的。
animation与transition区别
transition需要触发一个事件才会随着时间改变其CSS属性;
animation在不需要触发任何事件的情况下,也可以显式的随时间变化来改变元素CSS属性,达到一种动画的效果
css过渡与动画区别总结:
1 、动画不需要事件触发,过渡需要。
2 、过渡只有一组(两个:开始- 结束) 关键帧,动画可以设置多个。
display与visibility区别
• display: none; 隐藏相应的元素。元素在文档布局中不再给它分配空间,它的各边会合拢,就当它不存在。
• visibility: hidden; 隐藏相应元素。元素在文档布局中仍保留原来的空间。
canvas和svg的区别
canvas通过javascript绘制图形(2 D),canvas无法对已绘制的图像进行操作、修改
SVG是一种使用XML描述2 D图形的语言,canvas需要在js中绘制,而SVG只需要在html里面通过标签绘制即可