Home  >  Article  >  Web Front-end  >  Div CSS layout introductory tutorial 2 Creating the top of the page_html/css_WEB-ITnose

Div CSS layout introductory tutorial 2 Creating the top of the page_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:30:101323browse

当我们写好了页面大致的DIV结构后,我们就可以开始细致地对每一个部分进行制作了。

在上一章中我们写入了一些样式,那些样式是为了预览结构而写入的,我们把css.css中的样式全部清除掉,重新写入以下样式代码:

 

/*基本信息*/
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover{}

/*页面层容器*/
#container {width:800px;margin:10px auto}

样式说明:

a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover {}

这两项分别是控制页面中超链接的样式,具体我就不说明了,请大家参阅手册。

#container {width:800px;margin:10px auto}

指定整个页面的显示区域。
width:800px指定宽度为800像素,这里根据实际所需设定。
margin:10px auto,则是页面上、下边距为10个像素,并且居中显示。
上一章中我们讲过,对层的margin属性的左右边距设置为auto可以让层居中显示。

接下来,我们开始制作TOP部分,TOP部分包括了LOGO、菜单和Banner,首先我们要做的就是对设计好的图片进行切片,以下是在FW下完成的切片:

我将TOP部分切片为两部分,第一部分包括了LOGO和一条横线。由于LOGO图片并没有太多的颜色,这里我于是将这一部分保存为GIF格式,调色板选择为精确,选择Alpha透明度,色版为白色(此处颜色应与背景色相同),导出为logo.gif,图像宽度为800px。

到这里,有的朋友就说了,* 为什么要使用GIF格式?使用JPEG不是更好吗?
因为GIF格式的图片文件更小,这样能使页面载入的速度更快,当然使用此格式之前必须确定图片并没有使用太多的颜色,当我们使用了GIF格式时,从肉眼上并不能看出图片有什么太大的变化,因此这是可行的。

* 接下来的Banner部分还能使用GIF格式吗?
答案是不能,因为Banner部分是一个细致的图片,如果使用GIF格式颜色会有太大的损失,所以必须使用JPEG格式,将文件导出为banner.jpg。

* 合理的切片是非常之重要的,因为切片的方法正确与否决定了CSS书写的简易程度以及页面载入速度。

切好片后,我们还需要对TOP部分进行分析并将DIV结构写入Header中代码如下:

  


  

