用CSS3将你的设计带入下个高度


Posted in HTML / CSS onAugust 08, 2009

尽管CSS3的诸多新特性还不被很多浏览器支持,或者说支持的不好。但作为一个前端开发人员,你总不能等到所有浏览器都完美支持它的时候再去学习。
CSS3到底给我们带来了哪些新特性呢?简单的说,CSS3把很多以前需要使用图片和脚本来实现的效果,只需要短短几行代码就能搞定。比如圆角,图片边框,文字阴影和盒阴影等。CSS3不仅能简化前端开发工作人员的设计过程,还能加快页面载入速度。
本文里面,就让我们来全面的看一下CSS3的各种新特性。也别忘了检阅我们之前发布的一些CSS教程和技巧文章: 60+CSS技巧教程资源大全 CSS3.0相关资源和参考手册收集整理 使用浏览器专有属性
为了使用大部分CSS3特性,我们不得不与原来的属性一起使用生产商专有扩展。原因是直到现在,大部分浏览器只支持部分CSS3属性。而且不幸的是,一些属性甚至到最后都可能不被W3C推荐,所以通过指定浏览器专有属性,将他们与标准属性区分开来是很重要的(然后在他们是多余的的时候使用符合标准的样式将之覆盖)。
当然,这种方法的劣势是,将导致一个杂乱的样式表和网站在浏览器之间的表现不一致。毕竟,我们不想在我们的样式表中重拾私有浏览器hack的需求。 Internet Explorer的臭名昭著的marquee、blink以及其它标签在大量样式表中被应用,并在20世纪九十年代成为一个传奇;它们依然让现存的很多网 站(在其他浏览器中)表现不一致甚至难以阅读。而我们现在也不想将我们自己置于同样的境地,对吧?
然而,网站不需要在所有的浏览器中看起来必须严格的一致。有的时候在某个浏览器中使用私有属性来实现特定的效果是可行的。
最常见的私有属性是用于Webkit核心浏览器的(比如, Safari), 它们以-webkit-开始,以及Gecko核心的浏览器(比如, Firefox),以-moz-开始,还有Konqueror (-khtml-)、Opera (-o-) 以及Internet Explorer (-ms-)都有它们自己的属性扩展(目前只有IE8支持-ms-前缀)
作为专业的设计师,我们不得不注意:使用这些私有属性将让我们的样式表不能通过验证。所以目前将他们放到最终版的样式中是少见的。但是在某种情况下,比如试验或学习,我们至少可以考虑将他们和标准的CSS属性一起写到一个样式表中。扩展阅读 Vendor-specific extensions and W3C Vendor-specific extensions to CSS3 Vendor-specific properties 1. 选择器
CSS选择器是个难以置信地强大的工具:它们允许我们在标签中指定特定的HTML元素而不必使用多余的 class、 ID 或JavaScripts。而且它们中的大部分并不是CSS3中新添加的,而是没有被得到应有的广泛应用。如果你在尝试实现一个干净的、轻量级的标签以及 结构与表现更好的分离,高级选择器是非常有用的。它们可以减少在标签中的class和ID的数量并让设计师更方便的维护样式表。属性选择器
三个新的属性选择器被添加到CSS3: [att^="value"]
匹配包含以特定的值开头的属性的元素 [att$="value"]
匹配包含以特定的值结尾的属性的元素 [att*="value"]
匹配包含含有特定的值的属性的元素
值的属性的元素
用CSS3将你的设计带入下个高度
a[title$="tweetCC"] {
position: absolute;
top: 0;
right: 0;
display: block;
width: 140px;
height: 140px;
text-indent: -9999px;
}

浏览器支持:只有IE6不支持CSS的属性选择器。IE7和IE8、Opera、Webkit核心和Gecko核心的浏览器都支持。所以在你的样式中使用属性选择器是比较安全的。 连字符
CSS3中唯一新引入的连字符是通用的兄弟选择器(同级)。它针对一个元素的有同一个父级节点的所有兄弟级别元素。
比如,给某个特定的div的同级的图片添加一个灰色的边框(div和图片应该有同一个父级节点),在样式表中定义下面的样式就足够了:
div~img {
border: 1px solid #ccc;
}

