Loading.. Current Page is Loading.

HTML5和CSS3以及菜单的编写

2. March 2010

其实很早就想写HTML5和CSS3的文章了,但是一直都没什么时间写,最近闲下来了,于是就写一下HTML5和CSS3的文章。HTML5出来了有一段时间了,各个主流浏览器基本上都能够支持HTML5,HTML5能够为我们做很多事情,并且轻松的就能够实现非常酷的效果。我们不仅能在网页前端制作上面可以使用HTML5和CSS3,我们还能够在浏览器插件中使用HTML5和CSS3(因为Chrome和Firefo浏览器都支持HTML5),那么我们不如来尝试写一个HTML5的网页或插件。

不过写之前,我们要看看为什么要使用HTML5。关于HTML5的概念,可以去这里看。

我们一般写一个HTML网页的时候,基本上会写如下代码。 

<div id="blog">
    
<div id="sidebar" class="sidebarmain">
    
</div>
    
<div id="content">
    
</div>
</div>

我们可以看到上面的代码是通过Table进化过来的,曾经有一段时间,网页开发人员喜欢使用Table去布局,但是现在,网站开发人员更喜欢使用div去布局,原因就是Table布局不够语义化,也不够方便。使用div去布局就能够语义化,比如 id,class。不过随着网络的发展,这样也有一些坏处,比如,重复的去写id让这个div更有意义,比如有一个id,又包括一个class等等。其实,最主要的还是语义上不清楚,对搜索引擎的优化不够好。那么有了HTML5,我们就可以写成如下代码。

<blog>
    
<sidebar>
    
</sidebar>
    
<content>
    
</content>
</blog>

按照上面的方式,我们的代码就更具备意义,所以,HTML5就是为我们解决了这样一个问题,我们无论在写网站还是写浏览器插件的时候,语义不仅能够方便我们的搜索引擎去抓取页面内容,另外一方面更能够方便我们去维护,因为语义,我们写CSS代码也更加简单。

blog
{
    color
:black;
}

blog sidebar
{
    float
:right;
}

blog content
{
    float
:right;
}

这样,我们的CSS代码也更具有语义性了。好了,说了这么多,简单的来说,使用HTML和CSS3,我们可以去掉所有的class属性和id属性,让分层更加清晰,让代码更加可读,让结构更加简单。

说了这么多,终于可以开始写代码了,这里我写的是一个Chrome插件,不过可以用浏览器去访问,很简单,做的一个下拉菜单,有三种效果,我这里截取了两种效果的图。先看图。


好了,我们有了目标,就写相应的代码把。首先写HTML代码。

<!DOCTYPE html>
<html>
<head>
<title>Amazon Button</title>
    
<script type="text/javascript" src="js/jquery.js"></script>
    
<script type="text/javascript" src="js/main.js"></script>
    
<link type="text/css" href="css/css.css" rel="stylesheet" />
</head>

<body>
    
<rmenu>
        
<rmenupopup>
            
<tmenu>
                Bestsellers
                    
<menupopup>
                        
<tmenu>
                            Bestsellers Item1
                                
<menupopup>
                                    
<menuitem>
                                        Google
                                    
</menuitem>
                                
</menupopup>
                        
</tmenu>
                        
<menuitem>
                            Bestsellers Item2
                        
</menuitem>
                        
<menuitem>
                            Bestsellers Item3
                        
</menuitem>
                    
</menupopup>
            
</tmenu>
            
<tmenu>
                Bestsellers
            
</tmenu>
        
</rmenupopup>
    
</rmenu>
</body>
</html>

不用我多说,你也应该知道是什么意思了,tmenu是菜单,menupopup是菜单一个容器,menuitem就是每个菜单项了。OK,现在我们再来写CSS代码。

body
{
    margin
:0px;
    font-size
:12px;
    font-family
:arial;
    width
:400px;
    height
:300px;
}

rmenu,rmenupopup,tmenu,menuitem,menupopup
{
    display
:block;
    margin
:0px;
    color
:black;
}

tmenu,menuitem
{
    background
:#f0f0f0;
    border-bottom
:1px solid #e0e0e0;
    border-top
:1px solid white;
    min-width
:200px;
    padding
:5px;
    max-width
:500px;
}

tmenu
{
    background
:#f0f0f0 url("../images/dropdown.png") no-repeat center right;
}

menupopup
{
    border
:1px solid #ccc;
}

menupopup
{
    display
:none;
    margin-left
:10px;
}

a
{
    text-decoration
:none;
    color
:black;
}

CSS代码也是非常好理解的,现在我们就要写菜单的相应的JS代码了,这里我就不贴出JS代码了,代码可以从源代码中下载得到。

小结

其实最后我们从编程实例中可以看出,虽然HTML5和CSS3对开发人员来说没有特别好的编码方面的提升,但是在效果上和语义化上面有了很大的提升,节约了开发人员很多步骤。也随着HTML5的发展,在线视频,在线游戏,在线3D的提出和实现,可以看出未来网络的发展越来越快,越来越丰富,真正的基于浏览器的网络游戏和3D游戏也会随着时间和浏览器的支持流行起来,到时候网络应用和桌面应用的界限也会越来越模糊。

代码下载

Prototype.zip (183.52 kb)

Web前端, 软件开发 , , ,

Comments

Add comment


(Will show your Gravatar icon)  

(Match case,A is not a!)
  Country flag

biuqbr
  • Comment
  • Preview
Loading



About me

Hello,欢迎来到我的博客,我叫郭靖(但不是大侠),我是一个程序员,现居北京,同时我还爱好设计和前端开发。
jguoer.comshangducms.com都在使用,还可以通过前缀dxwt访问电信和网通线路。:)

Suggest Articles

Loading..
感谢风云互联提供免费稳定优质的企业级主机 京ICP备09081424号 Best view on Mac OS X