为什么要这么写呢,因为对菜单使用列表

  • 形式,可以在以后方便对菜单定制样式。

    而为什么要添加以下代码呢?


  • 插入这一段代码是可以方便地对菜单选项之间插入一些分隔样式,例如预览图中的竖线分隔。

    然后我们在css.css中再写入以下样式:

    /*页面头部*/
    #header {background:url(logo.gif) no-repeat}

    样式说明:
    #header {background:url(logo.gif) no-repeat}
    给页面头部分加入一个背景图片LOGO,并且不作填充。

    这里,我们没有指定header层的高度,为什么不指定呢?

    因为header层中还有菜单和banner项,所以层的高度暂时是未知的,而层的属性又可以让层根据内容自动设定调整,因此我们并不需要指定高度。

    使用列表

  • 制作菜单

    开始此节的学习前,请确认你已经参照之前的几节内容写入了DIV、CSS到index.htm和css.css文件中。

    这一节我将告诉大家如何用列表

  • 来制作菜单。

      

    以上是这部分的结构,有关于

    • 这两个HTML元素大家自己去参考相关的内容吧,它们最主要的作用就是在HTML中以列表的形式来显示一些信息。

      还有一点需要大家一定要分清楚的,当在HTML中定义为id="divID"时,在CSS对应的设置语法则是#divID{} ,如果在HTML中定义为class="divID"时,则在CSS中对应的设置语法是.divID。

      如果id="divID"这个层中包括了一个,则这个img在CSS中对应的设置语法应该是#divID img {},同样,如果是包含在class="divID"这个层中时,则设置语法应该是.divID img {},这一点希望大家要分清楚了。

      另外,HTML中的一切元素都是可以定义的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中设置它们,则直接写入元素的名称加上一对大括号{}就可以了。所有的CSS代码都应该写在大括号{}中。

      按照上面的介绍,我们先在css.css中写入以下代码:

      #menu ul {list-style:none;margin:0px;}
      #menu ul li {float:left;}

      解释一下:

      #menu ul {list-style:none;margin:0px;}
      list-style:none,这一句是取消列表前点,因为我们不需要这些点。
      margin:0px,这一句是删除UL的缩进,这样做可以使所有的列表内容都不缩进。

      #menu ul li {float:left;}
      这里的 float:left 的左右是让内容都在同一行显示,因此使用了浮动属性(float)。

      到这一步,建议大家先保存预览一下效果,我们再添加下面的内容,效果如下:

      这时,列表内容是排列在一行,我们在#menu ul li {}再加入代码margin:0 10px

      #menu ul {list-style:none;margin:0px;}
      #menu ul li {float:left;margin:0 10px}

      margin:0 10px的作用就是让列表内容之间产生一个20像素的距离(左:10px,右:10px),预览的效果如下:

      现在,雏形已经出来了,我们再来固定菜单的位置,把代码改成如下:

      #menu {padding:20px 20px 0 0}
      /*利用padding:20px 20px 0 0来固定菜单位置*/
      #menu ul {float:right;list-style:none;margin:0px;}
      /*添加了float:right使得菜单位于页面右侧*/
      #menu ul li {float:left;margin:0 10px}

      这时,位置已经确定了,可是构思图中,菜单选项之间还有一条竖线,怎么办呢?
      别忘了,我们早就已经留好了一个空的

      ,要想加入竖线就使用它了。
      按照上面说的方法,我们再添加以下代码:

      .menuDiv {width:1px;height:28px;background:#999}

      保存预览一下,竖线是否已经出来了?关于这段代码就不多讲了,应该是很容易理解的。

      不过,菜单选项的文字却在顶部,我们再修改成以下代码:

      #menu ul li {float:left;margin:0 10px;display:block;line-height:28px}

      关于display:block;line-height:28px大家可以去参阅一下手册,我就不多讲了。

      效果基本上已经实现了,剩下的就是修改菜单的超链接样式,在css.css中添加以下代码:

      #menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
      #menu ul li a:hover{}

      这个也不多说了,没什么好说的了,最后的效果如下:

      这一节到这里就完毕了,顺便把素材提供给大家:
      构思图:点击下载
      HTML和CSS源文件:点击下载

      一节里面,主要就是想告诉大家如何使用好border和clear这两个属性。

      首先,如果你曾用过table制作网页,你就应该知道,如果要在表格中绘制一条虚线该如何做,那需要制作一个很小的图片来填充,其实我们还有更简单的办法,只要在中加入这么一段就可以了,你可以试试:

      大家可以再次参考手册,然后你就能明白dashed、solid、dotted...等的作用,利用它们你可以制作出许多效果来,实线、虚线、双线、阴影线等等。

      The above code can realize the banner in the design sketch. Add the following style to css.css:

      #banner {
      background:url(banner.jpg) 0 30px no -repeat; /*Add background image*/
      width:730px; /*Set the width of the layer*/
      margin:auto; /*Center the layer*/
      height:240px; /*Setting Height*/
      border-bottom:5px solid #EFEFEF; /*Draw a light gray solid line*/
      clear:both /*Clear floats*/
      }

      It is very easy to pass the border It is easy to draw a solid line, and the network resources occupied by image downloading are reduced, making the page loading speed faster.

      Another thing to note is clear:both, which means clearing all floats on the left and right. We will also use this attribute in the next layout: clear:left/right. Clear:both is added here because the previous ul and li elements were set to float. If they are not cleared, it will affect the setting of the banner layer position.



      The above is the main part of the page. We add the following styles in css.css:

      #pagebody {
      width:730px; /*Set width*/
      margin: 8px auto; /*center*/
      }
      #sidebar {
      width:160px; /*set width*/
      text-align:left; /*text left aligned*/
      float:left; /*float left*/
      clear:left; /*floats are not allowed on the left side*/
      overflow:hidden; /*the part beyond the width is hidden*/
      }
      #mainbody {
      width:570px;
      text-align:left;
      float:right; /*Float right*/
      clear:right; /*No floats allowed on the right side*/
      overflow:hidden
      }

      In order to see the effect, it is recommended to add the following code to #sidebar and #mainbody. You can delete this code after the preview is completed:

      border :1px solid #E00;
      height:200px

      Save the preview effect and you can see that these two layers float perfectly, meeting our layout requirements, and the actual width of the two layers should be 160 2 (border) 570 2=734px, which has exceeded the width of the parent layer. Due to clear, the two layers will not be misaligned. This will prevent the page we layout from having too long content (such as pictures) causing misalignment.

      The overflow:hidden added later can automatically hide parts of the content that are too long (such as pictures). Usually we will see that when some web pages are loaded, the layout is stretched because the images are too large, and the layout does not return to normal until the page is downloaded. This problem can be solved by adding overflow:hidden.

      If used properly, every attribute in CSS can solve many problems. Maybe they have nothing to do with the page you are laying out, but you must know the role of these attributes. When you encounter problems , you can try to use these properties to solve the problem.

      Statement:
      The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn