网页布局基础

网页布局基础

    简介

什么是网页布局?
    网页布局是网页制作的基础,使用DIV+CSS布局网页是基础中的基础。三种基本布局方式:流式布局,浮动布局,绝对定位布局。

网页设计的特点:1:网页宽度可变  2头+内容主体(根据需要分栏)+页脚(不重要的内容)   对长度设置百分比可实现网页自适应

W3C标准包括结构化标准语言,表现标准语言,行为标准语言,倡导结构,样式,行为分离。

CSS中,存在三种定位机制:标准文档流,浮动,绝对定位。

标准文档流:从上到下,从左到右输出文档内容,由块级元素和行级元素组成。

浮动:float属性left(左浮动)  right(右浮动) none(不浮动)   元素会左移或右移,直至碰到容器为止。

关于浮动的详细介绍参考我转载的《CSS浮动-float/clear》

绝对定位: position属性 拥有三种定位方式 1.静态定位(static) 2.相对定位(relative) 3.绝对定位(absolute  fixed(固定定位))

参考我前面的《CSS基础》有详细解释。

相对定位的特点:
   1.相对自身原有位置进行偏移  2.仍处于标准文档流中,会占据原来的空间位置  3.拥有偏移属性和z-index属性,即空间层叠现象。

绝对定位特点:
    1.建立以包含块为基准的定位  2.完全脱离了标准文档流   3.随即拥有偏移属性和z-index属性
    未设置偏移量时:如position:absolute;
    1.无论是否有已经定位的祖先元素(一个元素设定了相对定位或者绝对定位,就是已经定位的元素),都会保持在元素的初始位置,宽度随着内容变化。
    2.脱离标准文档流
    设置偏移量时:如position:absolute;top:20px;left:50px;
    1.没有已定位的祖先元素
    ①会以根元素<html>为偏移的参照基准
    2.有已定位的祖先元素
    ①会以最近的已定位祖先元素作为参照基准

盒子模型:网页布局的基础,由四部分组成:边框(border) 外边距(margin) 内边距(padding)  盒子中的内容(content) 盛放网页中的图片,内容,音视频等。    

盒子模型的立体图片,从第一层到第五层依次为:border、content+padding、background-image、background-color、margin。

运用盒子模型制作下图:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>几米简介</title>
 6     <link rel="stylesheet" type="text/css" href="css/style.css"><!--导入外部CSS样式-->
 7 </head>
 8 <body>
 9     <div class="content book">  <!--导样追加-->
10         <img src="images/book1.jpg" width="80" height="80">
11         <img src="images/book2.jpg" width="80" height="80">
12         <img src="images/book3.jpg" width="80" height="80">
13         <img src="images/book4.jpg" width="80" height="80">
14         <img src="images/book5.jpg" width="80" height="80">
15     </div>
16 </body>
17 </html>

html代码

img{
    margin:10px 18px;
    border:1px solid #b1adad;
}
.content{
    border:4px solid #badbdb;
    padding:44px 15px 15px;
    width:700px;
}
.book{
    background: url(../images/t_book.gif) no-repeat #eff9f9;    /*特别注意引用*/

}
*{
    margin:0;
    padding: 0;   /* 消除浏览器设置的外填充和内填充 */
}

CSS代码

心得:

1.引用外部CSS样式须在<head></head>中添加代码<link rel="stylesheet" type="text/css" href="CSS路径">

2.关于路径(重要):  .\   表示项目文件所在目录之下的目录。
                              ..\ 表示项目文件所在目录向上一级目录下的目录。
                              ..\..\表示项目文件所在目录向上二级目录之下的目录。

3.*{margin:0;padding: 0;   /* 消除浏览器设置的外填充和内填充 */}  消除浏览器默认的标签外填充和内填充    

自动居中一列布局案例

掌握三个技能点: 标准文档流,块级元素,margin属性-设置自动居中

心得:图1三个层每层都把页面撑满了,为页面自动居中,给三个块设置一个包裹层wrap   #wrap{width:700px;margin:0px auto;}

auto会自动根据浏览器的宽度自动设置两边的外边距。原理:(浏览器的宽度-外包含层的宽度)/2=外边距   如果想让页面自动居中,当设置了margin属性为auto时,不能再设置浮动或绝对定位属性。

