突破css3

1.兼容性

前缀 浏览器
-webkit Chrome和Safairi
-moz firefox
-ms IE
-o opera

2.边框

  • 圆角效果
border-radius:左上角 右上角 右下角 左下角
实心上半圆:把高度(height)设为宽度(width)的一半,并且只设置左上角和右上角的半径与元素的高度一致
实心圆:把宽度(width)与高度(height)值设置为一致(也就是正方形),并且四个圆角值都设置为它们值的一半。
  • 阴影
box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];
  • border-image

3.颜色

  • RGBA
rgba(R,G,B,A)
  • 渐变色彩

第一个参数:指定渐变方向,可以用“角度”的关键词或“英文”来表示

4.文字与字体

  • text-overflow
    text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出。


但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,
还须定义强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden),只有这样才能实现溢出文本显示省略号的效果,
text-overflow:ellipsis; 
overflow:hidden; 
white-space:nowrap; 

word-wrap也可以用来设置文本行为,当前行超过指定容器的边界时是否断开转行。


  • 嵌入字体
    @font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体。
@font-face {
    font-family : 字体名称;
    src : 字体文件在服务器上的相对或绝对路径;
}
  • 文本阴影
text-shadow: X-Offset Y-Offset blur color;
X-Offset:表示阴影的水平偏移距离,其值为正值时阴影向右偏移,反之向左偏移;      
Y-Offset:是指阴影的垂直偏移距离,如果其值是正值时,阴影向下偏移,反之向上偏移;
Blur:是指阴影的模糊程度,其值不能是负值,如果值越大,阴影越模糊,反之阴影越清晰,如果不需要阴影模糊可以将Blur值设置为0;
Color:是指阴影的颜色,其可以使用rgba色。

5.与背景有关样式

  • background-origin 设置元素背景图片的原始起始位置
background-origin : border-box | padding-box | content-box;
//表示背景图片是从边框,还是内边距(默认值),或者是内容区域开
始显示
*背景图片必须为no-repeat*
  • background-clip 将背景图片做适当的裁剪以适应实际需要
background-clip : border-box | padding-box | content-box | no-clip
//参数分别表示从边框、或内填充,或者内容区域向外裁剪背景。no-clip表示不裁切,和参数border-box显示同样的效果。backgroud-clip默认值为border-box
  • background-size 设置背景图片的大小,以长度值或百分比显示,还可以通过cover和contain来对图片进行伸缩
background-size: auto | <长度值> | <百分比> | cover | contain
1、auto:默认值,不改变背景图片的原始高度和宽度;
2、<长度值>:成对出现如200px 50px,将背景图片宽高依次设置为前面两个值,当设置一个值时,将其作为图片宽度值来等比缩放;
3、<百分比>:0%~100%之间的任何值,将背景图片宽高依次设置为所在元素宽高乘以前面百分比得出的数值,当设置一个值时同上;
4、cover:顾名思义为覆盖,即将背景图片等比缩放以填满整个容器;
5、contain:容纳,即将背景图片等比缩放至某一边紧贴容器边缘为止。
  • multiple backgrounds 多重背景
background : [background-color] | [background-image] | [background-position][/background-size] | [background-repeat] | [background-attachment] | [background-clip] | [background-origin],...

6.属性选择器

  • 属性选择器


<a href="xxx.pdf">我链接的是PDF文件</a>
<a href="#" class="icon">我类名是icon</a>
<a href="#" title="我的title是more">我的title是more</a>
a[class^=icon]{
  background: green;
  color:#fff;
}
a[href$=pdf]{
  background: orange;
  color: #fff;
}
a[title*=more]{
  background: blue;
  color: #fff;
}
  • 伪类选择器
