初窥CSS布局
写一篇文章,难免要为之命名,所谓名不正,则言不顺;言不顺,则事不成。这篇文章是要说明一下CSS中的布局,实为入门之法矣。 本想命名为“布局说”的,但是总感觉题目太大,被大神们看到难免沦为笑柄,思来想去,便命名为“初窥CSS布局”。
不管是写一个html页面,还是打算建一个网站,首先应该想的是怎么为之布局,这是常常让我头疼的事情,不知,这是否也曾困扰着 足下?您是怎么为页面布局的呢?是否有为页面布局的通用之法呢?我不知道。但是下文,就是从头到尾介绍了一种页面布局的方法。
介绍
这个布局是基于一个截面图,然后把它转化为一个html页面,但是介绍的目的不是仅限于这一个特定的例子,而是可以用于所有以后的布局过程。
在我们开始之前,需要有几点准则指导着我们,避免我们误入歧途、走火入魔,中毒太深:
-
每次进行一步,每一步都用一组浏览器来测试开始布局踏出第一步很容易,但是半途碰到问题并不是我们所期望的。为了避免这种情况的发生, 我们每进行一步,都要用一组浏览器来进行测试。这样你就能清楚的看到布局是如何进行的,也可以避免一些问题的出现。
-
基于现代浏览器构建,但是也要向前兼容最好基于标准兼容的浏览器构建布局,但是也要让一些老版的浏览器兼容。
-
校验你的HTML代码和CSS时常检验你的HTML代码和CSS,这样的话很多的布局问题就能够得到解决。
这下面这两个地址会对你有所帮助:
① WC3 HTML validator
② WC3 CSS validator
Step1.考量一下对浏览器的支持性:
在开始设计CSS布局之前,你应该想一下你要支持的浏览器或者说支持到什么程度。客户、用户、测试日志文件等可能会对你有一定的帮助。
Step2.查看容器布局
看看你的设计,想一下主要由哪些容器组成。
Step3.为容器命名
上面所说的容器将会是你的页面布局中放置内容的容器,所以你需要为他们起一个能够描述他们特征的名字,就像
- container
- header
- mainnav
- menu
- contents
- footer
如果这些容器对页面来说是唯一的,在标签代码中最后使用ID来表示,而不是class来标示。这在为其他元素来写样式的时候显得很 重要,因为当出现冲突时,用ID来标识的样式会重写用class来标识的代码。
Step4.开始写样式和代码
首先确定文档类型,在这里我们采用HTML4.01strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/
html4/strict.dtd">
然后是增加头信息和字符编码等,将外联样式命名为style.css
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Page title</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen">
<!--[if IE 6]>
<link rel="stylesheet" href="ie6.css" type="text/css" media="screen">
<![endif]-->
</head>
最后,加入上面我们分析好的一些元素:
<body> <div id="container"> <div id="header" title="sitename"> <div id="skipmenu"><a href="#content">Skip to content</a></div> <h1> Sitename </h1> </div> <div id="mainnav"> <ul> <li><a href="#">Section 1</a></li> <li><a href="#">Section 2</a></li> <li><a href="#">Section 3</a></li> <li><a href="#">Section 4</a></li> </ul> </div> <div id="menu"> <h3> Archives </h3> <ul> <li><a href="#">December 2014</a></li> <li><a href="#">November 2014</a></li> <li><a href="#">October 2014</a></li> <li><a href="#">September 2014</a></li> <li><a href="#">August 2014</a></li> </ul> <h3> Last 10 Entries </h3> <ul> <li><a href="#">Entry 120 (4)</a></li> <li><a href="#">Entry 119 (0)</a></li> <li><a href="#">Entry 118 (9)</a></li> <li><a href="#">Entry 117 (3)</a></li> </ul> </div> <div id="contents"> <div class="blogentry"> <h2> <a href="#" title="Permanent link to this item">Heading here</a> </h2> <h3> Sunday, 24 August 2014 </h3> <p> <img class="imagefloat" src="flower.jpg" alt="" width="100" height="100"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. <a href="#">Duis autem vel eum</a> iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent. </p> <p> Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. </p> <ul> <li><a href="#">Comments (4)</a></li> <li><a href="#">Pingbacks (1)</a></li> <li>Category: <a href="#" title="Category">CSS</a></li> </ul> </div> </div> <div id="footer"> Copyright © <a href="http://www.wenboxz.com" target="_blank">文波の小站</a> 2014,All Rights Reserved. </div> </div> </body>
Step6.指定样式
body
{
margin: 0;
padding: 0;
background: #ddd;
}
#container
{
margin: 1em auto;
width: 650px;
background: #fff;
}
#header { background: #CF3; }
#mainnav { background: #9F3; }
#menu
{
float: right;
width: 165px;
background: #6F9;
}
#contents
{
float: left;
width: 440px;
background: #9FC;
margin: 0 0 0 20px;
}
#footer
{
clear: both;
background: #FF9;
}