首页 web前端 css教程 总结CSS3的新特性(面试必备)

总结CSS3的新特性(面试必备)

Sep 07, 2017 am 09:38 AM
css css3

CSS是一门不断在发展的“语言”,在我们日常面试前端工作的时候是必不可少的一个知识点,下面这篇文章主要给大家分享介绍了关于前端面试必备之CSS3新特性的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

之前我们已经给大家介绍了关于html5的新特性,除了html5的新特性,CSS3的新特性也是面试中经常被问到的。下面话不多说了,需要的朋友们跟随小编来一起看看详细的介绍吧。

选择器

CSS3中新添加了很多选择器,解决了很多之前需要用javascript才能解决的布局问题。

  1. element1~element2: 选择前面有element1元素的每个element2元素。

  2. [attribute^=value]: 选择某元素attribute属性是以value开头的。

  3. [attribute$=value]: 选择某元素attribute属性是以value结尾的。

  4. [attribute*=value]: 选择某元素attribute属性包含value字符串的。

  5. E:first-of-type: 选择属于其父元素的首个E元素的每个E元素。

  6. E:last-of-type: 选择属于其父元素的最后E元素的每个E元素。

  7. E:only-of-type: 选择属于其父元素唯一的E元素的每个E元素。

  8. E:only-child: 选择属于其父元素的唯一子元素的每个E元素。

  9. E:nth-child(n): 选择属于其父元素的第n个子元素的每个E元素。

  10. E:nth-last-child(n): 选择属于其父元素的倒数第n个子元素的每个E元素。

  11. E:nth-of-type(n): 选择属于其父元素第n个E元素的每个E元素。

  12. E:nth-last-of-type(n): 选择属于其父元素倒数第n个E元素的每个E元素。

  13. E:last-child: 选择属于其父元素最后一个子元素每个E元素。

  14. :root: 选择文档的根元素。

  15. E:empty: 选择没有子元素的每个E元素(包括文本节点)。

  16. E:target: 选择当前活动的E元素。

  17. E:enabled: 选择每个启用的E元素。

  18. E:disabled: 选择每个禁用的E元素。

  19. E:checked: 选择每个被选中的E元素。

  20. E:not(selector): 选择非selector元素的每个元素。

  21. E::selection: 选择被用户选取的元素部分。

Transition,Transform和Animation

这三个特性是CSS3新增的和动画相关的特性。

Transition

Transition可以在当元素从一种样式变换为另一种样式时为元素添加效果,而不用使用Flash动画或JavaScript。

Transition有如下属性:

  1. transition-property: 规定应用过渡的CSS属性的名称。

  2. transition-duration: 规定完成过渡效果需要多长时间。

  3. transition-delay: 规定过渡效果何时开始,默认是0。

  4. transition-timing-function: 规定过渡效果的时间曲线,默认是”ease”,还有linear、ease-in、ease-out、ease-in-out和cubic-bezier等过渡类型。

  5. transition: 简写属性,用于在一个属性中设置四个过渡属性。

在一个例子中使用所有过渡属性如下:


p {
    transition-property: width;
    transition-duration: 1s;
    transition-timing-function: linear;
    transition-delay: 2s;
    /* Firefox 4 */
    -moz-transition-property:width;
    -moz-transition-duration:1s;
    -moz-transition-timing-function:linear;
    -moz-transition-delay:2s;
    /* Safari 和 Chrome */
    -webkit-transition-property:width;
    -webkit-transition-duration:1s;
    -webkit-transition-timing-function:linear;
    -webkit-transition-delay:2s;
    /* Opera */
    -o-transition-property:width;
    -o-transition-duration:1s;
    -o-transition-timing-function:linear;
    -o-transition-delay:2s;
}
登录后复制

使用transition属性简写如下:


p {
    transition: width 1s linear 2s;
    /* Firefox 4 */
    -moz-transition:width 1s linear 2s;
    /* Safari and Chrome */
    -webkit-transition:width 1s linear 2s;
    /* Opera */
    -o-transition:width 1s linear 2s;
}
登录后复制

Transform

Transform用来向元素应用各种2D和3D转换,该属性允许我们对元素进行旋转、缩放、移动或倾斜等操作。使用方式如下:


p{
    transform:rotate(7deg);
    -ms-transform:rotate(7deg);     /* IE 9 */
    -moz-transform:rotate(7deg);    /* Firefox */
    -webkit-transform:rotate(7deg); /* Safari 和 Chrome */
    -o-transform:rotate(7deg);  /* Opera */
}
登录后复制

变换类型

transform可以有各种变换类型,即属性值:

  1. none: 定义不进行转换。

  2. matrix(n,n,n,n,n,n): 定义2D转换,使用六个值的矩阵。

  3. matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n): 定义3D转换,使用16个值的4x4矩阵。

  4. translate(x,y): 定义2D位移转换。

  5. translate3d(x,y,z): 定义3D位移转换。

  6. translateX(x): 定义位移转换,只是用X轴的值。

  7. translateY(y): 定义位移转换,只是用Y轴的值。

  8. translateZ(z): 定义3D位移转换,只是用Z轴的值。

  9. scale(x,y): 定义2D缩放转换。

  10. scale3d(x,y,z): 定义3D缩放转换。

  11. scaleX(x): 通过设置X轴的值来定义缩放转换。

  12. scaleY(y): 通过设置Y轴的值来定义缩放转换。

  13. scaleZ(z): 通过设置Z轴的值来定义3D缩放转换。

  14. rotate(angle): 定义2D旋转,在参数中规定角度。

  15. rotate3d(x,y,z,angle): 定义3D旋转。

  16. rotateX(angle): 定义沿着X轴的3D旋转。

  17. rotateY(angle): 定义沿着Y轴的3D旋转。

  18. rotateZ(angle): 定义沿着Z轴的3D旋转。

  19. skew(x-angle,y-angle): 定义沿着X和Y轴的2D倾斜转换。

  20. skewX(angle): 定义沿着X轴的2D倾斜转换。

  21. skewY(angle): 定义沿着Y轴的2D倾斜转换。

  22. perspective(n): 为3D转换元素定义透视视图。

浏览器支持

Internet Explorer 10、Firefox、Opera 支持 transform 属性。

Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

Opera 只支持 2D 转换。

Animation

Animation让CSS拥有了可以制作动画的功能。使用CSS3的Animation制作动画我们可以省去复杂的js代码。使用方法大概如下:


@-webkit-keyframes anim1 { 
   0% { 
        opacity: 0; 
        font-size: 12px; 
   } 
   100% { 
        opacity: 1; 
        font-size: 24px; 
   } 
} 
.anim1p { 
   -webkit-animation-name: anim1 ; 
   -webkit-animation-duration: 1.5s; 
   -webkit-animation-iteration-count: 4; 
   -webkit-animation-direction: alternate; 
   -webkit-animation-timing-function: ease-in-out; 
}
登录后复制

具体用法可以参考教程:CSS3 Animation。

边框

CSS3新增了三个边框属性,分别是border-radius、box-shadow和border-image。border-radius可以创建圆角边框,box-shadow可以为元素添加阴影,border-image可以使用图片来绘制边框。IE9+支持border-radius和box-shadow属性。Firefox、Chrome以及Safari支持所有新的边框属性。

背景

CSS3新增了几个关于背景的属性,分别是background-clip、background-origin、background-size和background-break。

background-clip

background-clip属性用于确定背景画区,有以下几种可能的属性:

  1. background-clip: border-box; 背景从border开始显示

  2. background-clip: padding-box; 背景从padding开始显示

  3. background-clip: content-box; 背景显content区域开始显示

  4. background-clip: no-clip; 默认属性,等同于border-box