<body>
    <div id="wrap">
    <div id="header"></div>
    <div id="mainbody">
    <div class="content book">  <!--导样追加-->
        <img src="images/book1.jpg" width="80" height="80">
        <img src="images/book2.jpg" width="80" height="80">
        <img src="images/book3.jpg" width="80" height="80">
        <img src="images/book4.jpg" width="80" height="80">
        <img src="images/book5.jpg" width="80" height="80">
    </div>
    </div>
    <div id="footer"></div>
    </div>
</body>

CSS   块级元素宽会继续父级元素宽,自适应
#header{
    width:100%;
    height:200px;
    border:1px solid red;
}

#mainbody{
    width:100%;
    height:200px;
    border:1px solid black;
}
#footer{
    width:100%;
    height:200px;
    border:1px solid blue;
}
#wrap{width:770px;margin:0 auto;}

浮动布局案例 - 横向多列布局

主要应用技能:float属性-使纵向排列的块级元素,横向排列。

margin属性-设置两列之间的间距。

下图为未设置浮动前样式:

添加float属性使黑色和绿色块并列排列,为黑色块和绿色快添加代码:

.left{width:800px;background: black;height:200px;float:left;}
    .right{width:140px;background: green;height:300px;float: left;}

      可见,受到浮动影响的有两部分,第一部分是mainbody的父包含块,第二部分是紧随后面的元素(版权部分)。父层未设置浮动,两个子元素设置了浮动,父层高度无法扩展了。

为mainbody清除浮动影响:清除浮动有两种做法:1 没撑开的元素设置:overflow:hidden; 2 跑上去的元素设置clear:both;

当父包含块缩成一条时;用clear:both方法清除浮动无效;它一般用于紧邻后面的元素的清除浮动。这时可以用第二种方法:父包含块增加移除属性overflow:hidden。

<div>块高度一般不要设置。

!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
     *{margin:0;padding: 0;}
     #swap{background: #00C;margin:0 auto;width:960px;}
     #header{background:#F30; width:100%;}
     #mainbody{background:#fc0; width:100%;overflow:hidden;/*继承了父包含块的宽度*/}
     #footer{background:#639; width:100%;}
     .left{width:800px;background: black;height:200px;float:left;}
     .right{width:140px;background: green;height:300px;float:right;}/*一般间距控制在10-20px*/
    </style>
</head>
<body>
<div id="swap">
    <div id="header">头部</div>
    <div id="mainbody">
        <div class="left"></div>
        <div class="right"></div>
    </div>
    <div id="footer">版权部份</div>
</div>
</body>
</html>

绝对定位布局案例 - 绝对定位实现横向的两列或者多列布局

absolute实现横向两列布局不常用,主要用于一列固定宽度,另一列宽度自适应的情况。
    应用技能:父元素相对定位,relative    自适应宽度元素绝对定位(子元素),absolute
    注意:固定宽度列的高度>自适应宽度的列(否则浮动撑不起固定列)

#mainbody {
         width:100%;
         position:relative;
         margin-top:20px;
}

#sidebar {
    width:180px;
    padding-bottom:10px;
}

#content {
position:absolute;
margin-left:200px;
top:0;  /*不设置的话会保留原位置*/

网页布局之结构和表现原则

1、先按照结构和语义编写代码;
   2、然后进行CSS样式设置;
   3、减少HTML与CSS契合度。

真正意义上的结构与表现分开的思想,就是高级思路的思想。

结构与表现的分离:
  text-indent:使文本缩进到想要的位置。
  只是一行简短文字数字,可以用段落排版的思路来“定位”,即用text-indent:**px 缩进来达到目的。
  如果设置一个极小的负值,则可以在浏览器上隐藏文本,却又能被搜索引擎搜索到

1、拿到一个网页的设计图时,首先关注网页的文字内容及内容模块之间的关系,把重点放在编写html语义化的代码上,而不要过多的考虑设计图上的布局样式,等html按内容编写完以后再考虑样式如何实现,力求不改变样式结构的基础上完成要求的视觉效果。语义化的主要目的就是让大家直观的认识标签(markup)和属性(attribute)的用途和作用!
  2、利用margin属性来移动设置html结构.margin可以是负值,通过负值,可以使该内容进行移动!实现四个方向的移动。在结构(HTML)和样式(css)中,可以先把内容通过HTML写出来,再利用margin移动位置,实现排版,降低样式和结构的耦合,并且减少代码。

所以在做设计图的时候,也可以先单纯的考虑需要搭建的主要内容,以及放的位置,然后再想他的样式风格。力求在不改变html结构的情况下用css调整想要的效果

