1.span和div的区别

  div是块元素(block),span是行内元素(inline);

  span什么事也不会做,它存在的目的在与为开发者给它所围绕的元素指定样式。div类似,不过它引入了行分隔(其实实质是同第一点)

  块元素是指另起一行开始渲染的元素,行内元素是指不需另起一行渲染的元素

  示例代码:

<div style="background-color: wheat;">我是不带任何样式的的div,我是块级元素,块级元素独占一行</div>
<span style="background-color: red;">我是不带任何样式的的span1,我是行内元素</span>
<span style="background-color: green;">我是不带任何样式的的span2,我是行内元素</span>

  显示结果:

2.display:block,display:inline和display:inline-block的区别

1)  display:block

把元素定义为块级元素;独占一行,width默认是auto;

可以设置width和height属性,但即使设置了width属性,块级元素还是独占一行,可以设置margin和padding属性。

示例代码:

<span style="display:block;background-color: blue;">我是块级的span</span>
<span style="display:block;background-color: wheat;width="100px">我是块级的span,并设置了width属性为100px,但是width并不生效</span>
<div style="background-color: red;width="100px">我是div,我设置了width为100px,但是它并不生效</div>

结果:

2)  display:inline

把元素定义为行内元素;不会独占一行,多个相邻的行内元素会排在一行,直到一行排列不下;

inline元素设置width、heigth无效;

可以设置margin和padding

示例代码:

<div style="display: inline;background-color: wheat">我是设置了inline的div,没有设置宽和高</div>
<div style="display: inline;background-color: yellow;width:100px;height:30px">我是设置了inline的div,设置了宽100px,高30px,但是没生效</div>
<div style="display: inline;background-color: blue;margin:5px;padding:5px">我是设置了inline的div,设置了marging 5px,padding5px</div>

运行结果:

3)  display:inline-block 把对象呈现为inline对象,但是将对象的内容呈现为块级对象。就是说,inline-block的元素不会独占一行(inline元素),同时可以使该元素具有块级元素可以设置height和width的能力,设置padding和margin也有效。

示例代码:

<div style="display: inline-block;background-color: wheat">我是设置了inline-block的div,没有设置宽和高</div>
<div style="display: inline-block;background-color: yellow;width:400px;height:30px">我是设置了inline-block的div,设置了宽300px,高30px,设置生效了</div>
<div style="display: inline-block;background-color: blue;margin:5px;padding:5px">我是设置了inline-block的div,设置了marging 5px,padding5px</div>

显示结果:

3.position:relative和position:absolute的区别以及float

relative:相对于自己原本的位置偏移,未脱离文档流和文本流

absolute:相对于最近的position不是static的父级元素的位置偏移,脱离文档流和文本流

float和fixed会脱离文档流,但不脱离文本流

示例代码:

<span>我是正常的span</span>正常 span之外的文本流
<span style="float: left">我是float 的span</span>float span之外的文本流

名词解释:

文档流:normal flow,传统html文档的文本布局,相对于盒子模型

文本流:相对于文字段落

4.什么时候该用relative,什么时候该用absolute?

一般是两个组合起来使用,一个页面先排出大的块用relative(如left,center,right这种大的版面),大块中的内容再用absolute来排版,也可以用relative;或者一个大的块里面元素比较多时也可以再用relative划分一次

附一段练习的代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<span>我是正常的span</span>正常 span之外的文本流
<span style="float: left">我是float 的span</span>float span之外的文本流 <div style="display: inline-block;background-color: wheat">我是设置了inline-block的div,没有设置宽和高</div>
<div style="display: inline-block;background-color: yellow;width:400px;height:30px">我是设置了inline-block的div,设置了宽300px,高30px,设置生效了</div>
<div style="display: inline-block;background-color: blue;margin:5px;padding:5px">我是设置了inline-block的div,设置了marging 5px,padding5px</div> <div style="display: inline;background-color: wheat">我是设置了inline的div,没有设置宽和高</div>
<div style="display: inline;background-color: yellow;width:100px;height:30px">我是设置了inline的div,设置了宽100px,高30px,但是没生效</div>
<div style="display: inline;background-color: blue;margin:5px;padding:5px">我是设置了inline的div,设置了marging 5px,padding5px</div> <div style="background-color: wheat;">我是不带任何样式的的div,我是块级元素,块级元素独占一行</div>
<span style="background-color: red;">我是不带任何样式的的span1,我是行内元素</span>
<span style="background-color: green;">我是不带任何样式的的span2,我是行内元素</span> <span style="display:block;background-color: blue;">我是块级的span</span>
<span style="display:block;background-color: wheat;width="100px">我是块级的span,并设置了width属性为100px,但是width并不生效</span>
<div style="background-color: red;width="100px">我是div,我设置了width为100px,但是它并不生效</div> <div style="display: block;background-color: orange;">我是block的div,display:block块的 width 属性的默认值是 auto 就是自动 撑满整行</div>
<div style="display: block;background-color: green;float:left">我是前一个div加了float left属性</div>
<div style="background-color: blue;height: 30px;position:relative;top:15px;">我是relative的div,我在文档流中是存在的,我的位置是相对于我应该在的文档流中的位置</div>
<div style="background-color: red;float:left;position:relative">我是relative float left 的div,跟absolute一样我具有inline-block的属性</div>
<div style="background-color: yellow;height: 30px;position:absolute;border:1px red;">我是absolute的div,我在文档流中不占位置,我的位置是相对于我最靠近的那个非static的父级元素的位置,我后面的元素可以当我不存在,而且我的display属性自动变成inline-block了</div>
<span style="background-color: blue;height: 30px;">我是一般的span,我被前面的absolute div给挡住了,大家看不见我看不见我</span>
<div style="background-color: blue;height: 30px"><span style="background-color: grey;height: 30px">我是包含在div里面的span,span一般height不生效</span></div>
<div style="background-color: red;height: 30px"><span style="background-color: grey;display:inline-block; height: 30px">我是包含在div里面的span,display设置为inline-block后height生效</span></div> </body>
</html>

