CSS3 可以实现一些非常棒的功能。看看 WebKit 中可以实现的一些 疯狂的 3D 效果。但是众所周知,我们需要谨慎选择使用哪些功能。最前沿的技术很有趣,但由于只有极少数浏览器完全支持它们,因此我们只能在它们可以回退到其他完全可接受的样式的情况下使用它们。让我们来看几个快速、简单、简单的例子。
增长链接
使用 CSS3 缩放元素非常有趣且容易。我们不需要 CSS3 来做到这一点,我们可以使用相对定位,偏移位置,增加宽度、高度和字体大小。但是哇,当我们只需要应用一个缩放因子并完成它时,这真是太麻烦了。这些链接在悬停时也会使其角更圆润并应用一些阴影。
.grower {
display: block;
margin: 0 auto;
width: 120px;
padding: 2px 5px;
border: 1px solid #2f2626;
background: rgba(237,95,0,0.3);
-moz-transition: all 0.1s ease-in-out;
-webkit-transition: all 0.1s ease-in-out;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
.grower:hover {
background: rgba(237,95,0,1.0);
border-color: rgba(237,95,0,1.0);
-moz-transform: scale(1.2);
-webkit-transform: scale(1.2);
-moz-box-shadow: 0 0 20px black;
-webkit-box-shadow: 0 0 20px black;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
模糊边缘
使用多个阴影在略微透明的文本后面可以模糊文本的边缘,而无需任何图像。过渡可以淡出文本,跟踪出字母,并更改字体大小。
h3 {
height: 100px;
font: bold 80px Helvetica, Sans-Serif;
color: black; /* fallback */
color: rgba(0,0,0,0.2);
text-shadow:
0 0 2px rgba(0,0,0,0.2),
0 0 4px rgba(0,0,0,0.2),
0 0 6px rgba(0,0,0,0.2);
-webkit-transition: all 0.2s linear;
}
h3:hover {
color: rgba(28, 28, 28, 0.2);
opacity: 0.8;
letter-spacing: 15px;
font-size: 70px;
}
椭圆形圆角
渐进增强最典型的例子就是 border-radius。但您是否知道不必创建完美的圆形圆角?我们将在此处创建一个椭圆,并为了好玩使其旋转(仅限 WebKit… Mozilla 有过渡的语法,但尚未实现)。
.oval {
background: #fe4902;
width: 200px;
height: 100px;
line-height: 100px;
text-align: center;
margin: 0 auto;
/* Notice the slightly different syntax */
-moz-border-radius: 100px / 50px;
-webkit-border-radius: 100px 50px;
-webkit-transition: all 0.8s linear;
-moz-transition: all 0.8s linear; /* non functional just yet */
}
.oval:hover {
-webkit-transform: rotate(720deg);
}
多个背景
如果得到更广泛的支持,多个背景将是惊人的省时工具。唉,我们现在只能将它们用于可选的细微增强,在这些增强中,完全没有回退是可以接受的。
body {
background:
url(../images/top-right.png) top right fixed no-repeat,
url(../images/top-left.png) top left fixed no-repeat,
url(../images/bot-left.png) bottom left fixed no-repeat,
url(../images/bot-right.png) bottom right fixed no-repeat;
background-color: #2f2626;
}
嘿,Chris!
一如既往的棒。我真的很喜欢幽灵字体^^ 太可惜万圣节已经结束了!
来自德国的问候
timo
非常酷。拥有回退功能始终是必要的,但我认为我会尝试其中的一些小技巧。
难道每个人都不能升级他们的浏览器吗?
抱歉,这些效果在 IE 8 中不起作用……但在 Gecko 浏览器中看起来很棒 :)
这就是重点,为 IE 等浏览器提供回退。
哈哈!
嘿,Chris,感谢你的帖子——CSS3 看起来要大放异彩了!一如既往,令人遗憾的是需要回退,但嘿,IE 用户必须得到照顾,不是吗……是吗?不,他们应该使用更好的浏览器!来自法国的英国人的问候。
Steve。
很棒的帖子。我多么渴望有多个背景支持
再次感谢 Chris 的精彩文章。
当时机成熟时,CSS3 将会非常棒……
嘿,Chris,好文章!
我迫不及待地希望 CSS3 得到更广泛的支持(就像一个孩子期待圣诞节一样,而现在才 1 月!)
我真的很期待 CSS3 全面生效。这将使 Web 开发更加有趣!
不错的文章,但我强烈建议您首先使用标准 CSS,然后使用浏览器供应商前缀(-moz、-webkit、-o、-ms)。随着越来越多的浏览器实现 border-radius,以及 Gecko 和 Webkit 取消其特定的前缀,您的样式表应该面向未来。这在编写像这样人们可能会复制/粘贴的示例文章时尤其适用。
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
是我建议的方式。
是否有支持“border-radius”的浏览器?一旦有一个,我就会开始这样做。
1. 想象一下,您有 20 个正在运行的项目可能使用了与 CSS3 相关的功能。您是否会更改每个项目以使用标准方法?我不这么认为,如果您有一个良好的管理系统/可以处理 CSS3 属性/可能,但我猜您没有。
2. 由于浏览器几乎每天都在更新,因此您无法确定何时会发生这种情况
r. Sandor
面向未来绝对是一个好方法……
您可以使用以下注释准备浏览器特定的 CSS
/* 删除以下行 */
然后在 CSS 文件中搜索“REMOVE”,然后删除下面的行(以及注释)。
提前计划是一件好事。
非常棒的文章!我认为如果我们完全支持圆角,事情会变得更容易,编码也会更有趣。
很棒的帖子。
我最近一直在研究 CSS3,能够直观地了解这些功能在旧版浏览器中的外观非常有帮助!
非常感谢
很棒的帖子,我会在我的当前项目中尝试这些。
您所做的工作非常棒。
美丽且鼓舞人心
为什么不为 Opera 使用 -o-transition?顺便说一句,我真的很喜欢增长链接!太棒了。
感谢这些很棒的技巧。
哇!喜欢增长链接!我已经使用 CSS3(角/阴影)几个月了,但没有比增长链接更酷的了。而且完全没有使用 JavaScript。太棒了!
我喜欢弹出下拉选择,事实上我偶然发现了它。最终在我的最近完成的一个网站上使用了它
http://www.allamericansupercarwash.com/
非常有趣 :D
嘿,我想说这篇文章太棒了
不幸的是,使用 CSS3 属性可能会使您的代码无效。
我完全支持渐进增强技术,因此如果这是一个问题,我建议暂时将增强的属性移到一个单独的 CSS 文件中。这样,您的主要样式表将对当前的 CSS 实现保持有效。
将额外的样式表命名为类似“enhanced.css”这样的名称,以便检查 CSS 有效性的人员能够清楚地知道这些样式更加高级,并且可能包含渐进式属性。
我喜欢使用它会使 CSS 无效。说真的,谁在验证 CSS?谁在乎?它可能有助于发现语法错误,但这是我唯一能想到的原因。
你只需要将其作为 CSS3 进行验证就可以了。据我所知,如果前缀正确(-moz 等),专有扩展是有效的。
实际上,根据 CSS2.1 规范,供应商特定的扩展是无效的,包括添加前缀的情况 - 请自己尝试验证器以查看)。
因此,在验证器以某种方式更新以处理这些扩展之前,我同意 Neil 的观点,你可以将供应商特定的规则放在单独的样式表中以保持你的主要 CSS 有效。但只是为了说明:在我看来,这种级别的 CSS 验证仅对 QA 流程很重要…… CSS 验证与其说是荣誉徽章,不如说是一种工具。
Safari 支持 CSS3 吗?我真的很想使用它,但考虑到我的很多客户使用 IE,所以暂时没有意义(这让我很难过)我不会感到惊讶,如果 IE 在一段时间内无法支持 CSS3。原因不明。如果 IE 只是购买了从 Firefox 使用引擎的权利,那该有多好,那将是一个多么美好的网页设计世界!不过帖子很棒,我会密切关注它在多个平台上的使用:]
Safari 处于领先地位。
并且还要记住,浏览器不仅仅是兼容或不兼容 CSS3。CSS3 由许多随着时间推移在不同浏览器中陆续推出的细小部分组成。
投影效果是我最希望多平台都能使用的效果。厌倦了不得不为链接或带有阴影的漂亮文本使用图片。还有其他什么东西可以用来实现这种效果,同时保持 SEO 强大吗?
所有那些说“CSS3 在时机成熟时会很棒”和“我迫不及待地想使用这些东西”的人:醒醒吧。
这些属性现在就可以使用。Chris 文章的重点是如何确保糟糕的浏览器(例如 Internet Explorer)仍然能够以可接受的水平呈现内容,同时为使用良好浏览器的用户提供额外的体验?使用渐进增强,就是这样。
所以,从你的岩石下出来吧,停止担心你的设计在每个浏览器中看起来都不完全相同,并开始逐步增强你的网站。
/rant
最佳。评论。曾经。
很棒的帖子!迫不及待地想开始尝试。谢谢!
总有“老式的”JQ。
非常棒的效果。但存在一个非常古老的问题 - Internet Explorer!我想在我的网站上使用这些效果,但 IE 不支持(或支持较少)CSS3。你能使用 JS(如 jQuery)使它在 IE 6+ 中工作吗?那将是一个完整的指南 :)
喜欢这篇文章。继续写下去 :)
Opera 支持任何这些 CSS3 功能吗?
Opera 支持“zoom”css 属性。我们可以使用它来实现“Growing Links”效果吗?
非常好。一如既往,你的帖子总是有价值的优质信息。太棒了。
这个 3D 东西对我来说很新。我喜欢这些简洁的效果,尤其是模糊效果:D
真的很棒。谢谢。
Growing Links 在 IE6、7、8 中不起作用。边框和背景颜色也不起作用。模糊边缘在 IE 中的效果也不好。
很棒的帖子,来自我的网站 WebDesignExpert.Me 的链接。
非常好的帖子。我喜欢它。虽然我认为我们现在不应该使用 CSS 3,因为它还没有正式发布,并且不受 Internet Explorer 的支持。
一旦它正式发布,我就会想使用它。
有一点 - 浏览器供应商前缀应该消失,每个浏览器都应该只有一个规则。
爱死它了!css-tricks 是一个学习和了解 CSS 最新动态的绝佳资源。在许多情况下,它也让你能够领先一步。
当我开始学习网页设计时,我曾经担心,当我掌握基础知识时,我所学到的东西可能已经过时了,我将不断地拖后腿,试图追赶。
幸运的是,我偶然发现了这个网站,从那时起,我感觉自己与其他跑步者并驾齐驱了!
感谢这些技巧,我喜欢让我的网站具有交互性,这些漂亮的技巧在你将鼠标悬停在它们上面时确实看起来很不错。
也真的很欣赏“深入 WordPress”这篇文章。
不幸的是,IE 不想与之配合使用。CSS2 的解释仍然存在很多差异,因此 IE 和 CSS3 之间的一切都将需要数年时间才能变得正常。或者也许 IE 就像我们所有人希望的那样消失 :)
天啊,我迫不及待地想等到 CSS3。我讨厌 IE;我很高兴至少欧洲的用户可以选择。我希望我们也能在这里有一个类似的垄断破坏者。
回退看起来真的很酷;我只是希望所有浏览器都能尽快开始采用 border-radius 属性,这样我们就可以停止“破解”以获得漂亮的圆角。
说的好!我每天都为此感到恼火。我理解原因,但对我来说,我们还没有普遍支持这一点仍然显得荒谬。
border-radius 可能是我见过的最被夸大的属性,它的应用充其量只能说是停滞不前……
查看:http://www.uiandus.com/imported-20091116110904/2009/7/26/realizations-of-rounded-rectangles.html
尤其是这段话
是时候请教专家了:我咨询了 Jürg Nänni 教授,他是《视觉感知》一书的作者,该书详细介绍了我们迄今为止对视觉认知过程中所涉及过程的科学理解。“圆角矩形实际上是否需要更少的视觉处理才能识别?”
Nänni 证实了我的理论:“你完全正确。具有尖锐边缘的矩形确实比相同大小的椭圆需要更多的认知视觉处理。我们的‘中央凹-眼睛’甚至更快地记录圆形。边缘涉及额外的神经元图像工具。因此,该过程会减慢速度。”
有趣的文章,Chris。
如果它存在,则使用官方的 CSS3 声明。
即使是为了未来的兼容性。
不过也许声明应该放在最后而不是最前面。
也许这篇文章也应该包含 IE 的回退方案?
你是否考虑过将 zoom 用于过渡,以及将 filters 用于模糊边缘?
当 IE 9 发布时,我将感到高兴。尽管当你从事网络行业时,你并不会太担心在你个人网站上看到的所有花哨的东西。至少我不担心。不要误解我的意思,它仍然必须看起来不错。
当 IE 6 被消灭时,我将感到高兴,它已经困扰我很久了!