浏览器支持:所有的主要浏览器都支持这个通用的兄弟选择器除了我们最爱的IE6!伪类
或许在CSS3中增加最多的就是新的伪类了,这里是一些最有趣和最有用的: :nth-child(n)
让你基于元素在父节点的子元素的列表位置来指定元素。你可以是用数字、数字表达式或odd 和even 关键词(对斑马样式的列表很完美)。所以如果你想匹配在第四个元素之后的一个3个元素的分组,你可以简单的这样使用: :nth-child(3n+4) { background-color: #ccc; }/*匹配第4,7,10,13,16,19...个元素*/ :nth-last-child(n)
与上个选择器的思想同样,但是从后面匹配元素(倒序),比如,为了指定一个div里面的最后两个段落,我们可以使用下面的选择器: div p:nth-last-child(-n+2) :last-child
匹配一个父节点下的最后一个子元素,等同于:nth-last-child(1) :checked
匹配选择的元素,比如复选框 :empty
匹配空元素(没有子元素)。 :not(s)
匹配所有不符合指定声明(s)的元素。比如,如果你想让所有的没有使用”lead”类的段落的显示为黑色,可以这样写:
p:not([class*="lead"]) { color: black; }
Andrea Gandino 在他的网站上使用:last-child 为选择器指定每篇日志的最后一个段落,并将其的外间距(margin)设置为0:
用CSS3将你的设计带入下个高度
#primary .text p:last-child { margin: 0; }
浏览器支持: Webkit核心和Opera 浏览器支持所有新的CSS3 伪类,Firefox 2 和3 (Gecko核心) 只支持:not(s), :last-child, only-child, :root, :empty, :target, :checked, :enabled 和:disabled,但是Firefox 3.5 将更加广泛的支持CSS3 选择器。Trident核心浏览器(Internet Explorer)事实上不支持这些伪选择器。伪元素
在CSS3中唯一引入的伪元素是::selection.它可以让你指定被用户高亮(选中)的元素。
浏览器支持: 目前没有任何一款Internet Explorer 或Firefox 浏览器支持::selection 伪元素。Safari, Opera 和Chrome 均支持。扩展阅读 Selectors Level 3: W3C Working Draft CSS3: Attribute selectors: CSS3.info Compatibility table: CSS3 Selectors CSS selectors and pseudo selectors browser compatibility CSS3 Attribute Selectors ::selection General Sibling Selector CSS3 Pseudo-classes

上一页12 3 4 5 6 7 8 下一页 阅读全文
HTML / CSS 相关文章推荐
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
检测用户浏览器是否支持CSS3的方法
Aug 29 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
Sep 02 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
Jun 04 HTML / CSS
HTML5 对各个标签的定义与规定:body的介绍
Jun 21 HTML / CSS
HTML5 中新的全局属性(整理)
Jul 31 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
Jun 22 HTML / CSS
AmazeUI 点击元素显示全屏的实现
Aug 25 HTML / CSS
CSS中妙用 drop-shadow 实现线条光影效果
Nov 11 HTML / CSS
CSS3 优势以及网页设计师如何使用CSS3技术
Jul 29 #HTML / CSS
CSS3 优势以及网页设计师如何使用CSS3技术
Jul 29 #HTML / CSS
HTML5 CSS3给网站设计带来出色效果
Jul 16 #HTML / CSS
CSS3 圆角效果
Jul 15 #HTML / CSS
CSS3 完美实现圆角效果
Jul 13 #HTML / CSS
CSS3 box-sizing属性
Apr 17 #HTML / CSS
CSS3伪类选择器:nth-child()
Apr 02 #HTML / CSS
You might like
PHP技术开发技巧分享
2010/03/23 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
ThinkPHP之getField详解
2014/06/20 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
使用Python对Csv文件操作实例代码
2017/05/12 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python实现列表的排序方法分享
2019/07/01 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python如何实现邮件功能
2020/05/27 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
盛大笔试题
2016/11/05 面试题
会计系中文个人求职信
2013/12/24 职场文书
校园绿化美化方案
2014/06/08 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
企业百日安全活动总结
2015/05/07 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers