css教程–十步学会用css建站(全)
Author: Jorux/Bluecssr
Posted on: August 10, 2006
Filed under: Web Design
Comments: 252 Responses
keywords: css, tutorial
FontSize: + Increase - Decrease
Trackback: URL(copy the link)- edit
Update: 本篇已得到原作者Steve Dennis的翻译准予,在此Jorux表示感谢!
本教程主要参考Creating a CSS Layout from scratch,由Jorux翻译,以意译为主,其间加入了不少Jorux的个人观点,省略了一些多余的说明,请读者明鉴。
目录:
第一步:规划网站,本教程将以图示为例构建网站
1.规划网站,本教程将以下图为例构建网站。
点击看大图
其基本布局见下图:
点击看大图
主要由五个部分构成:
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>
将其保存为index.html,并创建文件夹css,images,网站结构如下:

2.创建网站的大框,即建立一个宽760px的盒子,它将包含网站的所有元素。
在html文件的<body>和</body>之间写入
<div id="page-container">
Hello world.
</div>
创建css文件,命名为master.css,保存在/css/文件夹下。写入:
#page-container {
width: 760px;
background: red;
}
控制html的id为page-container的盒子的宽为760px,背景为红色。表现如下:
现在为了让盒子居中,写入margin: auto;,使css文件为:
#page-container {
width: 760px;
margin: auto;
background: red;
}
现在你可以看到盒子和浏览器的顶端有8px宽的空隙。这是由于浏览器的默认的填充和边界造成的。消除这个空隙,就需要在css文件中写入:
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>
表现如下:
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;
}
第四步:网页布局与div浮动等:
1.浮动,首先让边框浮动到主要内容的右边。用css控制浮动:
#sidebar-a {
float: right;
width: 280px;
background: darkgreen;
}
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>
表现如下:
但是你可以看到主要内容的盒子占据了整个page-container的宽度,我们需要将#content的右边界设为280px。以使其不和边框发生冲突。
css代码如下:
#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>
表现如下:
这也不是我们想要的,网站的底框跑到边框的下边去了。这是由于我们将边框向右浮动,由于是浮动,所以可以理解为它位于整个盒子之上的另一层。因此,底框和内容盒子对齐了。
因此我们往css中写入:
#footer {
clear: both;
background: orange;
height: 66px;
}
第五步:网页主要框架之外的附加结构的布局与表现:
第五步主要介绍除网页主要框架之外的附加结构的表现(Layout),包括以下内容:
1.主导航条;
2.标题(heading),包括网站名和内容标题;
3.内容;
4.页脚信息,包括版权,认证,副导航条(可选)。
加入这些结构时,为了不破坏原有框架,我们需要在css文件"body"标签(TAG)下加入:
.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>
刷新一下页面,你就可以看到巨大的标题,和标题周围的空白,这是因为<h1>>标签的默认大小和边距(margin)造成的,先要消除这些空白,需要加入:
h1 {
margin: 0;
padding: 0;
}
接下来是导航条:
控制导航条表现的css代码相对比较复杂,我们将在第九步或是第十步中详细介绍。现在html文件加入导航代码:
<div id="main-nav">
<ul>
<li id="about"><a href="http://css.jorux.com/wp-admin/post.php#" >About</a></li>
<li id="services"><a href="http://css.jorux.com/wp-admin/post.php#" >Services</a></li>
<li id="portfolio"><a href="http://css.jorux.com/wp-admin/post.php#" >Portfolio</a></li>
<li id="contact"><a href="http://css.jorux.com/wp-admin/post.php#" >Contact Us</a></li>
</ul>
</div>
(注:原教程使用了dl和dt,jorux在这使用了更常用的ul和li标签)
目前导航条的表现比较糟糕,但是要在以后的教程中介绍其特殊表现,故需要暂时隐藏导航条,于是加入:
<div id="main-nav">
<dl class="hidden">
<dt id="about"><a href="http://css.jorux.com/wp-admin/post.php#" >About</a></dt>
<dt id="services"><a href="http://css.jorux.com/wp-admin/post.php#" >Services</a></dt>
<dt id="portfolio"><a href="http://css.jorux.com/wp-admin/post.php#" >Portfolio</a></dt>
<dt id="contact"><a href="http://css.jorux.com/wp-admin/post.php#" >Contact Us</a></dt>
</dl>
</div>
我们跳一步,先到页脚:
页脚包括两部分:左边的版权,认证和右边的副导航条。
我们先要让副导航条向右浮动,就像之前处理Sidebar和Content关系的一样,需要加入一个新的层(div):
<div id="footer">
<div id="altnav">
<a href="http://css.jorux.com/wp-admin/post.php#" >About</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Services</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Portfolio</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Contact Us</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Terms of Trade</a>
</div>
</div>
理论上,我们可以控制源文件上的任意元素的浮动,但由于IE浏览器的BUG,被浮动层需要首先出现在源文件上,也就是说我们把副标题放在版权和认证的前面:
<div id="footer">
<div id="altnav">
<a href="http://css.jorux.com/wp-admin/post.php#" >About</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Services</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Portfolio</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Contact Us</a> -
<a href="http://css.jorux.com/wp-admin/post.php#" >Terms of Trade</a>
</div>
Copyright © Enlighten Designs
Powered by <a href="http://www.enlightenhosting.com/" >Enlighten Hosting</a> and
<a href="http://www.vadmin.co.nz/" >Vadmin 3.0 CMS</a></div>
最后我们回到内容部分:用<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://css.jorux.com/wp-admin/post.php#" >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><p>标签的margin和padding的值为0!
第六步:页面内的基本文本的样式(css)设置:
你是不是厌倦了那些大红大绿的背景,现在是去掉它们的时候了,只保留导航条的红色背景。真是难为您居然能坚持学习本教程到此,很好,再过几步,你就能很好了解css控制整个网页版面(Layout)的能力。
–言归正传–
先设置全局的文本样式:
body {
font-family: Arial, Helvetica, Verdana, Sans-serif;
font-size: 12px;
color: #666666;
background: #ffffff;
}
一般我们把body标签放在css文件的顶端,当然你要是执意要把它放在尾部,浏览器不会和你计较。font-family内的顺序决定字体显示优先级,比方如果所在计算机没有Arial字体,浏览器就会指向Helvetica字体,依次类推;color指字体颜色;background指背景颜色。
如果你都是按本教程的操作,应该能看到下图(点击看大图):
你可以看到内容(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层的四周都空出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>
同样的,再往html文件的content层中加入padding层。
由于padding层的功能仅是制造空隙,所以不要设置它的宽度,只需在css中添加:
#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: 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>
第七步:网站头部图标与logo部分的设计:
为实现设计时的网页头部效果,我们需要以下两幅图:
/images/headers/about.jpg (点击看大图)
/images/general/logo_enlighten.gif (点击看大图)
首先我们给#header层添加背景图案:
#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>
logo_enlighten图片浮在头部的左上方,我们需要设置<h1>的属性值为:
h1 {
margin: 0;
padding: 0;
float: right;
margin-top: 57px;
padding-right: 31px;
}
这样我们使存在于<h1>层的图片向右浮动,并且上边距(margin-top)为57px,右间隙(padding-right)为31px,如下图所示(点击看大图):
注意:细心的你可能会发现我们使用了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;
}
接着我们需要设置存在链接的文本的显示,在这我们没有改变文本的颜色(仍然为#c9c9c9),而只是让下划线消失:
#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;
}
最后我们需要做的就是让副导航层(#altnav)向右浮动,需要指出的是,浮动层是必须设置宽度(width)才能正常浮动的,所以我们把#altnav的宽度设置为350px,略宽于文本的长度(为了让副标题的文字显示完全),然后让文本向右对齐:
#footer #altnav {
width: 350px;
float: right;
text-align: right;
}
如果你按照以上方法,将得到如下图所示的页脚样式(点击看大图):
第九步:导航条的制作(较难):
Jorux注:导航条之所以放在第九步讲,是因为导航条制作是本教程中最难的部分,自然也是技术含量最高的地方.导航条的制作可易可难,但这里介绍的相对较难,您能坚持到这一步已经很不易,如果你只是有个导航条就满足的话,请参看第八步的副导航条的制作。
先去掉导航条的红色背景,还有就是移除html文件中main-nav层的"class="hidden"",使导航条的内容显示出来。我们实现导航条图片的变换的方法是纯css代码的,不包含任何js或是flash,因此我们所用的图片是4幅分别由三个小图组合而成的图片,如下所示,并将这4幅图保存于/images/nav/文件夹中:




我们实现导航条的动态效果如下图所示(点击看大图):
在网页显示的只是图中红框标出的部分,如果把每幅图分为上,中,下三部分的话,未发生动作时显示上部,当光标悬停时,显示的是中部,被选择时则显示下部。
接下来进入css代码部分,先往css文件中写入:
/* Main Navigation */
#main-nav { height: 50px; }
#main-nav ul { list-style:none; 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 */
现在你可以看到导航列表距左边有11px的距离,但是列表项目是竖排的,将<li>,即列表项目向左对齐就能使其从左到右横向排列:
#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;
}
接着,要实现当光标悬停于列表项目上时,显示背景图片的中部,因此需要将背景图片向上移动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); }
最后我们要做的就是,当列表项目被选时,显示背景图片的下部。为此我们需要增加一些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;
}
以上看似庞大的css选择器可以识别body标签的类(class),如html中为:
<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);
}
至此就完成了"About"网页的制作,依此类推,修改html中body的类为services/portfolio/contact制作相应html文件并分别保存。
在css文件中添加各个网页相应的头部背景图片路径(如services网页的头部背景图片为services.jpg,在css中添加如下代码):
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;
}
但是这样设置之后,网站的content层的文本也变成中间对齐了,我们需要让其向左对齐,加入:
#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.enlightenhosting.com/" mce_href="http://www.enlightenhosting.com/">Enlighten Hosting</a> and
<a xhref="http://www.vadmin.co.nz/" mce_href="http://www.vadmin.co.nz/">Vadmin 3.0 CMS</a>
</div>
在css文件中加入,并将#footer的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 li#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;
}
本教程到此结束,如果您觉得不错,请留言支持Jorux。
当然,如果您不满意Jorux的翻译或是理解(与其说是翻译,还不如说是Jorux对原文的理解,译文中有很多非原作者的话),请查看原文。