通常情况,背景都是覆盖整个元素的,利用这个属性可以设定背景颜色或图片的覆盖范围。

background-origin

background-clip属性用于确定背景的位置,它通常与background-position联合使用,可以从 border、padding、content来计算background-position(就像background-clip)。

  1. background-origin: border-box; 从border开始计算background-position

  2. background-origin: padding-box; 从padding开始计算background-position

  3. background-origin: content-box; 从content开始计算background-position

background-size

background-size属性常用来调整背景图片的大小,主要用于设定图片本身。有以下可能的属性:

  1. background-size: contain; 缩小图片以适合元素(维持像素长宽比)

  2. background-size: cover; 扩展元素以填补元素(维持像素长宽比)

  3. background-size: 100px 100px; 缩小图片至指定的大小

  4. background-size: 50% 100%; 缩小图片至指定的大小,百分比是相对包 含元素的尺寸

background-break

CSS3中,元素可以被分成几个独立的盒子(如使内联元素span跨越多行),background-break 属性用来控制背景怎样在这些不同的盒子中显示。

  1. background-break: continuous; 默认值。忽略盒之间的距离(也就是像元素没有分成多个盒子,依然是一个整体一样)

  2. background-break: bounding-box; 把盒之间的距离计算在内;

  3. background-break: each-box; 为每个盒子单独重绘背景。

文字效果

word-wrap

CSS3中,word-wrap属性允许您允许文本强制文本进行换行,即这意味着会对单词进行拆分。所有主流浏览器都支持 word-wrap 属性。


p {
    word-wrap:break-word;
}
登录后复制

text-overflow

它与word-wrap是协同工作的,word-wrap设置或检索当当前行超过指定容器的边界时是否断开转行,而 text-overflow则设置或检索当当前行超过指定容器的边界时如何显示。对于“text-overflow”属性,有“clip”和“ellipsis”两种可供选择。

text-shadow

CSS3中,text-shadow可向文本应用阴影。能够规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色。


h1{
    text-shadow: 5px 5px 5px #FF0000;
}
登录后复制

text-decoration

CSS3里面开始支持对文字的更深层次的渲染,具体有三个属性可供设置:

  1. text-fill-color: 设置文字内部填充颜色

  2. text-stroke-color: 设置文字边界填充颜色

  3. text-stroke-width: 设置文字边界宽度

渐变

CSS3新增了渐变效果,包括linear-gradient(线性渐变)和radial-gradient(径向渐变)。具体用法参考教程:CSS3 Gradient

@font-face特性

在CSS3之前,web设计师必须使用已在用户计算机上安装好的字体。通过CSS3,web设计师可以使用他们喜欢的任意字体。当您您找到或购买到希望使用的字体时,可将该字体文件存放到web服务器上,它会在需要时被自动下载到用户的计算机上。字体是在 CSS3 @font-face 规则中定义的。Firefox、Chrome、Safari以及Opera支持 .ttf(True Type Fonts)和 .otf(OpenType Fonts)类型的字体。IE9+ 支持新的@font-face规则,但是仅支持 .eot类型的字体(Embedded OpenType)。

在新的@font-face规则中,必须首先定义字体的名称(比如myFont),然后指向该字体文件。

如需为HTML元素使用字体,请通过font-family属性来引用字体的名称 (myFont)


@font-face {
    font-family: myFirstFont;
    src: url('Sansation_Light.ttf'),
         url('Sansation_Light.eot'); /* IE9+ */
}
p{
    font-family:myFirstFont;
}
登录后复制

多列布局

通过CSS3,能够创建多个列来对文本进行布局,IE10和Opera支持多列属性。Firefox 需要前缀-moz-,Chrome和Safari需要前缀-webkit-。主要有如下三个属性:

  1. column-count: 规定元素应该被分隔的列数。

  2. column-gap: 规定列之间的间隔。

  3. column-rule: 设置列之间的宽度、样式和颜色规则


p{
    -moz-column-count:3;    /* Firefox */
    -webkit-column-count:3; /* Safari 和 Chrome */
    column-count:3;
    -moz-column-gap:40px;       /* Firefox */
    -webkit-column-gap:40px;    /* Safari 和 Chrome */
    column-gap:40px;
    -moz-column-rule:3px outset #ff0000;    /* Firefox */
    -webkit-column-rule:3px outset #ff0000; /* Safari and Chrome */
    column-rule:3px outset #ff0000;
}
登录后复制

用户界面

CSS3中,新的用户界面特性包括重设元素尺寸、盒尺寸以及轮廓等。Firefox、Chrome以及Safari 支持resize属性。IE、Chrome、Safari以及Opera支持box-sizing属性。Firefox需要前缀-moz-。
所有主流浏览器都支持outline-offset属性,除了IE。

resize

resize 属性规定是否可由用户调整元素尺寸。如果希望此属性生效,需要设置元素的 overflow 属性,值可以是 auto、hidden 或 scroll。


p{
    resize:both; /* none|both|horizontal|vertical; */
    overflow:auto;
}
登录后复制

box-sizing

box-sizing属性可设置的值有content-box、border-box和inherit。

  1. content-box: padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即 (Element width = width + border + padding),此属性表现为标准模式下的盒模型。

  2. border-box: padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 (Element width = width),此属性表现为怪异模式下的盒模型。

outline-offset

outline-offset属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。

以上是总结CSS3的新特性(面试必备)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

HTML,CSS和JavaScript的角色:核心职责 HTML,CSS和JavaScript的角色:核心职责 Apr 08, 2025 pm 07:05 PM

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

vue中怎么用bootstrap vue中怎么用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

bootstrap怎么写分割线 bootstrap怎么写分割线 Apr 07, 2025 pm 03:12 PM

创建 Bootstrap 分割线有两种方法:使用 标签,可创建水平分割线。使用 CSS border 属性,可创建自定义样式的分割线。

bootstrap怎么调整大小 bootstrap怎么调整大小 Apr 07, 2025 pm 03:18 PM

要调整 Bootstrap 中元素大小,可以使用尺寸类,具体包括:调整宽度:.col-、.w-、.mw-调整高度:.h-、.min-h-、.max-h-

bootstrap怎么设置框架 bootstrap怎么设置框架 Apr 07, 2025 pm 03:27 PM

要设置 Bootstrap 框架,需要按照以下步骤:1. 通过 CDN 引用 Bootstrap 文件;2. 下载文件并将其托管在自己的服务器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根据需要编译 Sass/Less;5. 导入定制文件(可选)。设置完成后,即可使用 Bootstrap 的网格系统、组件和样式创建响应式网站和应用程序。

bootstrap怎么插入图片 bootstrap怎么插入图片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入图片有以下几种方法:直接插入图片,使用 HTML 的 img 标签。使用 Bootstrap 图像组件,可以提供响应式图片和更多样式。设置图片大小,使用 img-fluid 类可以使图片自适应。设置边框,使用 img-bordered 类。设置圆角,使用 img-rounded 类。设置阴影,使用 shadow 类。调整图片大小和位置,使用 CSS 样式。使用背景图片,使用 background-image CSS 属性。

bootstrap怎么看日期 bootstrap怎么看日期 Apr 07, 2025 pm 03:03 PM

答案:可以使用 Bootstrap 的日期选择器组件在页面中查看日期。步骤:引入 Bootstrap 框架。在 HTML 中创建日期选择器输入框。Bootstrap 将自动为选择器添加样式。使用 JavaScript 获取选定的日期。

bootstrap按钮怎么用 bootstrap按钮怎么用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按钮?引入 Bootstrap CSS创建按钮元素并添加 Bootstrap 按钮类添加按钮文本

See all articles