HTML5和CSS3让网页设计提升到下一个高度

吥萌吥乖year

吥萌吥乖year

2016-02-19 23:57

图老师小编精心整理的HTML5和CSS3让网页设计提升到下一个高度希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

Web设计师可以使用HTML4和CSS2.1完成一些很酷的东西。我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建 内容丰富的网站。我们可以在不使用内联font和br标签的基础上对网站添加漂亮而细腻的风格样式。事实上,我们目前的 设计能力已经让我们远离了那个可怕的浏览器战争时代、专有协议和那些充满闪动、滚动和闪烁的丑陋网页。
虽然我们现在已经普遍使用了HTML4和CSS2.1,但是我们还可以做得更好!我们可以重组我们代码的结构并能让我们的页面代码更富有语义化特性。 我们可以缩减带给页面美丽外观样式代码量并让他们有更高的可扩展性。现在,HTML5正跃跃欲试的等待大家,下面让我们来看看他们是否真的能让 我们的设计提升到下一个高度吧

跟div说再见,欢迎语义化标签

曾经,设计师们经常会跟频繁使用基于table的没有任何语义的布局。不过最终还是要感谢像Jeffrey Zeldman和Eric Meyer这样的思想革新者,聪明的设计师们慢慢的接受了相对更语义化的div布局替代了table布局,并且开始调用外部样式表。但不 幸的是,复杂的网页设计需要大量不同的标签结构代码,我们把它叫做div-soup 综合症。也许你很熟悉下面的代码:

div id="news"
   div class="section"
      div class="article"
         div class="header"
            h1Div Soup Demonstration/h1
            pPosted on July 11th, 2009/p
         /div
         div class="content"
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
         /div
         div class="footer"
            pTags: HMTL, code, demo/p
         /div
      /div
      div class="aside"
         div class="header"
            h1Tangential Information/h1
         /div
         div class="content"
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
         /div
         div class="footer"
            pTags: HMTL, code, demo/p
         /div
      /div
   /div
/div

尽管这有些勉强,但上面这个实例还是可以说明使用HTML4对一个复杂的设计进行代码化后依然过于臃肿(其实xHTML1.1也不过如此)。不 过值得激动的是,HTML5解决div-soup 综合症并带给我们一套新的结构化元素。这些新的HTML5元素富有更细致的语义从而代替了那些毫无语义的div标签,并同时为CSS的调 用提供了自然的CSS钩子。下面是HTML5的解决方案实例:

section
   section
      article
         header
            h1Div Soup Demonstration/h1
            pPosted on July 11th, 2009/p
         /header
         section
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
         /section
         footer
            pTags: HMTL, code, demo/p
         /footer
      /article
      aside
         header
            h1Tangential Information/h1
         /header
         section
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
            pLorem ipsum text blah blah blah./p
         /section
         footer
            pTags: HMTL, code, demo/p
         /footer
      /aside
   /section
/section

正如我们所见,HTML5可以让我们用很多更语义化的结构化代码标签代替那些大量的无意义的div标签。这种语义化的特性不仅 提升了我们网页的质量和语义,并且大量减少了曾经代码中用于CSS必须调用的class和id属性。事实上,CSS3也是可以然通过我们忽略掉所有 class和id的。

跟class属性说再

正如我们所见,HTML5可以让我们用很多更语义化的结构化代码标签代替那些大量的无意义的

标签。这种语义化的特性不仅提升了我们网页的质量和语义,并且大量减少了曾经代码中用于CSS必须调用的class和id属性。事实上,CSS3也是可以然通过我们忽略掉所有 class和id的。 跟class属性说再见,欢迎整洁的标签

结合了富有新的语义化标记的HTML5,CSS3为web设计师们的网页提供了神一般的力量。有了HTML5的能量,我们将得到更多的对文档代码的控制权,有了CSS3的能量,我们的控制权将趋于无穷大!

即使没有那些高级的CSS选择器,我们仍然可以通过强大的HTML5条调用不同的容器而不劳驾class和id这类属性。像以往的DIV布局,我们在css中可能要这样调用:

1
2
3
4
5
6
7
div#news    {}
div.section {}
div.article {}
div.header  {}
div.content {}
div.footer  {}
div.aside   {}

我们再来看看基于HTML5的实例:

1
2
3
4
5
section {}
article {}
header  {}
footer  {}
aside   {}

这是个进步,但仍有一些问题需要解决。在div实例中,我们需要通过class或id属性来调用页面中的元素。这种逻辑将允许 我们将样式应用到文档中的任何一个元素上,无论是整体还是个体。例如在div实例中,.section 和 .content元素很容易定位。但是在HTML5实例中,实际文档中会有很多个section元素。其实我们可以添加一些特定的属性选择器来调用那些不 同的section元素,不过谢天谢地,我没现在可以用少量的高级CSS选择器来定位不同的section元素。

不使用class和id定位HTML-5元素

下面让我们来看看如何在不使用class和id的情况下定位HTML5页面元素的一个实例,我们可以使用三种CSS选择器来定位和辨别实例中的元素。如下:

后代选择器:[CSS 2.1]: E F 兄弟选择器:[CSS 2.1]: E + F 子元素选择器:[CSS 2.1]: E F

下面让我们来看看如何不使用class和id而完成对文档中的那些section元素的定位吧:

定位最外层的section元素

考虑到我们的例子并不是一套完整的HTML5代码,所以我们假定在body元素下有个nav元素与section元素是兄弟元素。这样的话,我们就可以向下面代码那样定位最外层的section了:

1
body nav+section {}

定位下一个section元素
作为最外层section元素下的唯一直属子集元素,这个section元素也许可以这样定位:

1
sectionsection {}

定位article元素
可以定位article元素的方法有很多,不过最简单的方法当然就是后代选择器了:

1
section section article {}

定位header、section和footer元素
这三个元素分别在两个地方都出现过,一是在article元素中出现,另一是在aside元素中出现。这种差别能让我们轻松定位每个元素。

1
2
3
article header {}
article section {}
article footer {}

或者一起定义:

1
2
3
section section header {}
section section section {}
section section footer {}

到目前为止,我们已经使用CSS2.1选择器排除掉了所有的class和id。那么我们为什么还需要使用CSS3呢?我很高兴你能这么问

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

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

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

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

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

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/) 1
2
3
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选择器了:

1
2
3
4
5
section:nth-child(1) {} /* 选择第一个 section */
article:nth-child(1) {} /* 选择第一个 article */

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

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

1
2
3
4
5
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元素通常会在很多地方出现不止一次,所以当我们想定位那种在父元素下仅出现过一次的标签时这种方法很方便。例如,我们要选择的是在某元素中有切仅有的唯一一个元素,如以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
section
   section/section
   section
      section定位这个section元素/section
   /section
   section
      section定位这个section元素/section
   /section
   section
      section但不定位这个section元素/section
      section和这个section元素/section
   /section
   section/section
/section

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/) 1
sectionsection:only-of-type {}

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

总结

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

展开更多 50%)
分享

猜你喜欢

HTML5和CSS3让网页设计提升到下一个高度

Web开发
HTML5和CSS3让网页设计提升到下一个高度

CSS教程:CSS给我们带入下一个高度

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
CSS教程:CSS给我们带入下一个高度

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

HTML5/CSS3的开发框架:实用HTML5和CSS3框架

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
HTML5/CSS3的开发框架:实用HTML5和CSS3框架

27个HTML5和CSS3的网站设计欣赏

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
27个HTML5和CSS3的网站设计欣赏

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

HTML5和CSS3给网站设计带来出色效果

Web开发
HTML5和CSS3给网站设计带来出色效果

html5与css3小应用

Web开发
html5与css3小应用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Trainer Maker Kit使用简单教程

Trainer Maker Kit使用简单教程

CSS教程:关于浮动

CSS教程:关于浮动
下拉加载更多内容 ↓