前端开发人员必须熟悉的10个CSS3属性

导读:随着Css3和html5的风靡,越来越多的前端人员开始学习Css3,今天的文章就是来说说前端应该掌握10个Css3属性。

对于Css3的新属性,你又了解多少呢?虽然大多数的css3属性在很多流行的浏览器中不支持,但是我们鼓励在前端开发中要学会并且运行这些css3属性,因为这是未来的趋势。

关键是首先确定你是否对各个浏览器之间的细微的差别有所了解,你能肯定的说IE显示的90度的角就不圆滑嘛?这取决于你的决定。但是要永远记住,网站设计不必看到所有浏览器的不同。

1. Border-radius

Border-radius

Border-radius是一大堆CSS3属性中最受欢迎的一种,border-radius是CSS3中级别最高的一个属性。当设计者害怕一个层在将在不同的浏览器之间以不同的方式显示时,CSS圆角,一个很初级的知识,将引导他们开始学习。 我们为移动浏览器提供一个备用的观看体验的想法都非常好。奇怪的是,当这种方法出现在桌面浏览器上时,他们却又不这么认为。border-radius是一大堆CSS3属性中最受欢迎的一种,border-radius是CSS3中级别最高的一个属性。当设计者害怕一个层在将在不同的浏览器之间以不同的方式显示时,CSS圆角,一个很初级的知识,将引导他们开始学习。我们为移动浏览器提供一个备用的观看体验的想法都非常好。奇怪的是,当这种方法出现在桌面浏览器上时,他们却又不这么认为。

-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;

注意:请在Safari 5和IE9浏览器中执行“border-radius”语法。

许多读者也许不会意识到我们可以用这个属性来做一个圆。

-moz-border-radius: 50px;-webkit-border-radius: 50px; border-radius: 50px;

如果想再添加点效果,我们可以利用Flexible Box Model(详情在8中)来使得文字在垂直在水平方向都居中。这需要加点代码,但这仅仅是对不同浏览器的补偿。

display: -moz-box;display: -webkit-box;display: box;-moz-box-orient: horizontal; /* the default, so not really necessary here */-webkit-box-orient: horizontal;box-orient: horizontal;-moz-box-pack: center;-moz-box-align: center;-webkit-box-pack: center;-webkit-box-align: center;box-pack: center;box-align: center;

2. Box-shadow

Box-shadow

接下来是非常普遍的Box-shadow,可以使你的元素立即美化,只是记得不要把值设得太离谱。

-webkit-box-shadow: 1px 1px 3px #292929;-moz-box-shadow: 1px 1px 3px #292929;box-shadow: 1px 1px 3px #292929;

box-shadow的四个参数

  1. x-offset x轴偏移
  2. y-offset y轴偏移
  3. blur 模糊值
  4. color of shadow 阴影颜色

现在,许多人不知道可以一次运用多个box-shadows,这样做会产生一些有趣的效果。在下图中,我使用蓝色和绿色阴影来放大一下效果。

Box-shadow

-webkit-box-shadow: 1px 1px 3px green, -1px -1px blue;-moz-box-shadow: 1px 1px 3px green,-1px -1px blue;box-shadow: 1px 1px 3px green, -1px -1px blue;

Clever Shadows

<div>   <img src="tuts.jpg" alt="Tuts" /></div>

The CSS

.box:after {   content: '';   position: absolute;   z-index: -1; /* hide shadow behind image */   /* The Shadow */   -webkit-box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);   -moz-box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);   -box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);                   width: 70%;   left: 15%; /* one half of the remaining 30% (see width above) */   height: 100px;   bottom:  0;}

3. Text-shadow

Text-shadow