并没有翻译完成呀?为什么不翻译了?这样10天可学不会css!
已经翻译完了Icesoul,可以参照原文。
但是,十步确实不能学会css,只是初步而已,马上会开始一个基础css教程,感兴趣的话可以参考一下!
这么好的文章没人look,太可惜了
这篇文章反映很好,并不是没人看!:)
从这里开始!
太强了。。。喜欢这里,期待你的css教程,
学了之后。。马上把你的样式盗版走。。。哈哈
太好了!你的网站看着很舒服,看文章一点都不累!
确实很不错,,希望有更好的类似教程。。
[…] css教程–十步学会用css建站(全) (tags: css) 30 / September / 2006 misc […]
[…] css教程–十步学会用css建站(全) (tags: my动手 CSS) […]
[…] css教程–十步学会用css建站(全) (tags: css) […]
bucuo
thx
[…] css教程–十步学会用css建站(全) […]
强贴,按着做了一遍……
非常好
在我的opera里试做了一遍 什么都显示得好好的
甚至自己加减的东西都显示得好好的
但是换到ie6看居然是如此苍白 甚至siderbar那个都不出来
头痛啊
再仔细教一些吧
不用担心。好好学学《If you love css …》吧。至于IE与FF、Opera的区别会在以后的文章说明。
我是按照上面所说的来做,但导航不行,鼠标放上去时没有反应?
肯定是可以的, 有很多人验证了。 “BaoBao”再仔细看看吧!
能不能把弄成的例子源文件打包,让我下载个,看看呀,弄了半天,和你的还是有出路
我的也是有点出入,
有没有源文件下载
[…] http://jorux.com/archives/10steps-built-web-with-css/ […]
有个别代码出了点问题, 比如:
xsrc=”images/general/logo_enlighten.gif” mce_src=”images/general/logo_enlighten.gif” , 应该改为src=”images/general/logo_enlighten.gif” ,有时间我会尽快修改的, 请读者谅解.
那些代码问题是由于wordpress的编辑器自动改的, 所以出现错误, 现已修复, 请读者替换掉以前那些带链接的代码. 有其他问题请留言.
你的贴跟你本人一样的帅呀!加油!
我出现了个好奇怪的问题,在content那部分如果用英文内容不会有异常。如果用的是中文内容,刷新下内容就变没了,要把窗口缩小再打开才有,好奇怪噢,怎么会这样
To shadow:
可以把它传到网上来, 我可以帮你看看.
做到第八步,sideber 出现问题了!它会移到中间位置!但是浏览它又没出事!好怪!
怎么没有回我呀
做第六步的时候:
body {
font-family: Arial, Helvetica, Verdana, Sans-serif;
font-size: 12px;
color: #666666;
background: #ffffff;
}
并不像你说的那样,背景大块的颜色去不掉呀!!
background-image: url(title.gif);
怎么调整图象的长度大小?
To Ling:
你写的代码只是设置全局。 想要去掉背景颜色, 必须把各个div的background移除。
To Joe:
背景图像的大小是无法在css里设置的。
To Win-fire:
Sorry for the delay!
你提供的信息太少, 我也帮不了你, 最好是传到网上来!
倒,我上次说的那个中文显示不了的问题,现在又可以了,都不知道怎么又会正常了
我有点不明白,那个content不是设置个width的吗,我一设置width,content那个div 就会跑到sider的div 下面去,就不会和它同一排的高度了
我有点不明白,那个content不能设置个width的吗,我一设置width,content那个div 就会跑到sider的div 下面去,就不会和它同一排的高度了
试着把width的值设小点。
为什么这个教程里用的是”让位式”布局呢(注:谁遮住谁了,谁就让开),我是说我们不能预先定位好各个内容块的高和宽吗?如果我是在PS里设计好了图样的话,我就知道了内容块大小位置,不必再去考虑它的放置定位.
教程里的设计者难道是没有做好详细设计图样的吗?有点过于随意性!
我是新手请教的问题都好多呢!
请指点下,谢谢!
请详细的说明下建CSS站流程!
To Win-fire:
1. 首先你不是一个新手, 新手是不会知道设计网站首先的步骤是用ps平面设计。你只是知道用表格去建站而已。
2. 其次, css建站的流程和以前没什么变化:平面设计->页面切割->编码。
3. 页面里的元素并不是每一都与确定的高宽的,比如说横向导航栏, 它只有确定的高, 可以没有确定的宽, 这是为了自动适应。
有什么问题还可以接着问!
你还真高手!
我还想问下教程的Header为什么不用一个图片呢?
还有你这个网站会不会像这个教程里的步聚做出来的?
对于多列表表格用CSS会不会很麻烦?
怎样解开加密的网站,很多另存不了呀!
……..
1. 教程用了两个图片,一个作为背景,一个用img加载(用于点击);
2. 我的网站制作过程和教程差不多,但要熟练的多,会省略很多步骤;
3,对于多列表表格还是建议用表格来排版,css也可以混合控制table和div;
4. 至于解密,我就不告诉你了,“另存为”早已经过时了,你去搜搜吧。
可能你觉得我有点烦,
但我还想问下,div里的图片参入热点不也就可以点击了吗?
时下流行的网站风格是不是韩国风格?
我发现问题会常来光顾的,除非你不再回答我的问题!
THANK U !
昨天在网上看到一个渐变的滤镜效果代码如下:style=”filter:progid:DXImageTransform.Microsoft.
gradient(startcolorstr=#FFFFFF,endcolorstr=#EFEFEF,gradientType=0)”
这是加在Table里的,不知怎么在DIV里做出来?
麻烦了!
有好多问题想马上解决的,找百度了……没用!
你去找百度,百度又百度……浪费不少时间没有一个合适的答案!
希望得到你专业的回答.
还有我的胃不好,常有点想吐的感觉应该吃点什么呢!
热烈庆祝河北大学建校八十五周年
#container {width:760px;margin:auto;}
body{
margin:0px;
padding:0px;
font-family: Arial, Helvetica, Verdana, Sans-serif;
font-size: 12px;
color: #666666;
background: #ffffff;
text-align: center;
}
#a1{height:200px;background:red;url(../images/head.jpg);}
#a2{margin-right=560px;}
.bianju{padding:0px;margin=0px;}
#a3{float:right;width=550px;line-height=18px;padding:25px;}
#a4{width:760px;}
#a5{height=66px;clear:both;font-family: Tahoma, Arial, Helvetica, Sans-serif;
font-size: 10px;
color: #c9c9c9;
border-top: 1px solid #efefef;
padding: 13px 25px;
line-height: 18px;
}
#a5 #a6 {
width: 350px;
float: right;
text-align: right;
}
#a5 a {
color: #c9c9c9;
text-decoration: none;
}
#a5 a:hover {
color: #db6d16;
}
校史长廊
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.
河大风采
改革之路图片展
家国天下
Copyright © 家国天下Powered by http://www.family.hbu.cn
为什么图片总是被遮住呢
To Winfire:
最近几天太忙。你的问题我会一一回答的, 请关注此页面!!
Sorry for the delay!
To Win-fire:
1. 背景图片是不能加热点的;
2. 韩国风格已经过时了, 现在是web 2.0 style的世界;
3. 那个滤镜可以在css里声明,只要选择器是对应html里的元素就可以实现;
4. 不要用百度,不要用中文,搜索请英文+Google;
5. 至于胃部不适,最好吃点促进胃肠动力药,如吗丁啉,如不奏效,建议去医院做个胃镜,可能有其他问题,和你的年龄有关;
6. 有其他问题请继续!
很好啊~~~: )
那是不是以后的趋势是不用表格了
表格还是有用的,只是一般不用在整站排版上了,但在数据表格方面,表格和css结合起来最好。
body {
font-family: Arial, Helvetica, Verdana, Sans-serif;
font-size: 12px;
color: #666666;
background: #ffffff;
}
好像这一步不能实现啊。内联>外接样式表>内部样式块,是里面5个父元素。而已经自己定义了一个外接样表。好像父元素的内联样式不起作用吧。
body {
font-family: Arial, Helvetica, Verdana, Sans-serif;
font-size: 12px;
color: #666666;
background: #ffffff;
}
好像这一步不能实现啊。内联>外接样式表>内部样式块,body是里面5个div的父元素。而div已经自己定义了一个外接样表。好像父元素的内联样式不起作用吧。
当我们把所有的小div放在一个大的div里面会不会造成打开速度变慢呀?
浏览器是怎样读出这些div的?
顺序怎么样的?
To flay521:
这里没用内联样式。
To win-fire:
浏览器无论是对html还是css,都是从上至下的顺序。
将小的div放在大的div里并不会对速度产生影响,但是要尽量把耗时间的div放在页面尾部,它会造成其(在html中)以下的div打开速度变慢。
用火狐浏览出现了很多问题!
火狐对表单好像很”反感”,我在一个div(float:left)里用了个表单,用火狐浏览时,它下面那个DIV(float:left)既然向着那个表单左对齐!!
怎么解决?
用火狐浏览出现了很多问题!
火狐对表单好像很”反感”,我在一个div(float:left)里用了个表单,用火狐浏览时,它下面那个DIV(float:left)既然向着那个表单左对齐!!出现错位!
怎么解决?
试试 clear:both;
最好有个网址,让我直观地看看问题。
我又学到了不少东西啊,多谢Jorux!支持!!!
谢谢你的教程,对于我们这些初学者来说太有用了,呵呵!
终于做出来了。
但还是在最后
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;
}这个地方不明白,
我就把它换成了
#main-nav li a:active {
background-position: 0 -100px;
}出现一样的效果啊。
不明白为什么还要为body设个先择器。
请老师讲解一下。
还有想说一下,有的做不出来9步的效果可能是图片的格式不对。教程中的链接是gif格式,可是下载的图片是Jpg格式!所以就会看不到图片。
To flay521:
给body设了4个选择器,是为了区别4个网页(about,services,portfolio,contact), 这样就能实现在不同网页时,导航栏的不同current效果。
好文章啊,顶,谢谢Jorux,我决定每天都来一下。
[…] 曾翻译过一篇css教程:十步学会用css建站,文章声称能在十步学会建站,虽说夸张点,但确实能学到一些东西,就像现代社会流行速成一样,它只是一个css快餐,要达到自由运用css,没个百八十步恐怕有点悬。 […]
文章翻译的不错, 我也看了原文。希望能和你切磋切磋!如有好的文章请发到我的邮箱。谢谢!我会经常到这来的。支持支持!
To kevin:
如果你没有订阅Feed的习惯,建议用email订阅本站的Feed,有什么好文章我会发出来的。
感谢你的支持!
哈哈,谢谢了
好细腻的教程,初学~~
觉得是最好的了。赞下
跟着做了两次,这样能步步分析出来的教程真少。收藏了~。
学了几天,感觉很好,谢谢Jorux,请教一个问题,为什么main-nav里每个栏目都要放置2张背景图呢?我只放了一个,也是一样的效果。谢谢!
想问一个很菜的问题,我找了几个css入门的帖子看都没看到有说的。
就是在css里的# . 开头的东东有什么区别?
#main-nav li a {…}
#a2{…}
.bianju{…}
这里有用.开头的,也有用#号开头的,我在做网页的时候,表格里的标题上的Lable想用大一点的字体,而正文lable想用小一点的字体,请问要怎么做?我常常都是手动把这个设置在代码中,不知道写在css里要怎么写?
请达人指点一下,我不想深入学习css,只想入门就行了,我是做web程序的,但有时候要和界面打交道,做不好….
#是用来标识html中id的,而.是用来标识class。例如:
在HTML里写入:
<h2 class=”title”>标题:~~~</h2>
<p class=”para”>正文:~~~~~</p>
在css里写入:
.title {
font-size:20px;
}
.para {
font-size:12px;
}
非常谢谢Jorux/Bluecssr 的回答
以后有问题就找了你。呵呵~~~回答真及时!
按Jorux/Bluecssr 说的做到第5完,但6开头这效果没做出来,不知道是不是要把每个div里的background给删除了?
http://static.flickr.com/50/138230223_d90ae92488_m.jpg
下面是我的css代码
body {
font-family: Arial, Helvetica, Verdana, Sans-serif;/*字体*/
font-size: 12px;/*字体大小*/
color: #666666;/*字体颜色*/
background: #ffffff;/*背景色*/
}
/*页面容器*/
#pageContainer
{
width:760px;
background:red;
margin:0;
padding:0;
}
/*主体风格*/
html, body {
margin: 0;
padding: 0;
}
/*头标题图片区*/
#main-nav {
background: red;
height: 50px;
}
/*头标题区*/
#header {
background: blue;
height: 150px;
}
/*主要内容区*/
#content
{
margin-right:280px;
background: green;
}
/*页脚*/
#footer
{
clear:both ;
background: orange;
height: 66px;
}
/*链接区*/
#sidebar-a {
float: right;
width: 280px;
background: darkgreen;
}
/*在.是在class中使用的风格,#是在html里使用的风格*/
.hidden
{
display :none ;
}
/*h1标签的风格*/
h1
{
margin :0;
padding :0;
}
/*主要内容里的h2,p标签风格*/
#content h2 {
margin: 0;
padding: 0;
}
#content p {
margin: 0;
padding: 0;
}
上面没说清楚,就是6开始把页面背景设为了白色,但我的还是五颜六色!
在body里设的背景色没应用上,这是怎么回事!
To 菜鸟:
对,你需要把每个div的背景删去。
不知你看你的邮箱否,请参看http://jorux.com/archives/looking-for-web-programmers/
看到此留言后请速与发email到joe7419#gmail.com, 与我直接联系。
谢谢你的指点,email我以回,对于你的问题我帮不上忙,不好意思:(
我不会php:(
Jorux/Bluecssr 你好!
我对DIV+CSS方法很感兴趣,看了你的教程,照着做了一遍,感觉真的感觉受益匪浅,这里真是一个学习的不错的地方,我是一个初学者,有一点不太明白,望有时间帮我解答一下:
就是教程刚开始的的那段HTML代码,我复制了一下:
CompanyName - PageName
@import “css/master.css”;
这个是你的。
下面的是我在dreamweaver里直接新建的空白文档:
无标题文档
请问他们有什么区别?
你的多的那段代码:
这段代码是什么意思,到底是起了什么作用?在DIV+CSS布局里必须添加吗?
希望你在百忙之中给与答复,谢谢!redhorse8318@163.com
logo_enlighten图片浮在头部的左上方,我们需要设置的属性值为:
*/
h1 {
margin: 0;
padding: 0;
float: right; /*!!!!!!!!!!!!导致sidebar-a走位!!!!!!!!!!!!!!!!*/
margin-top: 57px;
padding-right: 31px;
}
上述sidebar-a走位只是在dreamweae8里,在浏览器里是好的,我想问问怎么解决这个问题?谢谢
To 塞上柳絮:
很抱歉,我没有使用过DW, 而且你没有必要追究DW的表现。
请问这一句需要用上吗?
“”
就是卡在这个地方了,是不是我作一个ABOUT的独立网页就要在HTML文件中这样写入代码呢?
还是说“body.about ”这样在CSS中表达只是为了在名称上区别一下各个不同内容的网页呢?
就是说只是种名称的名义上区分,而在HTML文件中并不需要有“”的代码表示呢?
谢谢!
To Xiaojiaoya:
在留言中不能直接使用代码,你的代码被屏蔽了。但据我推断,Html中必须要有那个代码,css才能控制其表现,并且区分各个页面。
不错的网站,以后会经常来的,希望会有更多地发现。
哈这个写得真的好。学到了不少东东。
原网站还有一篇Gracefully Degrading CSS/HTML
要是你也翻译了,别忘记了通知一声哈。
再次感谢LZ的辛勤劳动!
对了我的联系方式是:jiafeifei12345@gmail.com
QQ:17841919
我的main-nav部分显示不对,怎么弄都没办法,帮我看看吧。
/* Main Navigation */
#main-nav { height: 50px; }
#main-nav ul { margin: 0; padding: 0; }
/* IE5 Mac Hack \*/
#main-nav { padding-left: 11px; }
/*/
#main-nav { padding-left: 11px; overflow: hidden; }
/* End Hack */
#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:hover {
background-position: 0 -50px;
}
#main-nav li#about,
#main-nav li#about a { width: 71px; background-image: url(../images/nav/about.jpg); }
#main-nav li#services,
#main-nav li#services a { width: 84px; background-image: url(../images/nav/services.jpg); }
#main-nav li#portfolio,
#main-nav li#portfolio a { width: 95px; background-image: url(../images/nav/portfolio.jpg); }
#main-nav li#contact,
#main-nav li#contact a { width: 106px; background-image: url(../images/nav/contact.jpg); }
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;
}
谢谢了!
To 千風:
你最好有个在线的网址发给我看看.
你的图片后缀可能有问题,你下载的图片不是jpg文件,而可能是gif文件,比如你把图片about.jpg改成about.gif等试一试。
to jorux:
我的 navigation bar 不知道哪里的错误,在IE6 就是不显示,在IE7显示无错误。在firefox2.0和opera9.0整个变形了请帮忙解决行吗? 这里先谢谢啦!下面是html 和 css 代码。
HTML ;
Home
HomePage Management
HomePage
Category
Keywords
SiteID
NewsLetter Management
NewsLetter Edit
Email List
Content Edit
Merchant Management
Merchant Admin
Page Content
Registration List
CSS code:
/* –[begin navagation bar]——————– */
#nav {
font-family: arial, sans-serif;
width:100%;
float: left;
position: relative;
margin: -25px 0 0 0;
font-size:13px;
z-index:100;
}
#nav ul li a, #nav ul li a:visited {
display: block;
text-decoration:none;
width:150px;
height:20px;
text-align:center;
color:#fff;
border:2px solid #fff;
background: #990000;
line-height:20px;
font-size:12px;
overflow: hidden;
font-weight: bold;
}
#nav ul {
padding:0;
margin:0;
list-style-type: none;
}
#nav ul li {
float: left;
margin-right:1px;
position:relative;
}
#nav ul li ul {
display: none;
}
/* specific to non IE browsers */
#nav ul li:hover a {
color:#fff;
background: #000;
}
#nav ul li:hover ul {
display:block;
position:absolute;
top:20px;
left: 0;
width:150px;
}
#nav ul li:hover ul li a {
display:block;
background:#ddd;
color:#fff;
}
#nav ul li:hover ul li a:hover {
background: #000;
color:#fff;
}
/* –[end navigation bar]——————- */
我看不懂你的代码。可能是有一部分代码被wp屏蔽了,你最好给个网址展示一下,或是把你的网页打包放在一个免费空间,我可以帮你看看。
嗯? 这里不接受html 的 代码啊 整个图片试试:http://static.flickr.com/120/315595570_bcfc077d1a_o.gif
http://e22e.net/latestdeals-management/
to jorux:
介绍两个UK最流行的web magazine给你
http://www.netmag.co.uk/
http://www.pwdmag.co.uk/
To Kevin:
我这一两天有点忙。闲下来会Email你的。
Thanks
To Jorux:
做这样的导航菜单也是出于无奈啊, 2级页面的内容很多,宽度就想限制在1000px 所以…… 不过还好解决了一些问题。用的是IE的conditional comments 。
[…] 第二步:创建html模板及文件目录等; […]
真的是太强了,我看到了div+css的希望,永远支持Jorux,我想我已经喜欢上这里了!!!!
从0开始刚学作网页.坚持到最后虽然还有不少语句不明白.不过效果图出来了,感觉很不错啊!
好文章!!
此前一直对css+div一头雾水,今天整个教程看下来,终于有些入门了,谢谢你:)你的家很好,我也会经常光顾.
搞定了~~~
Jorux,你好,本人也是才接触DIV+CSS,对它只懂得一点点,今天看到你的这个教程,真的是学到了很多东西,毕竟网上能让初学者读懂的教程不是很多(个人观点),在此深深的表示感谢
看教程有感:1.你这里一定还有别的教程吧(~你的菜单~我不懂英文,还有就是才来这里,地形不熟),如果有,麻烦给列个表行吗?
2.很想学JAVASCRIPT,在网上收集了几个教程,但每次都是看的一头雾水,感觉特吃力,学不进去,不知是教程不好,还是我的思维能力值得怀疑,能否给介绍个这方面的初级教程?
等待回复
您好,我刚刚大学毕业,希望在网站设计这方面有所发展,今天看到这个教程才明白老师教的那都是皮毛的皮毛.请教设计一个较好的网站该如何学习?
To Asgard:
你需要向国外看齐。多读英文原著得网页教程,多练习。
祝你好运。
Jorux 你好,不知为什么你没有给我回复,仔细看了下,原来是我在上面的留言中把你的名字误添了个空格,对此向你道歉
To dongxin:
1. http://jorux.com/archives/是目录;
2. Js教程我也不太了解;
3. 上次没回,是因为当时忙,忘了。抱歉。