设置图片内边距后:  为什么设置了内边距背景图就显示出来了呢?
    根据CSS盒子模型,一个元素,从上到下分为边框,内容和内边距,背景图,外边距,背景颜色,共5个层次.开始时,因为没有设置内边距,盒子内部尺寸等于内容的尺寸,因此,处于第二层的内容将处于第三层的背景图遮挡住.设置了内边距之后,盒子的内部空间被扩展,第二层的内容不再占据整个盒内空间,空余处的背景图也就被显示出来了!

1 body{ margin:0;}
2 div{background:#460E29;width:700px;padding:20px}
3 img{background:url(http://img.mukewang.com/5385ac820001905201440133.jpg);}
4 </style>
5 </head>
6 <body>
7 <div><img src="http://img.mukewang.com/5385acb000013b0d00950095.jpg" /><img src="http://img.mukewang.com/5385acb000013b0d00950095.jpg" /><img src="http://img.mukewang.com/5385acb000013b0d00950095.jpg" /><img src="http://img.mukewang.com/5385acb000013b0d00950095.jpg" /> </div>
8 </body>

实践:导航条菜单的制作

1.垂直菜单的制作    一般都使用 “ul\li” 来制作“菜单导航条”    要点:基本的样式清除: *{margin:0;padding:0}

无序列表圆点去除: ul{list-style:none}

链接下划线去除: a{text-decoration:none}

文本缩进标签 text-indent 不会影响总体宽度(padding会)

需要将a标签设置为块元素,才能设高宽、hover效果 代码:a{display:block}

hover格式 a:hover{}

<style type="text/css">
        *{
            margin:0;
            padding:0;
            font-size: 14px;
        }
        ul{
            list-style: none;
            width: 100px;
        }
        a{
            text-decoration: none;display: block;height: 30px;
            line-height: 30px;
            margin-bottom: 1px;
            width:100px;
            background: #ccc;
            text-indent: 20px;
        }
        a:hover{
            background: orange;
        }
    </style>
</head>
<body>
<ul>
    <li><a href="#">首    页</a></li>
    <li><a href="#">新闻快讯</a></li>
    <li><a href="#">产品展示</a></li>
    <li><a href="#">售后服务</a></li>
    <li><a href="#">联系我们</a></li>
</ul>
</body>

2.水平菜单的制作

     水平菜单的html结构与上面的垂直菜单完全相同,只是css样式有所变化。

与垂直菜单相比
     1、li添加了float属性(主要)
     2、ul的宽度限制去掉了(主要)
     3、a的text-indent换成了text-align

3.1伸缩菜单的制作(改变鼠标经过的高度)

通过设置背景,改变外观样式

通过a:hover,可以为菜单增加交互效果

菜单<li>浮动后,<li>脱离文档流,导致<ul>将失去高度和宽度;如果需要对<ul>进行整体背景设置,首先要给<ul>定义宽、高。

a{display:block;height:30px;text-align:center; line-height:30px; width:120px; background-color:#ccc;}
a.on, a:hover{ color:#fff;background-color:#F60;height:40px; line-height:40px;margin-top:-10px;}

3.2水平伸缩菜单的制作(可以后学习)

水平方向伸缩菜单:
  JavaScript:
  1、window.onload //DOM执行完以后在执行其下代码
  2、document.getElementsByTagName(‘a‘);  //获取所有的a标签
  3、object(a).length  //说的是a标签的个数
  4、onmouseover、onmouseout  //鼠标移入移出
  5、clearInterval(this.time);  //实行动画前要先清除之前的动画 避免动画累加
  6、setInterval(function(){},30);  //每30毫秒 实行一下此函数
  7、This.offsetWidth+8+"px";  //当前的宽度+变宽的速度  
  jQuery:
 1、首先要引入jQuery再写script标签及jq代码 <script type="tt/js" src="....min.js"></script><script> jq代码 </script>
 2、$(‘a‘).hover()  //选择所有a标签 jq封装的hover方法
 3、hover方法自带移入移出方法 function(){},function(){}
 4、$(this).stop().animate({"width":"160px"},200);  //实行当前动画前先停掉上一个动画;自带移入移出动画animate 宽度发生变化 延迟200毫秒

   导航条菜单制作总结
 1、用无序列表构建菜单;ul/li
 2、垂直菜单转变为水平菜单:float:left;
 3、在制作圆角菜单时,背景图片贴在<a>标签上; -------> 雪碧图的应用--- background-position
 4、在制作改变高度的伸缩菜单时,实现高度向上延伸的技巧: ----> margin-top用负值;
 5、用JS制作水平伸缩菜单时,“this”代表当前的<a>标签。

  

时间: 2024-10-22 03:13:21

网页布局基础的相关文章

Web前端攻城狮培养计划之前端小白入门:网页布局基础与常见网页特效

步骤1: HTML基础超文本标记语言(英文缩写:HTML)是为"网页创建和其它可在网页浏览器中看到的信息"设计的一种标记语言,为搭建网页结构做出第一步.本阶段主要介绍了HTML的语法基础.表格.表单.等标签,并有案例结合,达到学以致用. 第1课 HTML基础HTML是网页制作必备技能,在本课程主要介绍HTML概念.语法及常用基础标签 第2课 HTML表格表格在网页中用于数据和排版,本课程介绍表格概念.语法.操作,并通过案例掌握知识. 第3课 HTML表单表单用于收集用户信息,本课程介绍

网页布局基础 第四次

绝对定位布局:使用position属性实现的网页布局CSS中规定的第三种定位机制能够实现横向多列布局以及较为复杂的定位:比如:带有遮罩层效果的提示框:固定层效果:全屏广告position拥有三种形式四种值:1.静态定位 static2.相对定位 relative3.绝对定位 absolute固定定位 fixed3和4都属于绝对定位,静态定位是元素默认状态,处于标准文档流中 相对定位特点:1.相对于自身原有位置进行偏移2.仍旧处于标准文档流中3.随即拥有偏移属性和z-index属性z-index:

【网页布局基础】css布局学习总结

三种定位机制 1.标准文档流:从上到下,从左到右输出文档内容 2.浮动 3.绝对定位 需要注意的是块级元素如div p ul 等 行级元素如span strong img input等 块级元素与行级元素都是盒子模型,下面说下盒子模型 盒子模型 盒子模型是网页布局的基石,border padding margin 下面给出盒子3d模型图便于理解 常见布局 自动居中一列布局 布局时候最重要的是把握三个技能点:标准文档流,块级元素,margin属性 自动居中代码:margin:0 auto: aut

网页布局基础 第三次(浮动布局)

清楚浮动 清除浮动的方法:对受到影响的元素设置如下属性1.为元素设置clear属性——clear:both;.clear:left;或者clear:right;2.同时设置width:100%(或固定宽度[固定宽度可能有问题])+overflow:hidden;2的width设置为100%就是继承父容器的宽度.左右撑满整个容器,为自己清除浮动创建条件.再加溢出隐藏,就可以把包裹浮动的部分去除. 横向两列布局的实现:这是网页布局最常见的方式之一主要应用技能:float属性——使纵向排列的块级元素,

CSS网页布局基础-圣杯布局和双飞翼布局

行布局 多列布局 圣杯布局 双飞翼布局 一.行布局 行布局垂直水平居中 注:这里没有用margin: 0 auto;先让它水平居中,而是使用了绝对定位布局,然后设置top:50%; left:50%;但是光设置这个还不够,因为这并不是水平垂直居中,因为它并没有考虑自身的宽度和高度,所以这里根据盒子本身的高宽又再此基础上设置了margin-left和margin-top.如果只设置了top:50%; left:50%;而没有设置margin-left和margin-top,效果如下: 代码如下:

网页布局基础 第一次

图片来源:慕课网

网页布局基础-浮动整理

一.float 1.当元素没有设置宽度值,而设置了浮动属性,元素的宽度随内容的变化而变化 2.清除浮动 (1)clear属性:both.left.right-----给受到浮动影响的元素添加 注意:当父级包含块缩成一条时,用clear:both清除浮动无效,他一般用于紧邻后面的元素为之清除浮动 (2)设置宽度等于100%,同时设置overflow: hidden-----给受到浮动影响的元素添加 3.仍处于标准文档流中 二.position属性:static(静态定位).relative(相对定

绝对定位实现网页布局

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

网页布局.....待更(三大阶段,预计二周内更完)

网页布局基础        简介 1.什么是网页布局       网页布局是网页制作的基础,使用DIV+CSS布局网页是基础中的基础.       2.流式布局,浮动布局,绝对定位布局.相关知识点:标准文档流,盒子模型,float属性position属性等. W3C标准包括结构化标准语言,表现标准语言,行为标准语言,倡导结构,样式,行为分离. CSS中,存在三种定位机制:标准文档流,浮动,绝对定位. 标准文档流 特点:从上到下,从左到右输出文档内容 由块级元素和行级元素组成 块级元素:从左到右撑