Text-shadow是我们可以省略前缀的几个CSS属性之一,类似的还有box-shadow,它必须应用于文本,并它们有相同的四个参数:

  1. x-offset 水平位移
  2. y-offest 垂直位移
  3. blur 模糊值
  4. color of shadow 阴影颜色
 h1 {    text-shadow: 0 1px 0 white;    color: #292929; }

Text-Outline和box-shadow一样,它可以设置多个阴影通过逗号分隔符。例如,我们创建文本框的轮廓,当Webkit不支持stroke效果,我们可以使用下面的代码让更多的浏览器支持(虽然不是很美观)。

body { background: white; }h1 {   text-shadow: 0 1px 0 black, 0 -1px 0 black, 1px 0 0 black, -1px 0 0 black;   color: white;}

Text-Outline

4. Text-Stroke

Text-Stroke

使用这个方法时要注意了,只有Webkit(Safari, Chrome, iPhone)在最后的几年内还支持这个属性。其实,虽然我可能是错的,Text-stroke还不属于CSS3范畴的一部分。在这种情况下,使用白色字体时,Firefox会显示一个空白页面。要解决此问题,你即可以使用Javascript,也可以通过使用一种不同于背景颜色的文字颜色。

h1 {   -webkit-text-stroke: 3px black;   color: white;}

Feature Detection我们如何为firefox提供一组可用的样式,和为另外的一组Safari或Chrome?解决办法就是多做测试。 通过feature detection,我们可以利用JavaScript来测试某属性是否可用,如果不行,我可 就要采用备用的。 再回到text-stroke的问题上,为不支持此属性的浏览器设定一个备用黑色(目前的除webkit外)。

var h1 = document.createElement('h1');if ( !( 'webkitTextStroke' in h1.style ) ) {   var heading = document.getElementsByTagName('h1')[0];   heading.style.color = 'black';}

首先我们设定一个h1元素,然后执行,通过样式属性以确定-webkit-text-stroke是否支持此元素。如果不支持,我们会把标题由白色 设置成黑色。

5. Multiple Backgrounds

Multiple Backgrounds

Background属性在CSS3样式中已经彻底改革,开始支持多背景图片。 举个简单的例子,如果没和合适的图像,我们将使用两个教程的图像作为我们的背景,当然在程序中你可能会用纹理,也许是渐变作为图像。

.box {background: url(image/path.jpg) 0 0 no-repeat, url(image2/path.jpg) 100% 0 no-repeat;}

以上,通过逗号分隔符,插入了两张背景图像,第一个的定位是(0,0),第二个的定位是(100%,0)。 要确定你对不支持的浏览器使用了备用图片,否则,它将跳此属性,使背景图像留空。 对旧浏览器的补偿要添加一张单独的图像给老浏览器用,像IE7。要定义两遍background,一遍是为老浏览器,另一遍是重写。或者你可以再次查看下Modernizr。

.box {/* fallback */background: url(image/path.jpg) no-repeat;/* modern browsers */background: url(image/path.jpg) 0 0 no-repeat, url(image2/path.jpg) 100% 0 no-repeat;}

6. background-size

目前我们已经可以使用这种比较灵活的方式去重定义背景图像的大小。

background: url(path/to/image.jpg) no-repeat;background-size: 100% 100%;

上面的代码使得背景图像已经占据了整个可用空间。但是,如果我们使用一个特殊的图片去占据body元素的整个空间而无论窗口有多宽,那又怎么做?

body, html { height: 100%; }body { background: url(path/to/image.jpg) no-repeat; background-size: 100% 100%;}

对,就是这么做,分别定义background-size的x,y参数。 最新版本的Chrome 和 Safari支持此属性,但我们还是要用旧的方法支持旧的浏览器。

body { background: url(path/to/image.jpg) no-repeat; -moz-background-size: 100% 100%; -o-background-size: 100% 100%; -webkit-background-size: 100% 100%; background-size: 100% 100%;}

7. text-overflow

浏览器最初开发文本溢出属性可以设定两个值:clip ellipsis 此属性支持切断容器中的文本,而且也给出了一个省略号的特性。

Text-overflow

.box {   -o-text-overflow: ellipsis;   text-overflow:ellipsis;   overflow:hidden;   white-space:nowrap;   border: 1px solid black;   width: 400px;   padding: 20px;   cursor: pointer;}

或许你会考虑当鼠标经过时显示全部的文本内容。

#box:hover {  white-space: normal;  color: rgba(0,0,0,1);  background: #e3e3e3;  border: 1px solid #666;}

有点奇怪,这看起来并不像是重置text-overflow属性或是停用它,使之生效,在on:hover中我们可以使得white-space的 normal属性。现在正常了。 知道吗?您还可以指定自己的字符串,应使用省略号的位置。这样做来修饰要显示的文本字符串。

8. Flexible Box Model

Flexible Box Model将最终使我们远离类似float的困扰。虽然是要给你的头部换一个新的属性,但一旦你这么做了,将终身受益。 做个演示,创建简单的两列布局。

<div id="container"> <div id="main"> Main content here </div> <aside> Aside content here </aside></div>

首先我们要设定一个容器,然后指定它的宽和高,即便是没有实质性的内容在里面。

#container {    width: 960px;    height: 500px; /* just for demo */    background: #e3e3e3;    margin: auto;    display: -moz-box;    display: -webkit-box;    display: box;

接下来分别定义#main和aside的背景色

#main {   background: yellow;}   aside {   background: red;}

到目前为了还没有看出什么效果来。

#main {  background: yellow;  width: 800px;}

Flexible Box Model

但是我们仍有个疑问,为什么aside不占据剩余的全部空间呢?我们可以用新属性box-flex来试下。 box-flex 使得元素占据整个空间。

aside {    display: block; /* cause is HTML5 element */    background: red;   /* take up all available space */    -moz-box-flex: 1;    -webkit-box-flex: 1;    box-flex: 1; }

使用这个属性后,不管#main有多宽,aside都将占据整个可用的空间。同时你也不必担心诸如float等产生的问题,像使得元素被排挤到下一 行。

Flexible Box Model

我只是在这儿肤浅的说一下,请参阅保罗爱尔兰优秀文章的详细信息。然而,使用此方法的时候也应注意一下兼容问题,例如老的浏览器应该先测试下,并且 提供必要的备注。

9. Resize

只有Firefox 4和Safari 3支持此属性。Resize是CSS3 UI模型中的一部分,可用于重定义textarea的大小。

<textarea name="elem" id="elem" rows="5" cols="50"></textarea>

默认情况下webkit浏览器和Firefox 4支持水平和垂直方向上的重定义。

textarea {   -moz-resize: vertical;   -webkit-resize: vertical;   resize: vertical;}

可能的值:

  1. both: 重定义水平和垂直方向
  2. horizontal: 水平调整大小限制
  3. vertical: 垂直调整大小限制
  4. none: 不支持重定义

Resize

10、 Transition

也许CSS3最令人兴奋的增补,就是在没有 JavaScript 的元素的情况下产生动画。好像IE9还不支持此功能,但这并不代表你不能使用这个功能,关键是在于提高技能。 现在模仿一个效果,当鼠标滑过右侧链接时,文本向右滑动。

The HTML

<ul>   <li>      <a href="#"> Hover Over Me </a>   </li>   <li>      <a href="#"> Hover Over Me </a>   </li>   <li>      <a href="#"> Hover Over Me </a>   </li>   <li>      <a href="#"> Hover Over Me </a>   </li></ul>

The CSS

ul a {    -webkit-transition: padding .4s;    -moz-transition: padding .4s;    -o-transition: padding .4s;    transition: padding .4s; } a:hover {    padding-left: 6px; }

transition 有三个参数:

  1. The property to transition. (Set this value to all if needed) 转换属性。(设置此值为所有如有需要)
  2. The duration 持续时间
  3. The easing type 缓动类型

为什么我们不将transition直接应用到hover上呢?是因为我们只是在mouseover时生效,当mouseout时元素将立即返回到 其最初的状态。 因为我们对效果做了调整,所有对旧的浏览器不会产生任何影响。 接下来是通过文章所学,我们来建立的一个简洁的效果。大家可以通过查看源码来学习来。具体如何创建我就不翻译了。

原文链接:http://www.iwanna.cn/archives/2011/01/03/6182/

时间: 2024-09-24 10:39:32

前端开发人员必须熟悉的10个CSS3属性的相关文章

前端开发人员必备的14个常用开发手册

对于Web开发人员和设计师来说,熟记每一个多种常用语言或框架的语法是非常麻烦的事情,所以,每一种语言都会为方便用户查询语法而建立详尽的速查操作手册,使得用户可以随时找到可能忘记的某个语法的具体信息及使用方法,这里就是前端开发人员应该在日常工作中必备的14个常用语言或框架的开发手册. HTML HTML 5 手册 HTML 5 可视手册 (X)HTML 元素和属性 HTML 手册 HTML5 圆角手册 CSS CSS 2 可视手册 CSS 3 手册 CSS 手册(V2) CSS 手册 JavaSc

前端开发人员和产品设计师之间的沟通

作为互联网产品设计师,在和前端开发人员沟通时你是否常常会听到这样的声音: -- "大姐,给点专业精神好不好,这个表格是自适应的,你这样设计页面不好扩展啊-"--"用ajax不是不行,不过你要事前给我说嘛,你不说我怎么知道呢,你说了我就知道了嘛-" 面对这些回答,除了欲哭无泪,你有没有想过是什么原因导致出现这样沟通偏差,有没有解决的办法呢?设计师需要了解哪些知识才能和前端开发人员来更好的合作呢?  首先得从这两者之间都有哪些不同说起.我认为最主要原因在于设计师和前端开

PHP开发人员必看:10分钟内创建本地应用

开发人员必看:10分钟内创建本地应用-"> 用PHP语言进行Web开发正流行 设计和开发能够连接网络的iPhone或安卓本地应用只需要10分钟?这听上去有些不可思议.看看下面的采访吧. Zend的产品管理高级主管Kent Mitchell刚刚接受了我们的采访.Zend这家公司创建了最受欢迎的PHP开发环境.这家公司由AndiGutmans和ZeevSuraski所创建,这两位都是PHP语言开发的鼻祖. PHP开发人员将会对Mirchell留下深刻的印象,他是一位技能出众,而且坚强.诚实.善

网站加速 美工和前端开发人员也很关键

一般而言,关于网站的加速,大部分人认为是后端开发者和系统管理的职责.这种观点不完全正确,因为一个高性能的网站,不仅取决于网站的后端,还依赖网站的前端,也就是说还依赖于美工和前端开发人员. 事实上,就目前的网络环境来看,我们在浏览正常的网站时,通常总耗费时间的10-20%用在了后端,剩下80-90%的时间被前端所消耗.所以,如果 你计划提升网站的速度,不妨在优化后端的同时,让美工和前端开发人员考虑以下几个方面.相信你可能会感叹,不大动刀戈也可以有效地提升网站的性能. 1. 尽可能减少 HTTP 请

【转】前端开发人员需要了解的IE hasLayout

IE的haslayout是个很纠结的东西,但作为一名合格的前端开发人员来说,haslayout属性是必须掌握的. ------------------------------------------------------------------------------------------------------------------------------------------- 拥有layout概述 Internet Explorer 中有很多奇怪的渲染问题可以通过赋予其"layou

一位淘宝前端开发人员的心声:马云的加班论是谬论

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这是某位淘宝前端开发人员一篇博客,转载过来,与各位分享: 最近心里有点烦,烦出高血压的话,就要到"无忧高血压http://www.wuyougaoxieya.cn"去找些降压的方法了.忙着一堆事情,终于能轻松点了,码码字,透透气. 不加班冲突 昨天因为不愿意加班,和一个项目经理Y发生了一些不愉快.Y的一部分理论是马云语录:

网站开发人员常去的10个网站

1.MySQL Format Date MySQL Format Date 帮助你更好地使用 MySQL DATE_FORMAT 函数.只需选择通用的日期格式,然后将其更改为满足你需求的格式.MySQL DATE_FORMAT 代码将会在页面底部生成,你可以直接复制这段查询语句. 点击访问:http://www.mysqlformatdate.com 2.Script Src 作为网站开发人员,天天一个一个站点打开查看 JavaScript 框架和库的最新版本是不是很麻烦?ScriptSrc.n

前端开发人员必须了解的七大技能图谱(http://geek.csdn.net/news/detail/88239)

文章转自<http://geek.csdn.net/news/detail/88239>,感谢分享! 网上学习资源参差不齐.分散无系统,给爱学习.努力想提高的你是不是造成很多困扰呢? 与其他学习平台不同,CSDN知识库不是随机地.一股脑地向您推算大量文章,而是首先梳理各技术领域知识图谱,再以此为基础,收集.筛选出每个技术分支所涉及的各个技术点的解析类.动手实践类文章,内容更系统化.更有针对性.无论您正关注哪个技术领域,这里都可以找到你所需要的.(如果没找到您所需要的,欢迎向我们反馈,我们不会让

谈.net开发人员应该熟悉的开发模式

我们总会有这样一个经验:一个系统最不容易也最不应该变化的部分是领域逻辑,最容易变化也最应该变化的是数据的呈现方式. 在java的各种应用中可以说是到处可见mvc,j2ee贯穿mvc的概念,android的开发方式也是类mvc的,mvc结构对于做过java应用的人而言简直就是司空见惯.而在.net这边,由于之前微软为大家提供的各种winform.asp.net项目典范(比如那个petshop series)将"三层"概念很好的灌输到了.net程序员的大脑中,许多.net开发者凡是做个东西