《写给大家看的CSS书》第四章:定位元素

1、理解盒模型

每一个元素都会在页面上生成一个盒子,如下图所示:

一个盒子包括了以下几个部分

  • 外边距(margin):设置盒子与相邻元素之间的距离
  • 边框(border):设置边框的粗细、样式和颜色
  • 内边距(padding):设置盒子的内容与边框之间的距离
  • 内容(content):内容显示区

2、边框(Border)


宽度(width)


thin、medium、thick、任何长度单位(em、px、百分比)


样式(style)


none、hidden、dotted、dashed、solid、double、groove、ridge、inset、outset


颜色(color)


任何颜色值(RGB、十六进制、关键字)

有两种方法来指定边框的样式:分别指定以及统一指定

/*分别指定样式*/
p.warning {border-width: 4px;}
p.warnin {border-style: solid;}
p.warning{border-color: #F33;}

/*统一指定样式*/
p.warning {border: 4px solid #F33; padding:2px;} 

/*先指定公共样式*/
p.warning {border:solid #F33; padding:2px;}
/*再分别指定每条边的宽度(上右下左)*/
p.warning {border-width:4px 2px 2px 4px;} 

3、内边距(Padding)

下图显示的是不带内边距与内边距为10px的区别

4、外边距(Margin)

下图显示的是浏览器默认的外边距以及将外边距设置为0的区别

需要特别注意的是,垂直方向的外边距并不会进行直接相加,而会发生重叠现象

/*为三个段落设置相同的外边距,其中上边距为50px,下边距为30px*/
/*当上下边距相遇时,它们会相互折叠,直到一个元素的外边距接触到另一个元素*/
p {width:400px;  height: 50px; border:1px solid #000; margin: 50px 0 30px 0; background-color:#FFF;}

如下图所示,原本垂直方向的外边距应该为80px(一个元素的下边距30 + 另一个元素的上边距50),但实际上,垂直边距都为50

5、进一步理解盒子的大小

仅仅设置盒子的宽度

设置宽度 + 内边距

设置宽度 + 内边距 + 边框

设置宽度 + 内边距 + 边框 + 外边距

也就是说,内边距和边框同样会增大盒子的距离,例如,我们需要让一个栏目的总的宽度维持在170px,最初,width设置为170px刚好,但是,如果我们增加了10px的内边距,那么为了保持总宽度不变,width就要修改为150px,这样做不利于维护。

解决方法是,我们定义一个外部的div专门设置总宽度,然后再定义一个内部的div添加内边距

6、浮动和清除


float


将元素从文档流中移出,位于元素后的元素,会在空间充足的情况下向上移动到浮动元素旁边


left、right、none、inherit


clear


阻止元素向上移动到浮动元素旁边


left、right、both、none

/*向左浮动图像,因此文本会环绕在图像右侧*/
p {width:400px; margin:0; border:1px solid red; background-color:#FFF;}
img {float:left; margin:0 4px 4px 0;}

只要浮动某个设置了宽度的元素,而且页面中也有足够的空间,那么相应的元素就会像栏一样排列在一起(当以这种方式浮动具有内置宽度的图像时,无需通过CSS指定它的宽度)。

/*同时浮动图像和“具有指定宽度”的段落时,如果页面空间足够大,文本环绕效果就会停止,原本的文本会在图像旁边构成分栏*/
p {float:left; width:200px; margin:0; border:1px solid red; background-color:#FFF;}
/*由于图像原本具有宽度值,所以不需要设置*/
img {float:left; margin:0 4px 4px 0;}

清除浮动的方式很简单,我们在需要清楚浮动的元素之间添加一个不可见的元素,然后设置clear属性即可

/*在元素之间添加新的元素div*/
<img>
<div class="clearthefloast"></div>
<p>

.clearthefloast{clear:both;}

7、元素定位


position


用户确定元素盒子在页面上定位的参照点


static、relative、absolute、fixed、inherit

元素定位通常分为四种情况:

  • 静态定位(static):元素所在的默认位置,不需要特别设置
  • 相对定位(relative):设置相对位置的值后,可以使元素相对于默认位置发生偏移
  • 绝对定位(absolute):设置绝对位置的值后,可以使元素脱离文档流而独立存在,默认位置根据顶级元素(body)来决定
  • 固定定位(fixed):设置固定位置的值后,可以使元素脱离文档流而独立存在,其位置根据浏览器中显示网页的窗口来决定
/*假设div2继承于div1*/
div2 { top:10px; left:20px;} /*毫无变化,因为默认状态为static*/
div2 {position:absolute; top:10px; left:20px;} /*div2会根据body来定位*/
div2 {position:relative; top:10px; left:20px;} /*div2会根据div1来定位*/

段落使用相对定位后的位置变化

使用绝对定位和固定定位:

当滚动窗口的时候,绝对定位会随着窗口移动(因为body会根据移动),但是固定定位则保持不变(因为固定定位所参考的窗口没有发生变化)

时间: 2024-10-16 12:23:10

《写给大家看的CSS书》第四章:定位元素的相关文章

前端编程提高之旅(五)----写给大家看的css书

   自实习也有几个月的时间了,以爱奇艺实习为敲门砖,进入了目前这家公司.如果说当初能进爱奇艺是临时突击DIV+CSS的话,目前在这家公司体验到,任何技术都必须悉知原理,这样才能做到庖丁解牛,做一个内行的人.css属性和用法都摆在那里,但如果用得好,除了躬身实践,提高理论积淀就特别必要了,这本<写给大家看的css书>快速扫过一遍之后,之前工作遇到过不清楚的问题,一扫而空,所以有必要总结下.    css层叠的理解    css是层叠样式表的英文缩写,层叠意味着样式从文档结构中一个层次传递到另一

《写给大家看的CSS书》第三章:字体与文本

一.字体与文本 字体与文本的区别: 字体主要涉及文字的大小和外观(可应用于单个字符). 文本主要涉及对字体的处理(只能应用于文本块) 二.指定字体 CSS中指定字体的最简单方式,就是使用五种通用的字体集合 serif :该字体在字符笔画末端有叫做衬线的小细节(Time New Roman.Georgia.Palatino) sans-serif:末端无任何细节(Trebuchet MS.Arial.Verdana) monospace:每个字母宽度相等(例如,i与m具有相同的宽度),通常用于排版

《写给大家看的CSS书》第五章:网站布局

1.网站的基本结构 我们简单的把网站的基本布局方式分为以下四种: 其中,流动布局与固定布局的差别如下: 流动:主内容区域的宽度会随着浏览器窗口的变化而自动换行,除非达到最小宽度 固定:随着窗口的变化(例如缩小),页面将会被遮掩 以三栏式固定式布局为例,基本的HTML文档结构如下图所示 2.两栏固定布局 /* 两栏固定布局 */ body { text-align:center; /*通过这条规则使布局在IE6的浏览器窗口中居中*/ } #main_wrapper { width:840px; /

读书笔记:《写给大家看的设计书》

读书笔记:<写给大家看的设计书> <写给大家看的设计书>这本书本来是买给孩子看的,孩子对板报.杂志.名片等设计很感 兴趣,想看点基础的设计类的书籍,就给她找了一本.书到手后,我随手翻了翻发现对于我制作PPT还是很有帮助的,对于非专业设计人员来说,掌握4条设计原 则确实可以让设计感觉到非常专业,这几条原则应用于网站的设计也是同样有效. 全书三大部分,共14章,第一部分(第1-8章)最有用,讲述四大设计原则,第二部分(第9-11章)讲字体设计,第三部分有点像附录. 第一章 约书亚树 有

写给大家看的设计书——读后笔记

<写给大家看的设计书>介绍了设计的四个基本原则:亲密性.对齐.重复.对比.作为一个软件"设计师",我也来聊聊读过这本书之后,我对这四个原则的一点理解. 亲密性 亲密性原则是指:内涵相关联的内容,在结构.关系上也应保持关联.        以软件设计的角度来说,一项业务所包含的功能.一个功能所包含的代码,应该在结构.关系上保持关联.例如把这些代码放到同一个包下.用同一套规则来命名.这样,当我们需要查阅.修改这个功能,需要处理哪些代码就"一望而知"了.   

电子书 写给大家看的项目管理书第3版.pdf

荷瑞因编著的<写给大家看的项目管理书(第3版 )>针对项目管理岗位的新人以及现实状况,讲授项 目管理技巧的基本概念和基本原理.书中内容以任务 为导向组织,讲解细致,语言风趣,并在每章末尾都 给出了总结性的知识框架图,便于读者记忆.本书适合项目管理新手,以及没有进修过相关知识的项目经理. 限个人学习使用,不得用于商业用途,请在下载后24小时内删除.备注:资源来自网络,如有不合理可私信我,秒删.电子书 写给大家看的项目管理书.pdf 免费下载https://page55.ctfile.com/fs

写给大家看的设计书(第3版)PDF下载高清完整扫描原版

这本书出自一位世界级设计师之手.复杂的设计原理在书中凝炼为亲密性.对齐.重复和对比4 个基本原则.作者以其简洁明快的风格,将优秀设计所必须遵循的这4 个基本原则及其背后的原理通俗易懂地展现在读者面前.本书包含大量的示例,让你了解怎样才能按照自己的方式设计出美观且内容丰富的产品. 此书适用于各行各业需要从事设计工作的读者,也适用于有经验的设计人员.需要学习的朋友可以通过网盘下载pdf版 http://putpan.com/fs/8y1i5bce5n5s1h8u0/ 作者简介 Robin Willi

《写给大家看的设计书》

四大基本原则(CRAP) 亲密性(Proximity) 元素分类放在一起. 对齐(Alignment) 对齐分为:左对齐.右对齐.居中对齐.两端对齐. 慎用居中对齐,居中对齐的 "对齐线" 强度弱,没有力度. 重复(Repetition) 对首尾运用重复可以很好地收尾,让读者读到尾部视线停留. 整个系统样式进行重复会让系统样式保持一致性,使系统各模块(页面)看上去是一个整体. 对比(Contrast) 页面上的元素要有对比,以达到吸引读者的目的. 如果两项不同就应该完全不同,对比很弱反

CSS布局的四种定位方式

1.static(静态定位): 默认值.没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明).参考上篇随笔. 2.relative(相对定位): 定位为relative的元素脱离正常的文本流,但其在文本流中的位置依然存在,所以它本身并没有脱离文档流. 通过top,bottom,left,right的设置相对于其正常(原先本身)位置进行定位.可通过z-index进行层次分级. <style type="text/css"