CSS:盒模型和position定位
盒模型
页面上显示的每个元素(包括内联元素)都可以看作一个盒子,即盒模型( box model )。请看Chrome DevTools 里的截图:

可以显而易见的看出盒模型由 4 部分组成。从内到外分别是:
content 内容 -> padding 内边距 -> border 边框 -> margin 外边距
例如规定一个元素:
<style>
.example {
width: 200px;
padding: 10px;
border: 5px solid #000;
margin: 20px;
}
</style>
这里还有两种特殊情况:
- 无宽度 —— 绝对定位(position: absolute;) 元素
- 无宽度 —— 浮动(float) 元素
它们在页面上的表现均不占据空间(脱离普通流,感觉像浮在页面上层一样,移动它们不影响其他元素的定位)。这就涉及到另外两个核心概念 position 和 float。
我的练习代码:
<style>
.box{
width: 200px;
height: 200px;
/* border: 1px solid #999; */
/* background-color: blue; */
float: left;
/* 外边距 */
/* margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
margin-left: 10px; */
margin: 100px 0px 0px 10px;
/* 内边距 */
/*padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px; */
padding: 100px 50px 30px 10px;
/* 边框 */
border-top-width: 5px;
border-top-style: solid;
border-top-color: #999;
/* border-top: 5px solid #999; */
/* border-right-width: 5px;
border-right-style: solid;
border-right-color: #999; */
/* border-right: 5px solid #999; */
/*
border-bottom-width: 5px;
border-bottom-style: solid;
border-bottom-color: #999; */
/* border-bottom: 5px solid #999; */
/*
border-left-width: 5px;
border-left-style: solid;
border-left-color: #999; */
/* border-left: 5px solid #999; */
border : 5px solid #999;
</style>
Position
css里经常用到它,使html元素在网页中精确定位
三种形式
- 绝对定位(position: absolute)
- 相对定位(position: relative)
- 固定定位(position: fixed)
绝对定位
position:absolute; (表示绝对定位)
这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口
/* 如下面代码可以实现div元素(以一张200x200图片为例)相对于浏览器窗口向右移动100px,向下移动50px */
<style>
div{
width:200px;
height:200px;
position:absolute;
left:100px; /*移动到距离最左100px的地方*/
top:50px; /*移动到距离最顶20px的地方*/
}
</style>
...
<div><img src="img/right2.png"></div>
相对定位
position:relative; (表示相对定位)
相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,
移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。(站着茅坑不拉屎)
/*相对于以前位置向下移动50px,向右移动100px*/ <style>
#div1{
width:200px;
height:200px;
border:2px red solid; position:relative;
left:100px;
top:50px;
}
</style>
...
<div id="div1"></div>
固定定位
fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化。
就像那些培训网站一打开右下角那个聊天窗口就是固定定位,害怕
position:fixed; (表示固定定位)
但我们经常会把相对定位和绝对定位搭配使用:
Relative与Absolute组合使用
使用 position:absolute 可以实现被设置元素相对于浏览器(body)设置定位以后,
然后元素相对于其它元素(如他的上一层)进行定位,使用 position:relative 来帮忙搞定
<style>
#box1{
width:200px;
height:200px;
position:relative;
} /*定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。*/ #box2{
position:absolute;
top:20px;
left:30px; </style>
... <!-- 参照定位的元素必须是相对定位元素的前辈元素 --> <div id="box1">爸爸
<div id="box2">儿子
</div>
</div>
CSS:盒模型和position定位的更多相关文章
- CSS盒模型和margin重叠
在 CSS 中,width 和 height 指的是内容区域的宽度和高度.增加内边距.边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸.(div的实际占用尺寸变打了) 但: 一旦为页面设置 ...
- 浅析CSS——元素重叠及position定位的z-index顺序
多次在项目中遇到html页面元素的非期待重叠错误,多数还是position定位情况下z-index的问题.其实每次解决类似问题思路大致都是一样的,说到底还是对z-index的理解比较模糊,可以解决问题 ...
- (转)浅析CSS——元素重叠及position定位的z-index顺序
多次在项目中遇到html页面元素的非期待重叠错误,多数还是position定位情况下z-index的问题.其实每次解决类似问题思路大致都是一样的,说到底还是对z-index的理解比较模糊,可以解决问题 ...
- CSS盒子模型和IE浏览器
CSS盒模型图解 下面是一幅关于应用了CSS的元素是如何显示它的尺寸的图示. 在本篇文章中,所有的浏览器在计算盒模型总宽度时处理margin属性的方式都是一致的,所以我们将更多的精力放在padding ...
- Uint 5.css继承权重,盒模型和border padding
一 .css的继承性和权重 1.1 继承性:继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的.继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代. 可以被继承的属性有 ...
- CSS中盒子模型和position(一)
今天遇到几个css中的重要的知识点,记得这些都是以前看过的:margin.padding.border和position.可是用起来还是有很多的问题,以前自己看过去总是懒得记录,等到用起来了都不知道自 ...
- Css盒模型有哪几部分,标准盒模型和IE盒模型有哪些区别
首先介绍Css的盒模型也就是标准盒模型(BOX Model) 包含了 内容(content) 内边距(padding) 边框(border) 外边框(margin) 这是大家经常用到的,也是现在的标准 ...
- CSS魔法堂:Position定位详解
一.Position各属性值详解 1. static :默认值,元素将按照正常文档流规则排列. 2. relative :相对定位,元素仍然处于正常文档流当中,但可以通过left.top. ...
- css总结1:position定位:absolute/relative/fixed
1 [Positioning(定位)] Positioning作用:指定了元素的定位类型.position包括四个值:static,relative,fixed,absolute. css定位解析:元 ...
随机推荐
- 2013-2015 Aaronyang的又一总结,牧童遥指纳尼村
我没有时间去唠叨自己的事,可是你们是我喜欢的人,ay很愿意写给你们分享:去年的万人阅读的总结链接:<没学历的IT人生没那么悲催,献给程序员们> 提前声明:本文不良反应:请自备垃圾桶,准备装 ...
- Warning: Function created with compilation errors.
SQL> create or replace function 2 remove_constants(p_query in varchar2) return varchar2 3 as 4 l_ ...
- 借着Python-3来聊聊utf-8字符集
[关于文本文件] 文本文件也是以二进制序列的方式保存在磁盘中的,磁盘并不能保存文本:我们打开文本文件的时候之所以能看到文字,是因为 软件根据文件所用编码的字符集对文件进行解码的原因. [以utf-8字 ...
- 图灵数学·统计学丛书.PDF(53本全)
图灵数学·统计学丛书01-概率论及其应用(第1卷·第3版)-[美]William.Feller-人民邮电出版社.pdf 图灵数学·统计学丛书01-金融数学:衍生产品定价引论-[英]M·巴克斯特& ...
- Repeater数据控件的两个重要事件ItemDataBound 和 ItemCommand
1 ItemDataBound:数据绑定的时候(正在进行时)发生. 2 ItemCommand :用来响应Item模板中的控件的事件. 如下代码 aspx代码: [html] view plain c ...
- Extjs4.2x与富文本框编辑器KindEditor的整合
Extjs4本身的HtmlEditor编辑器,太鸡肋了,简单的html能够应付一下,稍加复杂的就无能为力了. 对于Extjs的HtmlEditor扩展主要有三个方向,一个是扩展其本身的htmlEdit ...
- Java知多少(21)this关键字详解
this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性.例如: public class Demo{ public int x = 10; publi ...
- (笔记)AT91SAM9260的启动过程详细解说
Bootstrap的启动过程 一. 说明: Bootstrap启动代码是官方提供的一级启动代码,包括汇编和C语言两部分组成.对AT91SAM9260来说编译完成后,代码长度必须小于4KB,烧写到dat ...
- Scala学习笔记——函数和闭包
1.本地函数 可以在一个方法内再次定义一个方法,这个方法就是外部方法的内部私有方法,省略了private关键字 2.头等函数 var increase = (x: Int) => x + 1 S ...
- [JS] ECMAScript 6 - Variable : compare with c#
前言 范围包括:ECMAScript 新功能以及对象. 当前的主要目的就是,JS的学习 --> ECMAScript 6 入门 let 命令 js 因为let, i的范围限制在了循环中. var ...