:root选择器,匹配元素E所在文档的根元素。在HTML文档中,根元素始终是<html>
:not选择器称为否定选择器,可以选择除某个元素之外的所有元素
:empty选择器表示的就是空。用来选择没有任何内容的元素,这里没有内容指的是一点内容都没有,哪怕是一个空格。
:target选择器称为目标选择器,用来匹配文档(页面)的url的某个标志符的目标元素
:first-child”选择器表示的是选择父元素的第一个子元素的元素E
:last-child”选择器选择的是元素的最后一个子元素
:nth-child(n)选择器用来定位某个父元素的一个或多个特定的子元素
:nth-last-child(n)选择器用来从某父元素的最后一个子元素开始计算,来选择特定的元素
:first-of-type指定了元素的类型,其主要用来定位一个父元素下的某个类型的第一个子元素。
:nth-of-type(n)只计算父元素中指定的某种类型的子元素
:last-of-type选择是父元素下的某个类型的最后一个子元素
:nth-last-of-type(n)选择父元素中指定的某种子元素类型,但它的起始方向是从最后一个子元素开始
:only-child匹配的元素的父元素中仅有一个子元素,而且是一个唯一的子元素
:only-of-type表示一个元素他有很多个子元素,而其中只有一种类型的子元素是唯一的
:enabled选择器
:disabled选择器(需要在表单元素的HTML中设置“disabled”属性)
:checked选择器表示的是选中状态
::selection选择器
:read-only用来指定处于只读状态元素的样式,元素中设置了“readonly=’readonly’
:read-write主要用来指定当元素处于非只读状态时的样式
::before和::after这两个主要用来给元素的前面或后面插入内容,这两个常和"content"配合使用,使用的场景最多的就是清除浮动。

7.动画

  • 旋转
    通过指定的角度参数使元素相对原点进行旋转,如果这个值为正值,元素相对原点中心顺时针旋转;如果这个值为负值,元素相对原点中心逆时针旋转
transform: rotate(45deg);
  • 扭曲
    扭曲skew()函数能够让元素倾斜显示,它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜。
skew(x,y)//使元素在水平和垂直方向同时扭曲
skewX(x)//仅使元素在水平方向扭曲变形
skewY(y)//仅使元素在垂直方向扭曲变形
  • 缩放
    缩放 scale()函数 让元素根据中心原点对对象进行缩放。
scale(X,Y)//使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)
scaleX(x)//元素仅水平方向缩放(X轴缩放)
scaleY(y)//元素仅垂直方向缩放(Y轴缩放)
  • 位移
    translate()函数可以将元素向指定的方向移动
translate(x,y)//水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)
translateX(x)//仅水平方向移动(X轴移动)
translateY(Y)//仅垂直方向移动(Y轴移动)
  • 矩阵
    matrix() 是一个含六个值的(a,b,c,d,e,f)变换矩阵,就是基于水平方向(X轴)和垂直方向(Y轴)重新定位元素
  • 原点
    通过transform-origin来对元素进行原点位置改变,使元素原点不在元素的中心位置,其取值见下图
  • 过渡属性
    就是通过鼠标的单击、获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值。
    在CSS中创建简单的过渡效果可以从以下几个步骤来实现:
    第一,在默认样式中声明元素的初始状态样式;
    第二,声明过渡元素最终状态样式,比如悬浮状态;
    第三,在默认样式中通过添加过渡函数,添加一些不同的样式。
transition-property:指定过渡或动态模拟的CSS属性,值为width、height、background等属性
transition-duration:指定完成过渡所需的时间
transition-timing-function:指定过渡函数,值为ease/linear/ease-in/ease-out/ease-in-out
transition-delay:指定开始出现的延迟时间
可以合写为:
transition: all .5s ease-in 0.2s;
  • keyframe 关键帧
    在@keyframes中定义动画名称时,其中0%和100%还可以使用关键词from和to来代表,其中0%对应的是from,100%对应的是to。
@keyframes wobble {
  0% {
    margin-left: 100px;
    background:green;
  }
  40% {
    margin-left:150px;
    background:orange;
  }
  60% {
    margin-left: 75px;
    background: blue;
  }
  100% {
    margin-left: 100px;
    background: red;
  }
}
div:hover{
  animation: wobble 5s ease .1s;
}
  • 调用动画
    animation-name属性主要是用来调用 @keyframes 定义好的动画。需要特别注意: animation-name 调用的动画名需要和“@keyframes”定义的动画名称完全一致(区分大小写),如果不一致将不具有任何动画效果。
animation-name: none | IDENT[,none|DENT]*;
/*
1、IDENT是由 @keyframes 创建的动画名,上面已经讲过了(animation-name 调用的动画名需要和“@keyframes”定义的动画名称完全一致);
2、none为默认值,当值为 none 时,将没有任何动画效果,这可以用于覆盖任何动画。
*/
  • 设置动画播放时间
    animation-duration主要用来设置CSS3动画播放时间,其使用方法和transition-duration类似,是用来指定元素播放动画所持续的时间长,也就是完成从0%到100%一次动画所需时间
animation-duration: <time>[,<time>]*
//取值<time>为数值,单位为秒,其默认值为“0”,这意味着动画周期为“0”,也就是没有动画效果(如果值为负值会被视为“0”)。
  • 设置动画播放方式
    animation-timing-function属性主要用来设置动画播放方式
animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)]*
  • 设置动画开始播放时间
    animation-delay属性用来定义动画开始播放的时间,用来触发动画播放的时间点
animation-delay:<time>[,<time>]*
  • 设置动画播放此时
    animation-iteration-count属性主要用来定义动画的播放次数。
animation-iteration-count: infinite | <number> [, infinite | <number>]*
/*
1、其值通常为整数,但也可以使用带有小数的数字,其默认值为1,这意味着动画将从开始到结束只播放一次。
2、如果取值为infinite,动画将会无限次的播放。
*/
  • 设置动画播放方向
    animation-direction属性主要用来设置动画播放方向
animation-direction:normal | alternate [, normal | alternate]*
/*
其主要有两个值:normal、alternate
1、normal是默认值,如果设置为normal时,动画的每次循环都是向前播放;
2、另一个值是alternate,他的作用是,动画播放在第偶数次向前播放,第奇数次向反方向播放。
*/
  • 设置动画的播放状态
    animation-play-state属性主要用来控制元素动画的播放状态。
animation-play-state:paused|running;
//paused将正在播放的动画停下来,也可以通过running将暂停的动画重新播放
  • 设置动画时间外属性
    animation-fill-mode属性定义在动画开始之前和结束之后发生的操作。
属性值 效果
none 默认值,表示动画将按预期进行和结束,在动画完成其最后一帧时,动画会反转到初始帧处
forwards 表示动画在结束后继续应用最后的关键帧的位置
backwards 会在向元素应用动画样式时迅速应用动画的初始帧
both 元素动画同时具有forwards和backwards效果

8.布局

  • 多列布局
columns:<column-width> || <column-count>
//定义列宽和列数
  • 列间距
column-gap: normal || <length>
//列间距,normal为默认值1em
  • 列表边框
column-rule:<column-rule-width>|<column-rule-style>|<column-rule-color>
//用来定义列与列之间的边框宽度、边框样式和边框颜色
属性值 属性值说明
column-rule-width 类似于border-width属性,主要用来定义列边框的宽度,其默认值为“medium”,column-rule-width属性接受任意浮点数,但不接收负值。但也像border-width属性一样,可以使用关键词:medium、thick和thin
column-rule-style 类似于border-style属性,主要用来定义列边框样式,其默认值为“none”。column-rule-style属性值与border-style属值相同,包括none、hidden、dotted、dashed、solid、double、groove、ridge、inset、outset
column-rule-color 类似于border-color属性,主要用来定义列边框颜色,其默认值为前景色color的值,使用时相当于border-color。column-rule-color接受所有的颜色。如果不希望显示颜色,也可以将其设置为transparent(透明色)
  • 跨列设置
column-span: none | all
//不跨任何列和跨所有列
  • 盒子模型
box-sizing: content-box | border-box | inherit
属性值 属性值说明
content-box 元素的宽度和高度(width/height)等于元素边框宽度(border)加上元素内距(padding)加上元素内容宽度或高度(content width/ height),也就是element width/height = border + padding + content width / height
border-box 元素的宽度或高度等于元素内容的宽度或高度
inherit 使元素继承父元素的盒模型模式

9.Media Queries

  • 引用媒体
    三种
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
//link方法
@importurl(reset.css) screen; 
//import方法
@media screen {
   选择器{/*你的样式代码写在这里…*/}
}
//media方法
  • 使用方法
@media 媒体类型and (媒体特性){你的样式}
最大宽度max-width
最小宽度min-width
not 关键词
only关键词

10.其他重要属性

resize属性主要是用来改变元素尺寸大小的,其主要目的是增强用户体验

resize: none | both | horizontal | vertical | inherit
属性值 取值说明
none 用户不能拖动元素修改尺寸大小
both 用户可以拖动元素,同时修改元素的宽度和高度
horizontal 用户可以拖动元素,仅可以修改元素的宽度,但不能修改元素的高度
vertical 用户可以拖动元素,仅可以修改元素的高度,但不能修改元素的宽度
inherit 继承父元素的resize属性值
  • outline
outline: [outline-color] || [outline-style] || [outline-width] || [outline-offset] || inherit
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,730评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,303评论 0 11
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,619评论 0 7
  • 一、HTML5 1.1 认识HTML5 HTML5并不仅仅只是作为HTML标记语言的一个最新版本,更重要的是它制定...
    福尔摩鸡阅读 15,741评论 14 51
  • 1.CSS3 边框 border-radius CSS属性用来设置边框圆角。当使用一个半径时确定一个圆形;当使用两...
    garble阅读 631评论 0 0