显示结果:

页面布局排版-block,inline,float,relative,absolute等的更多相关文章

  1. 网页布局的应用(float或absolute)

    一个浮动(左浮动或右浮动) 垂直环绕布局(float.clear) 左右两列布局(float.absolute) 三栏网页宽度自适应布局(float.absolute) 注意:网页设计中应该尽量避免使 ...

  2. float、absolute、inline-block三者区别

    0.前言 float属性在css2中是一个热门的属性,被广泛应用于布局之中,同时由于不当使用float带来的问题也非常多,本文结合自己对float的理解以及实际项目中碰到float的相关问题,做一个详 ...

  3. 比float更好的页面布局inline-block

    一:页面布局的发展过程 桌格设计 表格+css div+css的浮动布局 div+css的内联块布局 二:流行多年的浮动布局的优劣 优势: div+css浮动布局的优势,主要是相对于table布局来说 ...

  4. ie、firefox、chrome中关于style="display:block" 引发的页面布局错乱的解决办法

    ie.firefox.chrome中关于style="display:block" 引发的页面布局错乱的解决办法: table中tr 添加style="display:b ...

  5. Appcan开发之页面布局与CSS排版(转)

    在Appcan开发中,首先要进行的就是页面布局,然后在这个页面上填充数据,加上互动元素,最终构成完整的应用. 因为appcan是使用HTML5+CSS3+JavaScript技术来进行开发,所以与普通 ...

  6. CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法

    一.BFC与IFC 1.1.BFC与IFC概要 BFC(Block Formatting Context)即“块级格式化上下文”, IFC(Inline Formatting Context)即行内格 ...

  7. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  8. CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  9. CSS3与页面布局学习笔记(三)——BFC、定位、浮动、7种垂直居中方法

    一.BFC与IFC 1.1.BFC与IFC概要 BFC(Block Formatting Context)即“块级格式化上下文”, IFC(Inline Formatting Context)即行内格 ...

随机推荐

  1. bzoj 1396: 识别子串【SAM+线段树】

    建个SAM,符合要求的串显然是|right|==1的节点多代表的串,设si[i]为right集合大小,p[i]为right最大的r点,这些都可以建出SAM后再parent树上求得 然后对弈si[i]= ...

  2. poj 3415 Common Substrings【SA+单调栈】

    把两个串中间加一个未出现字符接起来,然后求SA 然后把贡献统计分为两部分,在排序后的后缀里,属于串2的后缀和排在他前面属于串1的后缀的贡献和属于串1的后缀和排在他前面属于串2的后缀的贡献 两部分分别作 ...

  3. PJzhang:贷款逾期与失信被执行人

    猫宁!!! 最近看到一家网贷机构在APP上的温馨提示,提到了网贷逾期与个人征信的关系以及向客户发放贷款的7项基本原则. 如下: 贷款申请及逾期告知 尊敬的客户,感谢您选择####股份有限公司为您提供贷 ...

  4. P1219 最优贸易

    C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市. 任意两个城市之间最多只有一条道路直接相连. 这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的 ...

  5. Luogu P3393 逃离僵尸岛【最短路】By cellur925

    题目传送门 题目大意:(其实概括出来也就基本做完了hh)在一张有$n$个点,$m$条边的无向图上,有$k$个点是不能经过的,而与之距离不超过$s$的点,到他们会花费$Q$元,到其他点会花费$p$元,求 ...

  6. ufunc函数

    无灯可看.雨水从教正月半.探茧推盘.探得千秋字字看. 铜驼故老.说著宣和似天宝.五百年前.曾向杭州看上元. ufunc是universal function的缩写,他是一种对数组的每个元素进行运算的函 ...

  7. Beta版本冲刺第二天!

    该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...

  8. Analyzing Polyline CodeForces - 195D

    Analyzing Polyline CodeForces - 195D 题意:有n个函数,第i个函数yi(x)=max(ki*x+bi,0).定义函数s(x)=y1(x)+y2(x)+...+yn( ...

  9. Milking Grid POJ - 2185 || 最小覆盖子串

    Milking Grid POJ - 2185 最小覆盖子串: 最小覆盖子串(串尾多一小段时,用前缀覆盖)长度为n-next[n](n-pre[n]),n为串长. 当n%(n-next[n])==0时 ...

  10. 排序二叉树 HDOJ 5444 Elven Postman

    题目传送门 题意:给出线性排列的树,第一个数字是根节点,后面的数如果当前点小或相等往左走,否则往右走,查询一些点走的路径 分析:题意略晦涩,其实就是排序二叉树!1<<1000 普通数组开不 ...