一起感受HTML5和CSS3的能量[译](4)

作者:暴风彬彬 来源:彬Go 时间:2009-09-04 16:29:00 

使用CSS3对HTML5元素进行高级定位

虽然我们已经使用CSS2.1选择器排除掉了所有的class和id,显然还会有很多更复杂的情况需要CSS3的高级选择器来解决。让我们通过完成一下的实例来了解一下如何在不使用无用的class和id属性的情况下利用CSS3定位页面元素。

使用一个唯一的日志(post)ID定位所有日志

wordpress提供给我们一种包含了ID的每篇日志的源代码输出。这种信息通常用于导航和/或了解资料的意图,不过CSS3可以利用这些唯一的ID来定义这些日志的样式。当然,你还可以像往常那样为每篇日志添加class=”post”这样的属性,但这就与我们练习的意图相冲突了(再加上它没有一点乐趣所在)。使用”子字符串匹配选择器”,我们就可以像下面这样定位所有日志和它们的不同元素了。

article[id*=post-] {}           /* 定位所有日志 */
article[id*=post-] header h1 {} /* 定位所有日志中的h1标签 */
article[id*=post-] section p {} /* 定位所有日志中的p标签 */ 

我没仍然可以使用同样的方式定位评论的元素和它们的子元素。


article[id*=comment-] {}           /* 定位所有评论 */
article[id*=comment-] header h1 {} /* 定位所有评论中的h1标签 */
article[id*=comment-] section p {} /* 定位所有评论中的p标签 */

定位一些指定的区域(section)或文章(article)
  有很多博客的日志量和评论量都相当大,HTML 5 会将它们由<section>或<article>元素组成。为了定位哪些指定的<section>或<article>元素,我们就要转而使用强大的“:nth-child”选择器了:

section:nth-child(1) {} /* 选择第一个 <section> */
article:nth-child(1) {} /* 选择第一个 <article> */
section:nth-child(2) {} /* 选择第二个 <section> */
article:nth-child(2) {} /* 选择第二个 <article> */

同样,我们可以使用“:nth-last-child”选择器定位反序的一些元素。

section:nth-last-child(1) {} /* 选择最后一个 <section> */
article:nth-last-child(1) {} /* 选择最后一个 <article> */
section:nth-last-child(2) {} /* 选择倒数第二个 <section> */
article:nth-last-child(2) {} /* 选择倒数第二个 <article> */ 

使用更多的方式选择指定元素
  另一种选择HTML5中指定元素(如header、section和footer)的方法就是利用”:only-of-type”选择器的优势。由于这些HTML5元素通常会在很多地方出现不止一次,所以当我们想定位那种在父元素下仅出现过一次的标签时这种方法很方便。例如,我们要选择的是在某

元素中有切仅有的唯一一个
元素,如以下代码:


<section>
   <section></section>
   <section>
      <section>定位这个section元素</section>
   </section>
   <section>
      <section>定位这个section元素</section>
   </section>
   <section>
      <section>但不定位这个section元素</section>
      <section>和这个section元素</section>
   </section>
   <section></section>
</section> 

我们可以仅使用以下一行选择器:

section>section:only-of-type {}

再次唠叨,你可以固执的为每个元素添加ID属性,但你会失去代码的可扩展性、维护性和绝对简洁的结构与表现相分离。CSS3的确能让我们可快速更方便的定位几乎所有没有ID和class属性的页面元素。

总结

我相信随着时间的推进和更多浏览器的支持,HTML5和CSS3将越来越受欢迎,它们将为web设计师们带来更无穷的能量,让我们的web前端更上一个台阶。

英文原文:The Power of HTML 5 and CSS 3  

标签:Web,html5.css3,语义化
0
投稿

猜你喜欢

  • HTML的基本元素

    2010-03-16 12:39:00
  • SQLSERVER查询所有数据库名,表名,和字段名的语句

    2012-01-29 18:07:44
  • 用ASP实现就MP3曲目信息的操作全攻略

    2008-05-28 12:42:00
  • 自适应网页设计(Responsive Web Design)

    2012-05-02 10:49:07
  • asp如何在刷新链接之前验证文件是否存在?

    2010-06-22 21:09:00
  • MySQL数据库常见的出错代码及出错信息

    2008-05-27 12:29:00
  • SQL Server中使用DTS设计器进行数据转移

    2009-01-08 16:15:00
  • 详解链接的rel与target

    2007-11-05 18:25:00
  • AJAX缓存问题的两种解决方法(IE)

    2008-05-02 20:57:00
  • oracle 时间格式的调整

    2009-05-24 19:32:00
  • select @@identity的应用(得到刚插入数据的ID)

    2009-09-10 11:24:00
  • Oracle 多行记录合并/连接/聚合字符串的几种方法

    2009-11-17 08:53:00
  • 四种方法在SQL Server数据库中成批导入数据

    2009-02-19 17:25:00
  • 陌生网页交互行为分析(1)——奇怪的关闭按钮

    2009-01-08 12:22:00
  • 怎么样才能设计出漂亮的网页?

    2008-10-07 16:57:00
  • SQL 2008的变更数据捕获——跟踪可变部分

    2009-03-20 11:47:00
  • JavaScript解释型模版

    2009-10-19 23:12:00
  • 斐波那契数列的递归算法优化

    2010-01-23 11:37:00
  • CSS Border使用小分享

    2010-08-12 14:34:00
  • 链接的提示及打开方式

    2008-07-29 13:09:00
  • asp之家 网络编程 m.aspxhome.com