用CSS建设网站的实例 不指定

Category : Html技术 | Post on 2008/01/09 13:42 by gdgzboy | Comments:0

目录:  

  • 第一步:规划网站,本教程将以图示为例构建网站;
  • 第二步:创建html模板及文件目录等;
  • 第三步:将网站分为五个div,网页基本布局的基础;
  • 第四步:网页布局与div浮动等;
  • 第五步:网页主要框架之外的附加结构的布局与表现;
  • 第六步:页面内的基本文本的样式(css)设置;
  • 第七步:网站头部图标与logo部分的设计;
  • 第八步:页脚信息(版权等)的表现设置;
  • 第九步:导航条的制作(较难);
  • 第十步:解决ie浏览器的显示bug;

    第一步:规划网站,本教程将以图示为例构建网站  

    1.规划网站,本教程将以下图为例构建网站。

    其基本布局见下图:

    DIV CSS网页布局实例:十步学会用CSS建站  

    主要由五个部分构成:

    DIV CSS网页布局实例:十步学会用CSS建站

    1.Main Navigation 导航条,具有按钮特效。 Width: 760px Height: 50px

    2.Header 网站头部图标,包含网站的logo和站名。 Width: 760px Height: 150px

    3.Content 网站的主要内容。 Width: 480px Height: Changes depending on content

    4.Sidebar 边框,一些附加信息。 Width: 280px Height: Changes depending on

    5.Footer 网站底栏,包含版权信息等。 Width: 760px Height: 66px  


  • 第二步:创建html模板及文件目录等 1.创建html模板。代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html>  
    <head>  
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />  
    <title>CompanyName - PageName</title>  
    <meta http-equiv="Content-Language" content="en-us" />    
    <meta http-equiv="imagetoolbar" content="no" />  
    <meta name="MSSmartTagsPreventParsing" content="true" />    
    <meta name="description" content="Description" />  
    <meta name="keywords" content="Keywords" />    
    <meta name="author" content="Enlighten Designs" />  
    <style type="text/css" media="all">@import "css/master.css";</style>  
    </head>  
    <body>  
    </body>  
    </html>    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    <title>CompanyName - PageName</title>
    <meta http-equiv="Content-Language" content="en-us" />
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="MSSmartTagsPreventParsing" content="true" />
    <meta name="description" content="Description" />  
    <meta name="keywords" content="Keywords" />
    <meta name="author" content="Enlighten Designs" />
    <style type="text/css" media="all">@import "css/master.css";</style>
    </head>
    <body>
    </body>
    </html>  

    将其保存为index.html,并创建文件夹css,images,网站结构如下:  

    DIV CSS网页布局实例:十步学会用CSS建站

    2.创建网站的大框,即建立一个宽760px的盒子,它将包含网站的所有元素。在html文件的<body>和</body>之间写入

    <div id="page-container">  
    Hello world.  
    </div>    
    <div id="page-container">
    Hello world.
    </div>

    创建css文件,命名为master.css,保存在/css/文件夹下。写入:  

    #page-container {  
    width: 760px;  
    background: red;  
    }  
    #page-container {
    width: 760px;
    background: red;
    }

    控制html的id为page-container的盒子的宽为760px,背景为红色。表现如下:  

    DIV CSS网页布局实例:十步学会用CSS建站  

    现在为了让盒子居中,写入margin: auto;,使css文件为:  

    #page-container {  
    width: 760px;  
    margin: auto;  
    background: red;  
    }      
    #page-container {
    width: 760px;
    margin: auto;
    background: red;
    }

    现在你可以看到盒子和浏览器的顶端有8px宽的空隙。这是由于浏览器的默认的填充和边界造成的。消除这个空隙,就需要在css文件中写入:  

    html, body {  
    margin: 0;  
    padding: 0;  
    }
    html, body {
    margin: 0;
    padding: 0;
    }  


  • 第三步:将网站分为五个div,网页基本布局的基础:  

    1.将“第一步”提到的五个部分都放入盒子中,在html文件中写入:

    <div id="page-container">  
    <div id="main-nav">Main Nav</div>    
    <div id="header">Header</div>    
    <div id="sidebar-a">Sidebar A</div>    
    <div id="content">Content</div>    
    <div id="footer">Footer</div>  
    </div>  
      
    <div id="page-container">
    <div id="main-nav">Main Nav</div>
    <div id="header">Header</div>
    <div id="sidebar-a">Sidebar A</div>
    <div id="content">Content</div>
    <div id="footer">Footer</div>
    </div>
      
    表现如下:  

    DIV CSS网页布局实例:十步学会用CSS建站  

    2.为了将五个部分区分开来,我们将这五个部分用不同的背景颜色标示出来,在css文件写入:  

    #main-nav {  
    background: red;  
    height: 50px;  
    }  
    #header {  
    background: blue;  
    height: 150px;  
    }  
    #sidebar-a {  
    background: darkgreen;  
    }  
    #content {  
    background: green;  
    }  
    #footer {  
    background: orange;  
    height: 66px;  
    }  
      
    #main-nav {
    background: red;
    height: 50px;
    }
    #header {
    background: blue;
    height: 150px;
    }
    #sidebar-a {
    background: darkgreen;
    }
    #content {
    background: green;
    }
    #footer {
    background: orange;
    height: 66px;
    }  

    表现如下:

    DIV CSS网页布局实例:十步学会用CSS建站  


    第四步:网页布局与div浮动等:  

    1.浮动,首先让边框浮动到主要内容的右边。用css控制浮动:  

    #sidebar-a {  
    float: rightright;  
    width: 280px;  
    background: darkgreen;  
    }  
      
    #sidebar-a {
    float: right;
    width: 280px;
    background: darkgreen;
    }  

    表现如下:  

    DIV CSS网页布局实例:十步学会用CSS建站

    2.往主要内容的盒子中写入一些文字。在html文件中写入:  

    <div id="content">  
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam gravida enim ut risus.    
    Praesent sapien purus, ultrices a, varius ac, suscipit ut, enim. Maecenas in lectus.  
    Donec in sapien in nibh rutrum gravida. Sed ut mauris. Fusce malesuada enim vitae lacus    
    euismod vulputate. Nullam rhoncus mauris ac metus. Maecenas vulputate aliquam odio.    
    Duis scelerisque justo a pede. Nam augue lorem, semper at, porta eget, placerat eget,    
    purus. Suspendisse mattis nunc vestibulum ligula. In hac habitasse platea dictumst.  
    </div>  
      
    <div id="content">
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam gravida enim ut risus.
    Praesent sapien purus, ultrices a, varius ac, suscipit ut, enim. Maecenas in lectus.
    Donec in sapien in nibh rutrum gravida. Sed ut mauris. Fusce malesuada enim vitae lacus
    euismod vulputate. Nullam rhoncus mauris ac metus. Maecenas vulputate aliquam odio.
    Duis scelerisque justo a pede. Nam augue lorem, semper at, porta eget, placerat eget,
    purus. Suspendisse mattis nunc vestibulum ligula. In hac habitasse platea dictumst.
    </div>

    表现如下:  

    DIV CSS网页布局实例:十步学会用CSS建站  

    但是你可以看到主要内容的盒子占据了整个page-container的宽度,我们需要将#content的右边界设为280px。以使其不和边框发生冲突。  

    css代码如下:

    #content {  
    margin-right: 280px;  
    background: green;  
    }  
    #content {
    margin-right: 280px;
    background: green;
    }  

    同时往边框里写入一些文字。在html文件中写入:  

    <div id="sidebar-a">  
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam gravida enim ut risus.    
    Praesent sapien purus, ultrices a, varius ac, suscipit ut, enim. Maecenas in lectus.    
    Donec in sapien in nibh rutrum gravida. Sed ut mauris. Fusce malesuada enim vitae lacus    
    euismod vulputate. Nullam rhoncus mauris ac metus. Maecenas vulputate aliquam odio.    
    Duis scelerisque justo a pede. Nam augue lorem, semper at, porta eget, placerat eget,    
    purus. Suspendisse mattis nunc vestibulum ligula. In hac habitasse platea dictumst.  
    </div>  
      
    <div id="sidebar-a">
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam gravida enim ut risus.
    Praesent sapien purus, ultrices a, varius ac, suscipit ut, enim. Maecenas in lectus.
    Donec in sapien in nibh rutrum gravida. Sed ut mauris. Fusce malesuada enim vitae lacus
    euismod vulputate. Nullam rhoncus mauris ac metus. Maecenas vulputate aliquam odio.
    Duis scelerisque justo a pede. Nam augue lorem, semper at, porta eget, placerat eget,
    purus. Suspendisse mattis nunc vestibulum ligula. In hac habitasse platea dictumst.
    </div>  

    表现如下:

    DIV CSS网页布局实例:十步学会用CSS建站  

    这也不是我们想要的,网站的底框跑到边框的下边去了。这是由于我们将边框向右浮动,由于是浮动,所以可以理解为它位于整个盒子之上的另一层。因此,底框和内容盒子对齐了。
    因此我们往css中写入:  

    #footer {  
    clear: both;  
    background: orange;  
    height: 66px;  
    }  
      
    #footer {
    clear: both;
    background: orange;
    height: 66px;
    }  

    表现如下:  

    DIV CSS网页布局实例:十步学会用CSS建站  


    第五步:网页主要框架之外的附加结构的布局与表现:

    第五步主要介绍除网页主要框架之外的附加结构的表现(Layout),包括以下内容:
    1.主导航条;
    2.标题(heading),包括网站名和内容标题;
    3.内容;
    4.页脚信息,包括版权,认证,副导航条(可选)。

    加入这些结构时,为了不破坏原有框架,我们需要在css文件"body"标签(TAG)下加入:

    .hidden {  
    display: none;  
    }  
    .hidden {
    display: none;
    }  

    ".hidden"即我们加入的类(class),这个类可以使页面上任意属于hidden类的元素(element)不显示。这些会在稍后使用,现在请暂时忘记它。  

    现在我们加入标题(heading):  

    先回到HTML的代码,<h1>到<h6>是我们常用的html标题代码。比如我们一般用<h1>网站名</h1>,<h2>网站副标题</h2>,<h3>内容主标题</h3>等。我们往html文件的Header层(Div)加入:  

    <div id="header">  
    <h1>Enlighten Designs</h1>  
    </div>    
    <div id="header">
    <h1>Enlighten Designs</h1>
    </div>  

    刷新一下页面,你就可以看到巨大的标题,和标题周围的空白,这是因为<h1>>标签的默认大小和边距(margin)造成的,先要消除这些空白,需要加入:  

    h1 {  
    margin: 0;  
    padding: 0;  
    }  
      
    h1 {
    margin: 0;
    padding: 0;
    }  

    接下来是导航条:  

    控制导航条表现的css代码相对比较复杂,我们将在第九步或是第十步中详细介绍。现在html文件加入导航代码:  

    <div id="main-nav">  
    <ul>  
    <li id="about"><a href="http://www.niuc.net/" >About</a></li>  
    <li id="services"><a href="http://www.niuc.net/" >Services</a></li>  
    <li id="portfolio"><a href="http://www.niuc.net/" >Portfolio</a></li>  
    <li id="contact"><a href="http://www.niuc.net/" >Contact Us</a></li>  
    </ul>  
    </div>  
    <div id="main-nav">  
    <ul>
    <li id="about"><a href="http://www.niuc.net/" >About</a></li>
    <li id="services"><a href="http://www.niuc.net/" >Services</a></li>
    <li id="portfolio"><a href="http://www.niuc.net/" >Portfolio</a></li>
    <li id="contact"><a href="http://www.niuc.net/" >Contact Us</a></li>
    </ul>
    </div>  

    (注:原教程使用了dl和dt,jorux在这使用了更常用的ul和li标签)
    目前导航条的表现比较糟糕,但是要在以后的教程中介绍其特殊表现,故需要暂时隐藏导航条,于是加入:

    <div id="main-nav">  
    <dl class="hidden">  
    <dt id="about"><a href="http://www.niuc.net/" >About</a></dt>  
    <dt id="services"><a href="http://www.niuc.net" >Services</a></dt>  
    <dt id="portfolio"><a href="http://www.niuc.net/" >Portfolio</a></dt>  
    <dt id="contact"><a href="http://www.niuc.net" >Contact Us</a></dt>  
    </dl>  
    </div>
    <div id="main-nav">
    <dl class="hidden">
    <dt id="about"><a href="http://www.niuc.net/" >About</a></dt>
    <dt id="services"><a href="http://www.niuc.net" >Services</a></dt>
    <dt id="portfolio"><a href="http://www.niuc.net/" >Portfolio</a></dt>
    <dt id="contact"><a href="http://www.niuc.net" >Contact Us</a></dt>
    </dl>
    </div>

    我们跳一步,先到页脚:

    页脚包括两部分:左边的版权,认证和右边的副导航条。
    我们先要让副导航条向右浮动,就像之前处理Sidebar和Content关系的一样,需要加入一个新的层(div):  

    <div id="footer">  
    <div id="altnav">  
    <a href="http://www.niuc.net/" >About</a> -    
    <a href="http://www.niuc.net" >Services</a> -    
    <a href="http://www.niuc.net/" >Portfolio</a> -    
    <a href="http://www.niuc.net/" >Contact Us</a> -    
    <a href="http://www.niuc.net/" >Terms of Trade</a>  
    </div>  
    </div>
    <div id="footer">
    <div id="altnav">
    <a href="http://www.niuc.net/" >About</a> -
    <a href="http://www.niuc.net/" >Services</a> -
    <a href="http://www.niuc.net/" >Portfolio</a> -
    <a href="http://www.niuc.net/" >Contact Us</a> -
    <a href="http://www.niuc.net/" >Terms of Trade</a>
    </div>
    </div>

    理论上,我们可以控制源文件上的任意元素的浮动,但由于IE浏览器的BUG,被浮动层需要首先出现在源文件上,也就是说我们把副标题放在版权和认证的前面:  

    <div id="footer">  
    <div id="altnav">  
    <a href="http://www.niuc.net/" >About</a> -    
    <a href="http://www.niuc.net/" >Services</a> -    
    <a href="http://www.niuc.net/" >Portfolio</a> -    
    <a href="http://www.niuc.net/" >Contact Us</a> -    
    <a href="http://www.niuc.net/" >Terms of Trade</a>  
    </div>  
    Copyright © Enlighten Designs  
    Powered by <a href="http://www.niuc.net" >Enlighten Hosting</a> and  
    <a href="http://www.niuc.net" >Vadmin 3.0 CMS</a></div>  
    <div id="footer">
    <div id="altnav">
    <a href="http://www.niuc.net/" >About</a> -
    <a href="http://www.niuc.net/" >Services</a> -
    <a href="http://www.niuc.net/" >Portfolio</a> -
    <a href="http://www.niuc.net/" >Contact Us</a> -
    <a href="http://www.niuc.net/" >Terms of Trade</a>
    </div>
    Copyright © Enlighten Designs
    Powered by <a href="http://www.niuc.net" >Enlighten Hosting</a> and
    <a href="http://www.niuc.net" >Vadmin 3.0 CMS</a></div>  

    刷新你的页面,你将看到如下所示:  

    DIV CSS网页布局实例:十步学会用CSS建站  

    最后我们回到内容部分:用<h2<>表现内容标题–"About","Contact us";用<p>表现段落;用</br>断行。  

    <div id="content">  
      <h2>About</h2>  
      <p><strong>Enlighten Designs</strong> is an Internet solutions provider that specialises in    
        front and back end development. To view some of the web sites we have created view our    
        portfolio.</p>  
      <p>We are currently undergoing a 'face lift', so if you have any questions or would    
        like more information about the services we provide please feel free to contact us.</p>  
      <h2>Contact Us</h2>  
      <p>Phone: (07) 853 6060<br />  
        Fax: (07) 853 6060<br />  
        Email: <a href="mailto:info@enlighten.co.nz" >info@enlighten.co.nz</a><br />  
        P.O Box: 14159, Hamilton, New Zealand</p>  
      <p><a href="http://www.niuc.net/" >More contact information…</a></p>  
    </div>
    <div id="content">
      <h2>About</h2>
      <p><strong>Enlighten Designs</strong> is an Internet solutions provider that specialises in
        front and back end development. To view some of the web sites we have created view our
        portfolio.</p>
      <p>We are currently undergoing a 'face lift', so if you have any questions or would
        like more information about the services we provide please feel free to contact us.</p>
      <h2>Contact Us</h2>
      <p>Phone: (07) 853 6060<br />
        Fax: (07) 853 6060<br />
        Email: <a href="mailto:info@enlighten.co.nz" >info@enlighten.co.nz</a><br />
        P.O Box: 14159, Hamilton, New Zealand</p>
      <p><a href="http://www.niuc.net/" >More contact information…</a></p>
    </div>

    刷新页面可以看到在Content层中又出现一些空白,这是由于<h2><p>标签的默认边距(margin)造成的,我们必须消除这些恼人的空白,当又不想把网页中所有的<h2><p>标签地边距都设为0,这就需要使用css的子选择器("child css selector"),在html的文件结构中,我们想控制的<h2><p>标签(child)是属于#content层(parent)的,因此在css文件中写入:  

    #content h2 {  
    margin: 0;  
    padding: 0;  
    }  
    #content p {  
    margin: 0;  
    padding: 0;  
    }
    #content h2 {
    margin: 0;
    padding: 0;
    }
    #content p {
    margin: 0;
    padding: 0;
    }  

    这样我们就告诉浏览器,仅仅是隶属于content层的<h2><p>标签的margin和padding的值为0!  


    第六步:页面内的基本文本的样式(css)设置:  

    你是不是厌倦了那些大红大绿的背景,现在是去掉它们的时候了,只保留导航条的红色背景。真是难为您居然能坚持学习本教程到此,很好,再过几步,你就能很好了解css控制整个网页版面(Layout)的能力。  

    –言归正传–  

    先设置全局的文本样式:  

    body {  
    font-family: Arial, Helvetica, Verdana, Sans-serif;  
    font-size: 12px;  
    color: #666666;  
    background: #ffffff;  
    }
    body {
    font-family: Arial, Helvetica, Verdana, Sans-serif;
    font-size: 12px;
    color: #666666;
    background: #ffffff;
    }

    一般我们把body标签放在css文件的顶端,当然你要是执意要把它放在尾部,浏览器不会和你计较。font-family内的顺序决定字体显示优先级,比方如果所在计算机没有Arial字体,浏览器就会指向Helvetica字体,依次类推;color指字体颜色;background指背景颜色。
    如果你都是按本教程的操作,应该能看到下图:

    DIV CSS网页布局实例:十步学会用CSS建站  

    你可以看到内容(content)的各块(block)之间的间隙太小了,而基于最初的设计,内容标题(即<h2>)和正文之间的间隙大概是15px,每个段落的间距也大概是15px,所以在css中写入:  

    #content h2 {  
    margin: 0;  
    padding: 0;  
    padding-bottom: 15px;  
    }  
    #content p {  
    margin: 0;  
    padding: 0;  
    padding-bottom: 15px;  
    }
    #content h2 {
    margin: 0;
    padding: 0;
    padding-bottom: 15px;
    }
    #content p {
    margin: 0;
    padding: 0;
    padding-bottom: 15px;
    }

    然后需要让content层的四周都空出25px的间隙,这本来是件很简单的事,理论上我们只需在#content的css文件中加入padding: 25px;就行了,但是IE给我们上了"一课",它的固有BUG根本不能按我们的想象表现。解决这个问题有两种办法。第一种办法是区别浏览器写入两种代码(HACK IE),但因为间隙(padding,在Dreamweaver中又叫填充)使用很频繁,所以我们用另一种办法。  

    我们往需要填充的层中加入padding层,它的功能仅限于显示间隙:  

    <div id="sidebar-a">  
    <div class="padding">  
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam gravida enim ut risus.    
    Praesent sapien purus, ultrices a, varius ac, suscipit ut, enim. Maecenas in lectus.    
    Donec in sapien in nibh rutrum gravida. Sed ut mauris. Fusce malesuada enim vitae lacus    
    euismod vulputate. Nullam rhoncus mauris ac metus. Maecenas vulputate aliquam odio.    
    Duis scelerisque justo a pede. Nam augue lorem, semper at, porta eget, placerat eget,    
    purus. Suspendisse mattis nunc vestibulum ligula. In hac habitasse platea dictumst.  
    </div>  
    </div>  
    <div id="sidebar-a">
    <div class="padding">
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam gravida enim ut risus.
    Praesent sapien purus, ultrices a, varius ac, suscipit ut, enim. Maecenas in lectus.
    Donec in sapien in nibh rutrum gravida. Sed ut mauris. Fusce malesuada enim vitae lacus
    euismod vulputate. Nullam rhoncus mauris ac metus. Maecenas vulputate aliquam odio.
    Duis scelerisque justo a pede. Nam augue lorem, semper at, porta eget, placerat eget,
    purus. Suspendisse mattis nunc vestibulum ligula. In hac habitasse platea dictumst.
    </div>
    </div>  

    同样的,再往html文件的content层中加入padding层。  

    由于padding层的功能仅是制造空隙,所以不要设置它的宽度,只需在css中添加:  

    #sidebar-a {  
    float: rightright;  
    width: 280px;  
    }  
    #sidebar-a .padding {  
    padding: 25px;  
    }  
    #content {  
    margin-right: 280px;  
    }  
    #content .padding {  
    padding: 25px;  
    }  
    #sidebar-a {
    float: right;
    width: 280px;
    }
    #sidebar-a .padding {
    padding: 25px;
    }
    #content {
    margin-right: 280px;
    }
    #content .padding {
    padding: 25px;
    }

    就像我们之前用的方法一样,我们只选择了类(class)为padding,且父类(parent)为#content或#sidebar-a的元素(element)。  

    接下来设置行距,content和sidebar-a的行距需要加宽,但在css中是没有行距(leading)这种属性(attribute)的,但是有行高(line-height)属性,因此往css中写入:

    #sidebar-a {  
    float: rightright;  
    width: 280px;  
    line-height: 18px;  
    }  
    #content {  
    margin-right: 280px;  
    line-height: 18px;  
    }  
      
    #sidebar-a {
    float: right;
    width: 280px;
    line-height: 18px;
    }
    #content {
    margin-right: 280px;
    line-height: 18px;
    }

    现在可以看到标题"about"和"contact us"显得相当突兀,这是因为我们使用的字体并不是一种网页字体,我们需要将其替换为以下图片,并将其存放于/images/headings/文件夹中:

    替换方法为,在html文件的<h2>标签中写入:  

    <h2><img src="images/headings/about.gif" width="54" height="14" alt="About" /></h2>  
    <h2> <img src="images/headings/contact.gif" width="98" height="14" alt="Contact Us" /> </h2>  
    <h2><img src="images/headings/about.gif" width="54" height="14" alt="About" /></h2>
    <h2> <img src="images/headings/contact.gif" width="98" height="14" alt="Contact Us" /> </h2>

    于是得到下图:

    DIV CSS网页布局实例:十步学会用CSS建站

    DIV CSS网页布局实例:十步学会用CSS建站


    第七步:网站头部图标与logo部分的设计:

    为实现设计时的网页头部效果,我们需要以下两幅图:
    /images/headers/about.jpg

    DIV CSS网页布局实例:十步学会用CSS建站  

    /images/general/logo_enlighten.gif

    DIV CSS网页布局实例:十步学会用CSS建站  

    首先我们给#header层添加背景图案:

    #header {  
    height: 150px;  
    background: #db6d16  
    url(../images/headers/about.jpg);  
    }  
    #header {
    height: 150px;
    background: #db6d16
    url(../images/headers/about.jpg);
    }  

    我们使用的背景属性为一些简写的属性名,用其能规定背景的颜色,图案,图案的位置,是否重复以及如何重复。之所以把背景色设为桔黄色,是因为当用户使浏览器屏蔽图片时,网站的头部不会变的一片空白。应该注意到图片的路径是相对于css的存放位置而言的,而不是html文件,因此有"../"。  

    接着替换掉<h1></h1>标签里的"Enlighten Designs":

    <div id="header">  
    <h1><img src="images/general/logo_enlighten.gif"    
    width="236" height="36" alt="Enlighten Designs" border="0" /></h1>  
    </div>
    <div id="header">
    <h1><img src="images/general/logo_enlighten.gif"
    width="236" height="36" alt="Enlighten Designs" border="0" /></h1>
    </div>  

    logo_enlighten图片浮在头部的左上方,我们需要设置<h1>的属性值为:

    h1 {  
    margin: 0;  
    padding: 0;  
    float: right;  
    margin-top: 57px;  
    padding-right: 31px;  
    }  
      
    h1 {
    margin: 0;
    padding: 0;
    float: right;
    margin-top: 57px;
    padding-right: 31px;
    }  

    这样我们使存在于<h1>层的图片向右浮动,并且上边距(margin-top)为57px,右间隙(padding-right)为31px,如下图所示:  

    DIV CSS网页布局实例:十步学会用CSS建站  

    注意:细心的你可能会发现我们使用了padding-right而不是margin-right,这是因为IE的怪毛病不少,它会在不定的地方无法正确显示margin-right/left属性,所以使用了padding(间隙,Dreamweaver中又被称为填充)属性。  

    Jorux提示:希望大家在以后的css编写过程中,尽量使用padding属性,以免造成浏览器调试麻烦。  


    第八步:页脚信息(版权等)的表现设置:

    首先需要控制页脚的文本显示:  

    #footer {  
    clear: both;  
    height: 66px;  
    font-family: Tahoma, Arial, Helvetica, Sans-serif;  
    font-size: 10px;  
    color: #c9c9c9;  
    }
    #footer {
    clear: both;
    height: 66px;
    font-family: Tahoma, Arial, Helvetica, Sans-serif;
    font-size: 10px;
    color: #c9c9c9;
    }  

    接着我们需要设置存在链接的文本的显示,在这我们没有改变文本的颜色(仍然为#c9c9c9),而只是让下划线消失:

    #footer a {  
    color: #c9c9c9;  
    text-decoration: none;  
    }  
    #footer a {
    color: #c9c9c9;
    text-decoration: none;
    }  

    但是我们想让那些存在链接的文本,在鼠标悬停在其上方时变色为#db6d16:  

    #footer a:hover {
    color: #db6d16;
    }  

    然后我们想给页脚加上灰色的上边框,在footer层的四周设置一些间隙,并加大文本的行距:  

    #footer {  
    clear: both;  
    height: 66px;  
    font-family: Tahoma, Arial, Helvetica, Sans-serif;  
    font-size: 10px;  
    color: #c9c9c9;  
    border-top: 1px solid #efefef;  
    padding: 13px 25px;  
    line-height: 18px;  
    }  
      
    #footer {
    clear: both;
    height: 66px;
    font-family: Tahoma, Arial, Helvetica, Sans-serif;
    font-size: 10px;
    color: #c9c9c9;
    border-top: 1px solid #efefef;
    padding: 13px 25px;
    line-height: 18px;
    }  

    最后我们需要做的就是让副导航层(#altnav)向右浮动,需要指出的是,浮动层是必须设置宽度(width)才能正常浮动的,所以我们把#altnav的宽度设置为350px,略宽于文本的长度(为了让副标题的文字显示完全),然后让文本向右对齐:  

    #footer #altnav {  
    width: 350px;  
    float: rightright;  
    text-align: rightright;  
    }  
      
    #footer #altnav {
    width: 350px;
    float: right;
    text-align: right;
    }  

    如果你按照以上方法,将得到如下图所示的页脚样式:

    DIV CSS网页布局实例:十步学会用CSS建站


    第九步:导航条的制作(较难):  

    Jorux注:导航条之所以放在第九步讲,是因为导航条制作是本教程中最难的部分,自然也是技术含量最高的地方.导航条的制作可易可难,但这里介绍的相对较难,您能坚持到这一步已经很不易,如果你只是有个导航条就满足的话,请参看第八步的副导航条的制作。

    先去掉导航条的红色背景,还有就是移除html文件中main-nav层的"class="hidden"",使导航条的内容显示出来。我们实现导航条图片的变换的方法是纯css代码的,不包含任何js或是flash,因此我们所用的图片是4幅分别由三个小图组合而成的图片,如下所示,并将这4幅图保存于/images/nav/文件夹中:  

    DIV CSS网页布局实例:十步学会用CSS建站DIV CSS网页布局实例:十步学会用CSS建站DIV CSS网页布局实例:十步学会用CSS建站DIV CSS网页布局实例:十步学会用CSS建站  

    我们实现导航条的动态效果如下图所示:  

    DIV CSS网页布局实例:十步学会用CSS建站

    在网页显示的只是图中红框标出的部分,如果把每幅图分为上,中,下三部分的话,未发生动作时显示上部,当光标悬停时,显示的是中部,被选择时则显示下部。

    接下来进入css代码部分,先往css文件中写入:  

    /* Main Navigation */  
    #main-nav { height: 50px; }  
    #main-nav ul { margin: 0; padding: 0; }
    /* Main Navigation */
    #main-nav { height: 50px; }
    #main-nav ul { margin: 0; padding: 0; }

    注意:/* Main Navigation */为增加css文件可读性的说明,不会影响表现。
    #main-nav的height属性定义了main-nav层的高度;"#main-nav ul" 则定义main-nav层中列表的属性,在这里先定义其margin和padding为0。  

    根据先前的设计,导航条应该和左边有一定的距离,这就需要设置main-nav层的左边距(padding-left)为11px,但由于IE5和Mac浏览器的BUG,需要加入以下代码:  

    /* IE5 Mac Hack \*/    
    #main-nav { padding-left: 11px; }    
    /*/    
    #main-nav { padding-left: 11px; overflow: hidden; }    
    /* End Hack */    
    /* IE5 Mac Hack \*/
    #main-nav { padding-left: 11px; }
    /*/
    #main-nav { padding-left: 11px; overflow: hidden; }
    /* End Hack */  

    现在你可以看到导航列表距左边有11px的距离,但是列表项目是竖排的,将<li>,即列表项目向左对齐就能使其从左到右横向排列:  

    #main-nav li { float: left; }
    #main-nav li { float: left; }  

    为了使列表项目的尺寸和容纳它的层保持一致,并利用浮动属性使列表项目的文本隐藏,写入:  

    #main-nav li a {  
    display: block;  
    height: 0px !important;  
    height /**/:50px; /* IE 5/Win hack */    
    padding: 50px 0 0 0;  
    overflow: hidden;  
    background-repeat: no-repeat;  
    }  
      
    #main-nav li a {
    display: block;
    height: 0px !important;
    height /**/:50px; /* IE 5/Win hack */
    padding: 50px 0 0 0;
    overflow: hidden;
    background-repeat: no-repeat;
    }

    接着,要实现当光标悬停于列表项目上时,显示背景图片的中部,因此需要将背景图片向上移动50px,写入:

    #main-nav li a:hover {  
    background-position: 0 -50px;  
    }
    #main-nav li a:hover {
    background-position: 0 -50px;
    }

    给各个列表项目设置宽度和背景图片的路径:  

    #main-nav li#about,  
    #main-nav li#about a { width: 71px; background-image: url(../images/nav/about.gif); }  
    #main-nav li#services,  
    #main-nav li#services a { width: 84px; background-image: url(../images/nav/services.gif); }  
    #main-nav li#portfolio,  
    #main-nav li#portfolio a { width: 95px; background-image: url(../images/nav/portfolio.gif); }  
    #main-nav li#contact,  
    #main-nav li#contact a { width: 106px; background-image: url(../images/nav/contact.gif); }  
    #main-nav li#about,
    #main-nav li#about a { width: 71px; background-image: url(../images/nav/about.gif); }
    #main-nav li#services,
    #main-nav li#services a { width: 84px; background-image: url(../images/nav/services.gif); }
    #main-nav li#portfolio,
    #main-nav li#portfolio a { width: 95px; background-image: url(../images/nav/portfolio.gif); }
    #main-nav li#contact,
    #main-nav li#contact a { width: 106px; background-image: url(../images/nav/contact.gif); }  

    最后我们要做的就是,当列表项目被选时,显示背景图片的下部。为此我们需要增加一些css代码对原有的css表现作一些修改:  

    body.about li#about,  
    body.about li#about a,  
    body.services li#services,  
    body.services li#services a,  
    body.portfolio li#portfolio,  
    body.portfolio li#portfolio a,  
    body.contact li#contact,  
    body.contact li#contact a {  
    background-position: 0 -100px;  
    }  
    body.about li#about,
    body.about li#about a,
    body.services li#services,
    body.services li#services a,
    body.portfolio li#portfolio,
    body.portfolio li#portfolio a,
    body.contact li#contact,
    body.contact li#contact a {
    background-position: 0 -100px;
    }

    以上看似庞大的css选择器可以识别body标签的类(class),如html中为:  

    <body class="about">
    <body class="about">  

    以上css选择器就让li#about,li#about a,的背景向上移动100px,使其显示背景图片的下部。  

    如果我们希望网站头部背景图片也根据body标签的类进行变换,就需修改css的#header为:  

    body.about #header {  
    height: 150px;  
    background: #db6d16  
    url(../images/headers/about.jpg);  
    }  
    body.about #header {
    height: 150px;
    background: #db6d16
    url(../images/headers/about.jpg);
    }

    至此就完成了"About"网页的制作,依此类推,修改html中body的类为services/portfolio/contact制作相应html文件并分别保存。  

    在css文件中添加各个网页相应的头部背景图片路径(如services网页的头部背景图片为services.jpg,在css中添加如下代码):

    body.services #header {  
    height: 150px;  
    background: #db6d16  
    url(../images/headers/services.jpg);  
    }  
    body.services #header {
    height: 150px;
    background: #db6d16
    url(../images/headers/services.jpg);
    }

    然后用超级链接将这些网页连接起来,就组成了一个小网站了。  


    第十步:解决IE浏览器的显示BUG: 要继续此教程需要IE的以前的版本进行测试,你可以在这里下载到。绝大部分中国用户使用的是IE6.0,因此您几乎不需要看下去了。  

    IE中主要出问题的是IE5和IE5.5,如其不能识别css中margin值为auto,要实现层的中间对齐,需加入:  

    body {  
    font-family: Arial, Helvetica, Verdana, Sans-serif;  
    font-size: 12px;  
    color: #666666;  
    text-align: center;  
    }  
    body {
    font-family: Arial, Helvetica, Verdana, Sans-serif;
    font-size: 12px;
    color: #666666;
    text-align: center;
    }  

    但是这样设置之后,网站的content层的文本也变成中间对齐了,我们需要让其向左对齐,加入:  

    #page-container {  
    width: 760px;  
    margin: auto;  
    text-align: left;}    
    #page-container {
    width: 760px;
    margin: auto;
    text-align: left;}

    关于页脚的BUG,将版权内容加入新的#copyright层中,在html中加入:  

    <div id="copyright">  
    Copyright © Enlighten Designs<br />  
    Powered by <a xhref="http://www.niuc.net" mce_href="http://www.niuc.net">Enlighten Hosting</a> and  
    <a xhref="http://www.niuc.net" mce_href="http://www.niuc.net">Vadmin 3.0 CMS</a>  
    </div>    
    <div id="copyright">
    Copyright © Enlighten Designs<br />
    Powered by <a xhref="http://www.niuc.net" mce_href="http://www.niuc.net">Enlighten Hosting</a> and
    <a xhref="http://www.niuc.net" mce_href="http://www.niuc.net">Vadmin 3.0 CMS</a>
    </div>  

    在css文件中加入,并将#footer的padding-top: 13px;移除:  

    #footer #altnav {  
    clear: both;  
    width: 350px;  
    float: rightright;  
    text-align: rightright;  
    padding-top: 13px;  
    }  
    #footer #copyright {  
    padding-top: 13px;  
    }  
    #footer #altnav {
    clear: both;
    width: 350px;
    float: right;
    text-align: right;
    padding-top: 13px;
    }
    #footer #copyright {
    padding-top: 13px;
    }

    最后要解决的BUG是当光标在导航条的被选列表项目链接上悬停时(如在about的网页,body的类为about,但我们将光标移到导航条的about图片上时),背景图片消失了,这就需要加入:

    body.about li#about,  
    body.about li#about a,  
    body.about dt#about a:hover,  
    body.services li#services,  
    body.services li#services a,  
    body.services li#services a:hover,  
    body.portfolio li#portfolio,  
    body.portfolio li#portfolio a,  
    body.portfolio li#portfolio a:hover,  
    body.contact li#contact,  
    body.contact li#contact a,  
    body.contact li#contact a:hover {  
    background-position: 0 -100px;  
    }  
    body.about li#about,
    body.about li#about a,
    body.about dt#about a:hover,
    body.services li#services,
    body.services li#services a,
    body.services li#services a:hover,
    body.portfolio li#portfolio,
    body.portfolio li#portfolio a,
    body.portfolio li#portfolio a:hover,
    body.contact li#contact,
    body.contact li#contact a,
    body.contact li#contact a:hover {
    background-position: 0 -100px;
    }

    CSS的overflow属性清除浮动

    Category : Html技术 | Post on 2008/01/08 17:14 by gdgzboy | Comments:0

    这个方法不单使用简单,而且FF、OP、IE7都支持,从此可以告别那又长兼容性又差的FF清浮动的方法了。

    方法真的很简单,只要为需要清浮动的标签加上overflow这个属性。  

    ul{
    list-style:none;
    height:auto;
    margin:0;p
    adding:0;
    background-color:#436973;
    }
    li{
    float:left;
    width:80px;
    height:80px;
    background-color:#83B1DF;
    }
    .demo{
    clear:both;
    border:1px solid #FF00FF;
    margin-bottom:5px;
    }
    .overflow{
    overflow:auto;
    zoom:1;
    background-color:#43FF73;
    }
    ul{
    list-style:none;
    height:auto;
    margin:0;
    padding:0;
    background-color:#436973;
    }
    li{
    float:left;
    width:80px;
    height:80px;
    background-color:#83B1DF;
    }
    .demo{
    clear:both;
    border:1px solid #FF00FF;
    margin-bottom:5px;
    }
    .overflow{
    overflow:auto;
    zoom:1;
    background-color:#43FF73;
    }

    HTML代码  

    <div class="demo">
    <ul class="overflow">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    </ul>
    </div>
    <div class="demo">
    <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    </ul>
    </div>  

    其中zoom是为了IE6准备的。  

    注:忘了一个很重要的内容,并不是所有的overflow属性都可起来一样的效果,比如visible属性就只能对IE起作用。这样的话就有一个问题啦,如果要有高度,而且内容超出高度的时候,定义auto或hidden都可能会有一些不想要的效果出现。这里提供一个解决方案:对于IE6及以下版本的IE,可以直接定义高度;对于IE7、FF、OP,可定义min-height。  

    CSS代码  

    overflow
    {
    height:auto;
    _height:200px;
    min-height:200px;
    verflow:auto;
    zoom:1;
    _overflow:visible;
    }  

    跨浏览器的CSS定位 不指定

    Category : Html技术 | Post on 2008/01/08 17:10 by gdgzboy | Comments:0

    本文介绍了跨浏览器的CSS固定定位,请看下面的例子:  

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    ……
    <style type="text/css">
    #fixed{position:fixed;top:5em;right:0;……}   /*针对IE7、Opera、Firefox一行搞定*/
    </style>
    /*IE6中利用容器对溢出内容的处理方式来实现的*/
    <!–[if IE 6]>
    <style type="text/css">
    html{overflow:hidden;}
    body{height:100%;overflow:auto;}
    #fixed{position:absolute;right:17px;}
    /*fixed元素的绝对位置是相对于HTML元素来说,滚动条是body元素的,这是设置right:17px的原因*/
    </style>
    <![endif]–>
    <!–[if lt IE 6]>
    <style type="text/css">
    #fixed{position:absolute;top:expression(eval(document.body.scrollTop   50));}
    </style>
    <![endif]–>
    </head>
    <body>
    <div id="wrapper">
    ……
    </div>
    <div id="fixed"><h2>{position:fixed}</h2></div>
    </body>
    </html>  

    IE7对css选择器的改进

    Category : Html技术 | Post on 2008/01/08 17:08 by gdgzboy | Comments:0

    1、对伪类的支持。IE6和更低的版本对于伪类的支持仅限于a标签,诸如“:hover”、“:active”、“:focus”之类的伪类理论上是应该适用于所有元素的,但是IE6和更低版本抛弃了它们。这次IE7有选择地支持了“:hover”。

    div:hover {
    background-color: #B7B7B7;
    }  

    诸位可以试试。  

    2、对子选择器的支持。现在在IE7里你可以使用如下的定义:  

    #block1 > h3 {
    color: red;
    }  

    3、对相邻选择器的支持。你可以指定同一父元素下的紧邻某个元素之后的元素的样式  

    *   p {
    color: Blue;
    }  

    4、对相邻选择器的扩展(?也许是bug),IE7支持“* html”这样的通用选择器和相邻选择器的组合,注意,这里是“* html”,很奇怪吧? FF2.0和其他浏览器是不支持这样的写法的,不过都支持“* body”这样的。所以,对IE7的CSS HACK就可以利用* html来写了。

    5、对属性选择器的支持。支持了  

    a[rel="nofollow"]
    [class="ie7"]
    a[rel~="my"]  

    这几个属性选择器,但是还是不支持a[titile]。  

    选择器在平时的应用里很少用到,有一种说法是渲染会比其他的慢。不过很多选择器的效果在这之前是只能使用js来实现的,相对于js,css似乎更加有效率一些。  

    Tags: , , ,

    IE7新支持的CSS属性

    Category : Html技术 | Post on 2008/01/08 17:06 by gdgzboy | Comments:0
    以下是IE7中新支持的属性:
    min-height,max-height,min-width,max-width

    这个hack还可以使最大高度兼容IE6,你可以举一反三:
    {height:350px;overflow:hidden;}

    以下是IE7中新支持的属性选择符:

    精确属性匹配 [=] : 只有当属性完全匹配指定值的时候, 则会应用该css定义.
    存在匹配 []: 只要存在这样的属性, 则应用该css定义.
    连字号匹配[|=]: 使用连字号匹配的css定义. 例如: <span abc=”en-us”>dddd</span> 它就能应用 <style>[abc|=”en”] {color:red;}</style>
    前缀匹配[^=]: 只有是指定属性以指定字符开始, 则应用该css定义.
    子字符串匹配[*=]: 只有指定属性存在指定字符, 则应用该css定义.
    后缀匹配[$=]: 只有指定属性以指定字符结尾, 则应用该css定义.
    空白分隔匹配[~=]: 是指使用空格或空白间隔的属性值, 则应用该css定义. 例如: <span abc=”ddd here abc”>dddd</span> 它就能应用<style>[abc~=”here”]{color:red;}</style>  

    这里有几个例子:
    <HTML>
    <HEAD>
    <TITLE>CSS3: Attribute Selectors</TITLE>
    <style>
    .test {color: green;display: none;}
    .fail {color: red;}
    [special] {display: block;}
    [attr=”Value”] {display: block;}
    [attr^=”B”] {display: block;}
    [attr$=”n”] {display: block;}
    [attr*=”ai”] {display: block;}
    [attr|=”en”] {display: block;}
    [attr~=”Two”] {display: block;}
    [class=”fail”] {display: none;}
    </style>
    </HEAD>
    <BODY>
    <h1>CSS3: Attribute Selectors</h1>

    <h2>Attribute Selector Tests</h2>
    <div class=”test” special>1. Test for [] (Existence) succeeded.</div>
    <div class=”test” attr=”Value”>2. Test for [=] (Value) succeeded.</div>
    <div class=”test” attr=”Blue”>3. Test for [^=] (Prefix) succeeded.</div>
    <div class=”test” attr=”Green”>4. Test for [$=] (Suffix) succeeded.</div>
    <div class=”test” attr=”Contains”>5. Test for [*=] (Substring) succeeded.</div>
    <div class=”test” attr=”en-us”>6. Test for [|=] (Hyphen) succeeded.</div>
    <div class=”test” attr=”One Two Three”>7. Test for [~=] (Token) succeeded.</div>
    <div class=”fail”>Attribute selector tests failed.</div>

    </BODY>
    </HTML>

    Tags: , , ,

    Javascript打印网页部分内容

    Category : Html技术 | Post on 2008/01/08 01:31 by gdgzboy | Comments:0

    正常情况下的打印是使用 window.print(); 直接整页打印,但如果需要打印网页中定义的部分内容,则可使用如下的方法:  

    1、在页面的代码头部处加入JavaScript:

    JavaScript代码  

    <script language=javascript>    
    function doPrint() {    
    bdhtml=window.document.body.innerHTML;    
    sprnstr="<!--startprint-->";    
    eprnstr="<!--endprint-->";    
    prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr) 17);    
    prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));    
    window.document.body.innerHTML=prnhtml;    
    window.print();    
    }    
    </script>

    2、在页面正文处加上<!--startprint-->与<!--endprint-->标识。

    也就是在需要用户打印保存的正文所对应的html处附加上。同时,如果采用小偷程序获得远程数据并需打印,可将此等数据置于该定义标签之内即可。  

    3、截取内容部分已完成,现在加个“打印”的链接:

    XML/HTML代码  

    <a href="javascript:;" onClick="doPrint()">打印</a>  

    Javascript隐藏网页源代码

    Category : Html技术 | Post on 2008/01/08 01:28 by gdgzboy | Comments:0

    今天看到一个网页,查看源代码时居然是空的。非常好奇。将这个网页下载到本地之后发现是通过一段JS脚本来实现这个效果的。现与大家分享:

    <html>  
    <head>  
    <title>查看源文件为空-</title>  
    <script>  
    function clear() {    
    Source=document.body.firstChild.data;    
    document.open();    
    document.close();    
    document.body.innerHTML=Source;    
    }    
    </script>  
    </head>  
    <body onload=clear()>  
    .....    
    </body>  
    </html>  

    CSS 教程 - 表单设计技巧 不指定

    Category : Html技术 | Post on 2008/01/08 01:20 by gdgzboy | Comments:0

      “输入框( Input )应当符合逻辑地划分为小组,这样大脑就可以很好的处理大堆区域间的关系。”– 《HTML权威指南》  

      Web 应用程序总是利用表单来处理数据录入和配置,但并不是所有的表单都保持一致。输入区域的对齐方式,各自的标签(label),操作方式,以及周围的视觉元素都会或多或少影响用户的行为。

      表单布局

      考虑到用户完成表单填写的时间应当尽可能的短,并且收集的数据都是用户所熟悉的(比如姓名、地址、付费信息等),垂直对齐的标签和输入框可以说是最佳的。每对标签和输入框垂直对齐给人一种两者接近的感觉,并且一致的左对齐减少了眼睛移动和处理时间。用户只需要往一个方向移动:下。  

      CSS教程:网页表单设计技巧  

      在这种布局中,推荐使用加粗的标签,这可以增加它们视觉比重,提高其显著性。如果不加粗的话,从用户的角度讲,标签和输入框的文字几乎就一样了。  

      如果一个表单上的数据并不为人熟悉或者在逻辑上分组有困难(比如一个地址的多个组成部分),左对齐的标签可以很容易的通览表单的信息。用户只需要上下看看左侧一栏标签就可以了,而不会被输入框打断思路。但这样一来,标签与其对应的输入框之间的距离通常会被更长的标签拉长,可能会影响填写表单的时间。用户必须左右来回的跳转目光来找到两个对应的标签和输入框。

      CSS教程:网页表单设计技巧  

      于是产生了一种替代的方案,标签右对齐布局,使得标签和输入框之间的联系更紧密。然而结果是左边参差不齐的空白和标签让用户很难快速检索表单要填写的内容。在西方国家,人们习惯于从左至右的书写,所以这种右对齐的布局就给用户造成了阅读障碍。

      CSS教程:网页表单设计技巧  

      借助可视化元素

      由于“标签左对齐布局”的优点(方便检索并且减少垂直高度),尝试纠正它的主要缺点(标签和输入框的分离)就很诱惑人。

      一个方案就是增加背景色和分割线,不同的背景色产生了一列垂直的标签和一列垂直的输入框,每一组标签和输入框利用清晰的水平线分开。虽然这听上去不错,但是还是会存在问题。  

      对比之前的形态(用户主观的视觉区分),这增加了15个视觉元素:中间线、一个个有背景色的单元格以及一条条的水平线。这些元素会转移用户的视线,让用户难以聚焦到一些重要的元素上,比如标签和输入框。 正如 Edward Tufte 指出的:“信息本身存在差异,必然产生感官上的不同。”换句话说,任何对布局无用的视觉元素都会不断地扰乱布局。当你试着浏览左侧的标签就可以发现,你的视线总是被打断,停下来想那些水平线、单元格和背景颜色。  

      CSS教程:网页表单设计技巧  

      当然这并不意味着放弃背景色和线条。它们对于划分相关区域信息还是很有效的。比如一条细水平线或者一个浅浅的背景色,都可以从视觉上组合相关数据。背景色和线条对于区分表单的主要操作按钮尤其有效。  

      CSS教程:网页表单设计技巧  

      主次操作  

      一个表单的主要操作(通常是“提交”或“保存”)需要一个比较强的视觉比重(在上面的例子里用了亮色调、粗字体、背景色等等)。这相当于给用户一个提示:您已/即将完成填写表单。

      当一个表单有多个操作,比如“继续”和“返回”,那有必要减轻次要操作的视觉重量。这可以最小化用户潜在的操作错误的风险。  

      CSS教程:网页表单设计技巧  

      虽然以上内容可以更好的让你设计表单,但是组合布局、可视化元素以及内容,仍然需要经过用户的测试以及数据分析(完成度评估、错误报告等)。  


    相关文章列表:

    CSS 教程 - css框架
    CSS 教程 - 闭合浮动元素
    CSS 教程 - H1
    CSS 教程 - 计算CSS盒模型宽和高
    CSS 教程 - 命名参考
    CSS 教程 - DIV底部放置文字
    CSS 教程 - 控制网页文件大小
    CSS 教程 - dl dt dd
    CSS 教程 - CSS的继承性
    CSS 教程 - 浮动元素
    CSS 教程 - position绝对定位的问题
    CSS 教程 - 表单设计技巧
    CSS 教程 - 定位(position)
    CSS 教程 - 盒模型(BOX Model)
    CSS 教程 - 水平对齐(text-align)
    CSS 教程 - CSS固定表头的HTML表格
    CSS 教程 - 对搜索引擎更友好
    CSS 教程 - li和ul标签的用法


    Web标准价值所在

    Category : Html技术 | Post on 2008/01/08 01:13 by gdgzboy | Comments:0

      清清楚楚的明白Web标准的价值!Web标准的价值相信没人会不知道,不理睬。可是具体能做什么,能不能很好的作为一个规范或者指标去诊断网站存在的问题,能不能列出一张清单,清清楚楚地看到它的价值呢?  

      我大概列出了一些价值,抛砖引玉一下,希望能够完善这个想法,并得到更好的意见。具体的清单数据如何得到还在摸索中。

    面向人——访问者:
      访问速度加快(如何加快,加快了多少,字节减少,降低并发)
      多种设备可供选择(多浏览器,多版本浏览器,多设备)
      多样式可供选择(换肤技术)
      残障人士不被拒绝(WAI)

    面向人——开发者:
      开发的速度(单版本开发,不用为其他设备独立开发)
      维护复杂度(分离后,结构可复用,样式可复用,图片和CSS可以独立维护)

    面向人——运营商:
      服务器成本
      带宽的成本
      开发的成本(多版本开发)
      SEO的成本(更好的面向搜索引擎)

    面向机器——服务器负载:
      带宽节约
      搜索引擎友好
      网页数据挖掘(语义网络,微格式,XSL提取数据等)

    Web标准的价值思维导图:  

    Web标准的价值  

    XHTML文件类型声明

    Category : Html技术 | Post on 2008/01/05 09:57 by gdgzboy | Comments:0

    XHTML定义了三种文件类型声明。


    最普遍使用的是XHTML Transitional。  


    <!DOCTYPE>是强制使用的。


    一个XHTML文档有三个主要的部分:  



          
    • DOCTYPE

    •     
    • Head

    •     
    • Body


    基本的文档结构是这样的:  


    <!DOCTYPE ...><html><head><title>... </title></head><body> ... </body></html>  

    在XHTML文档中,文档类型声明总是位于首行。  




    一个XHTML的实例


    这个一个简单的(最小化的)XHTML文档:  


    <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><title>simple document</title></head><body><p>a simple paragraph</p></body></html>  

    文档类型声明定义文档的类型:  


    <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  

    文档的其余部分类似HTML:


    <html><head><title>simple document</title></head><body><p>a simple paragraph</p></body></html>  



    3种文档类型声明



          
    • DTD规定了使用通用标记语言(SGML)的网页的语法。

    •     
    • 诸如HTML这样的通用标记语言应用使用DTD来规定应用于某种特定文档中的标签的规则,这些规则包括一系列的元素和实体的声明。

    •     
    • 在通用标记语言(SGML)的文档类型声明或DTD中,XHTML被详细地进行了描述。

    •     
    • XHTML DTD使用精确的可被计算机读取的语言来描述合法的XHTML标记的语法和句法。


    存在三种XHTML文档类型:



          
    • STRICT(严格类型)

    •     
    • TRANSITIONAL(过渡类型)

    •     
    • FRAMESET(框架类型)




    XHTML 1.0的三种XML文档类型


    XHTML 1.0规定了三种XML文档类型,以对应上述三种DTD。  


    XHTML 1.0 Strict


    <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  

    在这样的情况下使用:需要干净的标记,避免表现上的混乱。请与层叠样式表配合使用。  


    XHTML 1.0 Transitional


    <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

    在这样的情况下使用:当需要利用HTML在表现上的特性时,并且当需要为那些不支持层叠样式表的浏览器编写XHTML时。  


    XHTML 1.0 Frameset


    <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">  

    在这样的情况下使用:需要使用HTML框架将浏览器窗口分割为两部分或更多框架时。



                    
            

    HTML 无刷新更换CSS样式

    Category : Html技术 | Post on 2008/01/05 09:31 by gdgzboy | Comments:0

        系统原来的更换CSS模板是要重新刷新一下儿页面的,我一直都对这个功能很不满意,百分之九十五的功能都用AJAX无刷新的实现了,难道要在这个小小的更换页面CSS模板上给用户添点恶心吗?于是,昨天晚上好好考虑了这个功能上的实现,原来发现其实并不难,小改一下就OK了,现在系统上的模板更换是不用刷新页面来完成的,明显在感觉上比原来好得多了,下面谈谈经验吧:

        对于一个多页面的网站来说了,CSS的更换不能只简单的在一个页面中调用更换CSS功能更新这个页面头上链接的CSS地址,因为它不能保证在点击了别的页面后新的样式应该到新打开的页面中去,因此,一定要有一个全局性的变量来记录它,我选用的是SESSION,在用户点击了侧边模板下拉框中的模板时,触发了下拉框的ONCHANGE事件,执行了一段AJAX程序,程序的功能是将用户选中的模板信息发送给服务器,服务器接收新的模板信息后更新表示模板的SESSION值,然后向客户端返回成功信息,客户端则根据返回的成功信息来改变页面样式,注意:我在页面头中写的CSS链接信息是这样子的:  

    <LINK id=cssLink href="css.aspx" type=text/css rel=stylesheet>

    css.aspx是一个ASP.net的页面,它的作用只是单一的根据SESSION中的当前CSS模板信息来转向所应CSS样式表文件!这样子的处是客户端在接收到了服务器端成功更新SESSION的信息后刚不用考虑其它的东西,直接一句:

    document.getElementById("cssLink").href=document.getElementById("cssLink").href;  

    将cssLink的href重新写一下儿,虽然是前后一模一样子的值,但这会激发CSS.ASPX页面重新读一下儿,这样子CSS.ASPX页面就能转到新更新的CSS样式表了!由于网站别的页面的样式表链接信息都是这样写的,所以每个页面加载时都是会应用最新更新的样式表的,这样子,网站无刷新的全局更新样式表就实现了!!  

    CSS 定义局部链接

    Category : Html技术 | Post on 2008/01/05 00:53 by gdgzboy | Comments:0

    例如定义了链接主样式如下:

    A:link { color:#FFFFFF; text-decoration:none }
    A:active { color:#FFFFFF; text-decoration:none }
    A:visited { color:#FFFFFF; text-decoration:none }
    A:hover { color:#FFFFFF; text-decoration:underline }

    局部链接样式一般的写法是这样:  

    .myClass:link { color:#000000 }
    .myClass:active { color:#000000 }
    .myClass:visited { color:#000000 }
    .myClass:hover { color:#000000 }

    下面这种则是简略写法,需要用 ID  

    #myId A { color:#000000 }

    如果父 ID 内有多个子 ID:

    #myId #myIdB A { color:#000000 }

    如果父 ID 内有多个子样式:

    #myId .myClass A { color:#000000 }

    局部样式在继承主/父样式的前提下,附属己样式,写法灵活,可自行揣摩。

    Web标准真的?

    Category : Html技术 | Post on 2008/01/05 00:33 by gdgzboy | Comments:0

      引言:
      一群会用table蹩脚布局的网页初学者嘲笑着那些对网页制作一窍不通的门外汉;而一群自认为 table布局无所不能的table布局拥护者则嘲笑着那群用table蹩脚布局的网页初学者;那些刚试着将几个页面中的table换成div的所谓的 web标准设计者则嘲笑这那群死抱table布局不放的table布局设计者;而一群焦头烂额终于在网站上贴上“W3C验证通过HTML网站”图标的自认高高人的web标准设计者则嘲笑这那群以为“DIV CSS”就是web标准的web标准设计初学者;但是当我们把我们的网页放在不同的浏览器中的时候,却发现我们全部都被“Web标准设计”嘲笑了……

      正文:
      标准:衡量事物的准则。例句:惟极贫无依,则械系不稍宽,为标准以警其余。——清•方苞《狱中杂记》
      Standard: An acknowledged measure of comparison for quantitative or qualitative value; a criterion.

      无论是中外古今的对于标准一词的解释都很相近。即:标准是一个准则。那么冠以“标准”前缀的词,则必须符合此准则。如:
      标准大气压(standard atmospheric pressure):指在纬度为45°的海平面上,温度为0°C时的大气压,相当于76厘米高的水银柱所产生的压强。  
      标准照(official portrait):指人的正面半身免冠相片。

      那么冠以“标准”前缀的web标准设计,也必须有一个衡量的准则方可。但是我们发现所谓的衡量web标准是否标准的准则并不存在,至少目前还没有成型。没有衡量准则,标准何以言之为标准?

      推荐遵循标准不是严格意义上的标准

      当你试图在网上查找“什么是web标准”时,找到的多数是将web标准进入中国的先驱阿捷的文章《什么是web标准》。虽然里面提到了各个组成部分的“推荐”遵循标准,但是那些也都只是W3C组织“推荐遵循”的标准。大家都知道W3C标准不是强制性标准,所以像微软这样喜欢“卖标准”的一流公司并不完全买W3C的帐。所以那些所谓的“推荐标准”从严格意义上来说并不是全面的、严格意义上的认证标准。

      注:虽然W3C的推荐标准不是严格意义上的标准,但是我们绝对不可以无视。因为它们的确很有指导意义。而且我们非常欣慰的看到:虽然IE7为了向前兼容,保留了一些IE6的诡异解析方式,但是它也正在逐渐的遵循这些标准。所以这些标准现在是“推荐遵循标准”,但是在不久的将来极有可能成为真正的标准准则,那个时候就是“web标准大统一”的黄金年代。所以还没有看过下面这些文章的朋友要抓紧时间啦。  

      W3C推荐遵循web标准文档列表:
      XML方面:《Extensible Markup Language (XML) 1.0 (Second Edition)》
      XHTML方面:《XHTML 1_0 The Extensible HyperText Markup Language (Second Edition)》
      DOM方面:《W3C DOM规范》
      CSS方面:《Cascading Style Sheets, level 2 CSS2 Specification ver.12-May-1998》
      Script方面:《ECMAScriptLanguage Specification》

      web标准与否不能被有效验证

      即使我们暂且将那些“推荐遵循标准”视为标准,我们仍然有很多问题。例如:怎么检验我们的页面就是符合那些“推荐遵循标准”的呢?的确,我们有验证工具,但是那些验证工具的验证结果就是正确的吗?web标准一个重要的部分就是,根据标签的语义来使用它们。例如table是用来呈现表格数据的,而不是用来分割文档的(也就是平时说的布局)。但是一些利用table布局的页面也能顺利的通过验证工具的验证。所以那些验证工具的验证结果也只能作为一种参考。  

      语义是道多选题

      说道标签的语义,这也会带出一些问题。因为当我们决定使用哪种标签的时候,我们会发现我们面对的是多选题,而不是单选题。因为某些情况利用多种标签时都是符合语义的。我们举个最简单的例子:

      你说“Name:”应该用什么标签包起来?label?span?其实无论使用哪个都是符合各自的语义的。正是这种“多选题”让web标准显得有些朦胧。  


      树欲静而风不止

      即使上面的问题都不再是问题了,我们仍然有一个大问题——各种浏览器对web标准的支持不统一。也正是这种标准不统一的大环境让web标准显得缥缈、遥不可及。看到论坛上天天有人在骂“垃圾FF”、“垃圾IE7”、“垃圾IE6”……纵观世界,能生存下来的只有两种生物——改变环境以适应自身发展的,例如人类;改变自身以适应环境发展的,例如:变色龙。当我们不能改变这个世界的时候,那么就改变自己去适应这个改变的世界吧。

      有限的资源,努力的去做

      Web标准不标准,至少是现在没有统一的标准,但是网页还是要做,工程还是要赶。我们能做的,只能是合理的利用手头的有限的资源,努力的去做到最好。这句话包含了两个方面的含义:有限的资源,努力的去做。  

      有限的资源:
      当你躺在象牙塔里,努力的让你的个人网站贴上W3C认证标签的时候,你是无可厚非的,因为你的资源是那么的充足,时间、青春、没有项目时间的催促,没有客户的最后通牒。但是当你真正的在做商业项目的时候,你会发现我们能利用的资源是及其有限的。人力资源,物质资源,时间资源都是那么的捉襟见肘。当你有分配这些资源的权利的时候,你才会发现分配这些资源的责任。我们的项目,绝对不会为了那张W3C认证标签而浪费宝贵的资源。

      努力的去做:
      但是有限的资源绝对不是粗制滥造的借口。事实上,我们项目对于质量是及其重视的。项目经理提出的“质量是项目之本”的结论已经在我们团队达成共识。给测试部门的测试资源,我们向来都安排在整个工程的1/5以上。(分析设计过程3/5以上,代码coding1/5以下,其余的给测试部)。

      但是努力的去做,到底要做成什么样?其实也并不是没有参考。当你看Andy Budd的《样式指南示例》中我们可以看到一些国际上对此问题的处理方法的端倪,他在1.4小结提到了Browser Support的概念。然后他提出了对不同浏览器支持的不同程度:

      Target – Most popular browsers at present. Everything must work as intended  
      Supported – Old but popular browser. All content and functionality must work with minimal degradation.
      Partially supported – Old and buggy browsers. Not supported but not officially unsupported. Content and functionality must work. Degradation must be graceful and should not obscure content.
      Unsupported – Buggy and unsupported browsers. Advice current users to upgrade.

      我认为这是正确的做法,选定主流的浏览器,然后对主流的浏览器进行Target支持,而对于次之的浏览器进行Supported支持。而对于一些老版本的浏览器进行Partially Supported甚至完全不去管。这样就能最大可能的让网站被浏览者正常的浏览。当然将哪些浏览器,哪些版本进行Target支持,需要根据项目的使用群来决定。例如我们最近的一个日本母公司内部使用的B/S系统,因为我们知道他们那边使用者的电脑软件配置情况,所以我们进行了如下的浏览器支持定义:

      IE7 :Target
      IE6 :Supported
      FF :Partially Supported
      Other:Partially Supported or Unsupported

      正是有了这个浏览器支持表单,让我们调画面的时候有的放矢,有所侧重。而不是一味的让所有的浏览器都正常支持而浪费时间(而且让所有的浏览器正常支持也只能是一种理想状态)。

      Web标准难不难?

      没进来的人说:很难!
      刚站在门框上的人说:不过如此。
      站在门里面的人则说:web标准的路还有很长一段要走……

      后记:
      当初起这个名字的时候就知道会遭到很多人的炮轰。反正早已练就“无敌厚脸皮”神功。骂也无妨,驳也无妨,炮轰也无妨。因为正是你们的留言,你们的论点,你们的讨论让web标准之路能够走的更远,走的更平坦。  

    DIV   CSS问题解答

    Category : Html技术 | Post on 2008/01/04 13:19 by gdgzboy | Comments:0

    1.超链接访问过后hover样式就不出现的问题?

    被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A

    2.IE6的双倍边距BUG

    例如:  

    <style type="text/css">
        body {margin:0}
        div { float:left; margin-left:10px; width:200px; height:200px; border:1px solid red }
    </style>

    浮动后本来外边距10px,但IE解释为20px,解决办法是加上display:inline

    3.为什么FF下文本无法撑开容器的高度?

    标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的,那我又想固定高度,又想能被撑开需要怎样设置呢?办法就是去掉he ight设置min-height:200px; 这里为了照顾不认识min-height的IE6 可以这样定义:

    div { height:auto!important; height:200px; min-height:200px; }

    4.为什么web标准中IE无法设置滚动条颜色了?

    原来样式设置:  

    <style type="text/css">
    body { scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee; scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000; scrollbar-track-color:#fff; scrollbar-darkshadow-color:#fff; }
    </style>

    解决办法是将body换成html

    5.为什么无法定义1px左右高度的容器?

    IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px

    6.怎么样才能让层显示在FLASH之上呢?

    解决的办法是给FLASH设置透明:  

    <param name="wmode" value="transparent" />

    7.怎样使一个层垂直居中于浏览器中?

    <style type="text/css">
    <!--
    div {
    position:absolute;
    top:50%;
    left:50%;
    margin:-100px 0 0 -100px;
    width:200px;
    height:200px;
    border:1px solid red;
    }
    -->
    </style>  

    这里使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二  

    8、firefox嵌套div标签的居中问题的解决方法

    假定有如下情况:  

    <div id="a">
        <div id="b"> </div>
    </div>  

    如果要实现b在a中居中放置,一般只需用CSS设置a的text-align属性为center。这样的方法在IE里看起来一切 正常;但是在Firefox中b却会是居左的。  

    解决办法就是设置b的横向margin为auto。例如设置b的CSS样式为:margin: 0 auto;。  

    Tags: , , ,

    百度新闻开放协议XML文档

    Category : Html技术 | Post on 2008/01/04 09:57 by gdgzboy | Comments:0
    开放协议概述

    使用此开放协议,将会为您的网站带去更多流量!

            《互联网新闻开放协议》是百度新闻搜索制定的搜索引擎新闻源收录标准,网站可将发布的新闻内容制作成遵循此开放协议的XML格式的网页(独立于原有的新闻发布形式)供搜索引擎索引,将网站发布的新闻信息主动、及时地告知百度搜索引擎。

            采用了《互联网新闻开放协议》,就相当于网站的新闻被搜索引擎订阅,通过百度——全球最大的中文搜索引擎这个平台,网民将有可能在更大范围内更高频率地访问到您网站的新闻,进而为您的网站带来潜在的流量。

    开放协议非常简单! 您可以在我们的帮助下轻松使用。

    开放协议内容

            下图为遵照《互联网新闻开放协议》制作的XML格式的网页,网页上按照标准格式列出了网站发布的新闻的相关信息。
    XML网页示例:

    百度新闻开放协议XML文档制作方法简述

    XML标签说明: 其中带星号标记的为必选项,未带星号标记为可选项。
    *<document>——标记整个XML文件内容的开始和结束。
    *<webSite>——站点地址。
    *<webMaster>——负责人员的Email。当有必要时,我们通过这个地址与您联系。
    *<updatePeri>——更新周期,以分钟为单位。搜索引擎将遵照此周期访问该页面,使页面上的新闻更及时地出现在百度新闻中。  
    *<item>——标记每篇新闻信息的开始和结束。标记内为单篇新闻信息,不包括新闻专题。
    *<title>——新闻标题。
    *<link>——新闻url地址,与单篇新闻一一对应;若分页的新闻存在多个URL,相当于多篇新闻。
    <description>——新闻内容简介。
    *<text>——完整的新闻正文(仅包含正文文字,不包含HTML语言等其它字符)。此项的目的是使该篇新闻更多、更准地出现在搜索结果中。  
    *<image>——新闻正文内相关图片,采用绝对地址。若该篇新闻无相关图片,可以为空;若含有多张图片,请重复使用该标签。此项的目的是使该篇新闻的相关图片展现在搜索结果中。
    <headlineImg>——为有可能成为头条的新闻制作的头条图,采用绝对地址。
    <keywords>——反映新闻主题内容的一个或多个关键词,关键词之间以空格隔开。此项仅作为参考,检索结果不完全依赖于此标签中的内容。
    <category>——新闻分类, 可以遵循网站自身的分类体系,最好采用一级分类。
    <author>——新闻作者,可以为机构或个人 。  
    <source>——新闻来源,即原创媒体或其它机构 。
    *<pubDate>——新闻发布时间,与该篇新闻HTML页面上的发布时间保持一致。请精确到分钟;若您网站的发布时间未记录小时分钟,提供年月日即可。
      

    推荐时间格式:年月日小时分钟秒
    如:2005-11-09 10:37  |  2005/11/09 10:37:00  |  2005.11.09 10:37:00  |
           2005年11月09日10时37分00秒  |  Fri, 09 Nov 2005 10:37:00 GMT

    开放协议使用

    使用之前您需要了解以下几点:

    • 无论您的网站已经成为百度新闻源,还是尚未被百度新闻搜索收录,都可以使用此开放协议。
    • 您使用开放协议提供的内容应全部符合下面《新闻源收录标准》。
    • 《互联网新闻开放协议》只是原始新闻源收录方式的一种协助和有益补充,而不是完全取代。

    新闻源收录标准:
            百度希望新闻源多样化,鼓励原创新闻内容。如果是具有大量有价值的新闻内容并能及时更新的正规、合法媒体网站,且网站服务器稳定、高速,就符合了百度收录新闻源的基本原则。
            百度新闻搜索收录的内容包括时政、娱乐、体育、财经、科教文化、社会生活等各类新闻报道及媒体评论,数码产品、房产、汽车等行情资讯及评测,各行业的动态及行情,组织机构的工作动态等,是由专业人士撰写或编辑的中文信息,不包括发布的个人信息、论坛、博客、广告、幽默笑话、情感故事、情色、写真、剧照、明星档案、食谱、下载、多媒体等其它类型、其它语言互联网信息。
            您应对提供的全部内容承担一切法律责任,保证您提供内容的真实性、合法性,并不得侵犯任何第三方的权益。

    下面就开始吧!
    第一步:创建XML文件
            请您在创建XML文件前务必阅读百度新闻搜索的新闻源收录标准,并特别注意:  

             1、百度新闻搜索收录的新闻源网站必须符合及严格遵守国家《互联网新闻信息服务管理规定》,并在新闻发布和转载过程中尊重创作人和源网站的著作权。

             2、百度新闻搜索不适合收录的网站类型包括:论坛、博客、公司网站等。

             3、百度新闻搜索不收录个人信息、广告、招标、教程、幽默笑话、情感故事、情色、写真、剧照、明星档案、食谱、下载、多媒体等其它类型、其它语言互联网信息。

             4、百度新闻搜索希望收录高质量的中文新闻,不收录英文等其它非中文新闻。

             5、请按照上面公布的开放协议内容制作XML文件。
      

      其它说明:
    • 支持的编码格式有GB2312、GB18030、UTF-8、BIG5,推荐使用GB18030或UTF-8格式。
    • 您可以将网站某一时间段发布的全部新闻放在一个XML文件中,也可以分频道或栏目放在多个XML文件中。
    • 请保持每个XML文件处于按更新周期持续自动更新状态。更新周期可根据您的需要随时进行调整。
    • 每个XML文件至多存放最新发布的100条新闻,无需保存之前的新闻
    • 请将发布的新闻按照时间排序,即最新发布的新闻在最上端,否则可能有新闻被遗漏。
    • XML标签内容中,除文字文本以外不能包含其它任何代码,下表中的特殊字符必须转换为XML定义的转义字符。否则将发生错误导致搜索引擎不能获取页面上的新闻。
      字符转义后的字符
      HTML字符字符编码
      和(and)&&amp;&#38;
      单引号'&apos;&#39;
      双引号"&quot;&#34;
      大于号>&gt;&#62;
      小于号<&lt;&#60;
        转义字符中的"&"无需再转。

        

    • 建议您使用CDATA 部件。一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束。将包含代码或特殊字符的文本置于CDATA 部件内 ,就无需再对特殊字符进行转义。

    第二步:验证XML文件
            下面的地址提供了帮助您验证XML文件结构的多种工具:
            http://www.w3.org/XML/Schema#Tools
            http://www.xml.com/pub/a/2000/12/13/schematools.html
            通过验证的XML文件能够使您提供的信息更加标准,确保您发布的新闻信息不被搜索引擎遗漏。

    第三步:提交XML网址
            提交前请将XML文件上传到您的网站服务器,将XML文件的URL地址及其它信息输入下面对应的方框内。搜索引擎将定向访问该URL地址,当URL地址发生变化时需要重新提交。  
             若您的网站符合新闻源收录标准,百度新闻搜索将对您提交的数据进行测试和观察一周。如果XML文件基本按照 《互联网新闻开放协议》的要求制作但存在问题,我们会根据XML页面上提供的邮件地址与您联系。

             注意:   

             1、 我们将对您提交的XML文件进行审核,百度新闻搜索不保证一定能收录您提交的全部内容。

             2、站点名、地址为必填项,同一站点一天之内最多提交5个不同的XML文件地址。

             3、提交地址后请您注意查看弹出窗口中的信息,以确认是否提交成功。

    第四步:查询XML文件状态
            您可以在下面的方框中输入您提交的XML文件地址,查询该文件的处理进度和反馈信息。
            注意:输入的地址必须完整,即与您提交时的地址完全一致。  

    Tags: , ,
    分页: 7/157 第一页 上页 2 3 4 5 6 7 8 9 10 11 下页 最后页 [ 显示模式: 摘要 | 列表 ]