HTML5、CSS3应用教程之跟DIV说再见 |
Web设计师
可以
使用HTML4和CSS2.1
实现一些很酷的东西 。我们
可以在不
使用
破旧的基于table布局的
根底上
实现文档逻辑
构造并
缔造内容
丰硕的网站 。我们
可以在不
使用内联<font>和<br>标签的
根底上对网站增加漂亮而细腻的
格调
款式 。事实上,我们当前的设计
威力已经让我们远离了那个可怕的阅读器战争时代、专有
协定和那些
充斥闪动、滚动和
闪耀的
俊俏网页 。
只管这有些牵强,但上面这个实例还是
可以
注明
使用HTML4对一个复杂的设计进行代码化后依旧过于臃肿(其实xHTML1.1也不过如此) 。不过值得
冲动的是,HTML5解决“<div>-soup” 综合症并带给我们一套新的
构造化元素 。这些新的HTML5元素富有更
详尽的语义从而
接替了那些毫无语义的<div>标签,并同时为CSS的调用提供了”自然”的CSS钩子 。
正如我们所见,HTML5
可以让我们用众多更语义化的
构造化代码标签
接替那些大量的无
意思的<div>标签 。这种语义化的
特点不只
晋升了我们网页的
品质和语义,而且大量削减了曾经代码中用于CSS必须调用的class和id属性 。事实上,CSS3也是
可以然通过我们
忽略掉全部class和id的 。
我们再来看看基于HTML5的实例:
这是个
普及,但仍有一些问题需求解决 。在<div>实例中,我们需求通过class或id属性来调用页面中的元素 。这种逻辑将同意我们将
款式
利用到文档中的任何一个元素上,无论是整体还是个体 。例如在<div>实例中,.section 和 .content元素很容易定位 。然而在HTML5实例中,实际文档中会有众多个section元素 。其实我们
可以增加一些特定的属性
取舍器来调用那些不同的section元素,不过谢天谢地,我没现在
可以用少量的高级CSS
取舍器来定位不同的section元素 。
兄弟 取舍器:[CSS 2.1]: E + F 子元素 取舍器:[CSS 2.1]: E > F 下面让我们来看看如何不
使用class和id而
实现对文档中的那些section元素的定位吧: body nav+section {} 定位下一个<section>元素
定位<article>元素
section section article {}
定位<header>、<section>和<footer>元素
article header {} 或者一同定义:
section section header {} 到当前为止,我们已经
使用CSS2.1
取舍器排除掉了全部的class和id 。那么我们为何还需求
使用CSS3呢?我很
庆幸你能这么问…
我们
依旧
可以
使用同样的
模式定位评论的元素和它们的子元素 。 定位一些指定的区域(section)或文章(article) section:nth-child(1) {} /*
取舍第一个 <section> */ section:nth-child(2) {} /*
取舍第二个 <section> */
同样,我们 可以 使用“:nth-last-child” 取舍器定位反序的一些元素 。
section:nth-last-child(1) {} /*
取舍最终一个 <section> */ section:nth-last-child(2) {} /*
取舍倒数第二个 <section> */
使用更多的 模式 取舍指定元素
我们 可以仅 使用以下一行 取舍器:
section>section:only-of-type {}
再次唠叨,你 可以 执着的为每个元素增加ID属性,但你会失去代码的可 扩大性、 保护性和绝对简洁的 构造与 体现相 拆散 。CSS3确实能让我们可 快捷更容易的定位 几乎全部没有ID和class属性的页面元素 。
总结
我相信随着 工夫的推动和更多阅读器的 支撑,HTML5和CSS3将越来越受 欢送,它们将为web设计师们带来更无穷的能量,让我们的web前端更上一个台阶 。 |