制作简单的网页结构以北京大学官网为例:

以下是对应的网页结构及参数

 需要用到盒子的知识

CSS 盒子模型(Box Model)

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。

盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

下面的图片说明了盒子模型(Box Model):

CSS 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;
}

运行结果:

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