制作简单的网页结构以北京大学官网为例:
以下是对应的网页结构及参数
需要用到盒子的知识
CSS 盒子模型(Box Model)
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
下面的图片说明了盒子模型(Box Model):
不同部分的说明:
- Margin(外边距) - 清除边框外的区域,外边距是透明的。
- Border(边框) - 围绕在内边距和内容外的边框。
- Padding(内边距) - 清除内容周围的区域,内边距是透明的。
- Content(内容) - 盒子的内容,显示文本和图像。
为了正确设置元素在所有浏览器中的宽度和高度,你需要知道的盒模型是如何工作的。
元素的宽度和高度
重要: 当您指定一个 CSS 元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完整大小的元素,你还必须添加内边距,边框和外边距。
下面的例子中的元素的总宽度为300px:
实例
div { width: 300px; border: 25px solid green; padding: 25px; margin: 25px; }
让我们自己算算:
300px (宽)
+ 50px (左 + 右填充)
+ 50px (左 + 右边框)
+ 50px (左 + 右边距)
= 450px
试想一下,你只有 250 像素的空间。让我们设置总宽度为 250 像素的元素:
实例
div { width: 220px; padding: 10px; border: 5px solid gray; margin: 0; }
最终元素的总宽度计算公式是这样的:
总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
元素的总高度最终计算公式是这样的:
总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
CSS 实例
CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:
选择器通常是您需要改变样式的 HTML 元素。
每条声明由一个属性和一个值组成。
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
CSS 实例
CSS声明总是以分号(;)结束,声明总以大括号({})括起来:
p {color:red;text-align:center;}
为了让CSS可读性更强,你可以每行只描述一个属性:
实例
p { color:red; text-align:center; }
附上我的完整代码及结果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="my.css"/>
</head>
<body>
<div class="header">
<div class="container">
<div class="logo fl"></div>
<div class="nav-lan fl">
<div class="language fr">选择语言</div>
<div class="nav fr">导航</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</div>
<div class="center">
<div class="logo fl">中左</div>
<div class="nav-lan fl">
<div class="zhong fl">
<div class="zhong1">1</div>
<div class="zhong2">2</div>
<div class="zhong3">3</div>
</div>
<div class="zhongyou fr">中右</div>
<div class="zhongxia fr">中下</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<div class="footer">底</div>
</body>
</html>
下面代码为我的css下的my.css:
* {
padding: 0;
margin: 0;
}
.fl {
float: left;
}
.fr {
float: right;
}
.clear {
clear: both;
}
/* container中只写和这个相关的,不写其他的 */
.container {
width: 970px;
margin: 0px auto;
}
.header {
width: 970px;
height: 103px;
/*background-color: green;*/
margin: 0 auto;
}
.header .logo {
width: 277px;
height: 103px;
background-color: red;
}
.header .nav-lan {
width: 679px;
height: 103px;
margin-left: 14px;
/*background-color: green;*/
}
.header .nav-lan .language {
width: 137px;
height: 49px;
background-color: green;
}
.header .nav-lan .nav {
width: 679px;
height: 46px;
background-color: green;
margin-top: 8px;
}
.center {
width: 970px;
height: 435px;
/* background-color: yellow; */
margin: 0 auto;
margin-top: 10px;
}
.footer {
width: 970px;
height: 35px;
background-color: blue;
margin: 0 auto;
margin-top: 10px;
}
.center .logo {
width: 310px;
height: 435px;
background-color: goldenrod;
}
.center .nav-lan {
width: 650px;
height: 435px;
margin-left: 10px;
/* background-color: green; */
}
.center .nav-lan .zhong{
width: 450px;
height: 400px;
margin-right: 10px;
/* background-color: blue; */
}
.center .nav-lan .zhongyou {
width: 190px;
height: 400px;
background-color: darkorchid;
}
.center .nav-lan .zhongxia {
width: 650px;
height: 25px;
margin-top: 10px;
background-color: #008000;
}
.center .nav-lan .zhong .zhong1{
width: 450px;
height: 240px;
margin-bottom: 10px;
background-color: blue;
}
.center .nav-lan .zhong .zhong2{
width: 450px;
height: 110px;
margin-bottom: 10px;
background-color: blue;
}
.center .nav-lan .zhong .zhong3{
width: 450px;
height: 30px;
background-color: blue;
}
运行结果: