1.DIV与SPAN

1.1简介

1.DIV和SPAN在整个HTML标记中,没有任何意义,他们的存在就是为了应用CSS样式
2.DIV和span的区别在与,span是内联元素,div是块级元素
内联元素又名行内元素(inline element),和其对应的是块元素(block element),都是html规范中的概念。内联元素的显示,为了帮助理解,可以形象的称为“文本模式”,即一个挨着一个,都在同一行按从左至右的顺序显示,不单独占一行。而当加入了css控制以后,块元素和内联元素的这种属性差异就不成为差异了。比如,我们完全可以把内联元素加上display:block这样的属性,让它也有每次都从新行开始的属性,即成为块元素同样我们可以把块元素加上display:inline这样的属性,让它也在一行上排列。
Block元素特点:
①总是在新行上开始;
②高度,行高以及外边距和内边距都可控制;
③宽度缺省是它的容器的100%,除非设定一个宽度。
④它可以容纳内联元素和其他块元素

Inline元素特点:

①和其他元素都在一行上;
②高,行高及外 边距和内边距不可改变;
③宽度就是它的文字或图片的宽度,不可改变
④内联元素只能容纳文本或者其他内联元素

常见块元素(block element)

◎ address - 地址
◎ blockquote - 块引用
◎ center - 居中对齐块
◎ dir - 目录列表
◎ div - 常用块级容器,也是css layout的主要标签
◎ dl - 定义列表
◎ fieldset - form控制组
◎ form - 交互表单
◎ h1 - 大标题
◎ h2 - 副标题
◎ h3 - 3级标题
◎ h4 - 4级标题
◎ h5 - 5级标题
◎ h6 - 6级标题
◎ hr - 水平分隔线
◎ isindex - input prompt
◎ menu -  菜单列表
◎ noframes - frames可选内容,(对于不支持frame的浏览器显示此区块内容)
◎ noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)
◎ ol - 排序表单
◎ p - 段落
◎ pre - 格式化文本
◎ table - 表格
◎ ul - 非排序列表(无序列表)

常见内联元素(inline element)

◎ a - 锚点
◎ abbr - 缩写
◎ acronym - 首字
◎ b - 粗体(不推荐)
◎ bdo - bidi override
◎ big - 大字体
◎ br - 换行
◎ cite - 引用
◎ code -  计算机代码(在引用源码的时候需要)
◎ dfn - 定义字段
◎ em - 强调
◎ font - 字体设定(不推荐)
◎ i - 斜体
◎ img - 图片
◎ input - 输入框
◎ kbd - 定义键盘文本
◎ label - 表格标签
◎ q - 短引用
◎ s - 中划线(不推荐)
◎ samp - 定义范例计算机代码
◎ select - 项目选择
◎ small - 小字体文本
◎ span - 常用内联容器,定义文本内区块
◎strike - 中划线
◎ strong - 粗体强调
◎ sub - 下标
◎ sup - 上标
◎ textarea - 多行文本输入框
◎ tt - 电传文本
◎ u - 下划线
◎ var - 定义 变量

可变元素

◎applet - java applet
◎button - 按钮
◎del - 删除文本
◎iframe - inline frame
◎ins - 插入的文本
◎map - 图片区块(map)
◎object - object对象
◎script - 客户端脚本

1.2实战

<span style="font-family:Times New Roman;"><span style="font-family:Microsoft YaHei;"><!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><style type="text/css" >.div1 {background-color: green;}.div2 {background-color: gold;}.span1{background-color: red;}.span2{background-color: pink;}</style><title></title>
</head>
<body>
<div class="div1">我是DIV1</div>
<div class="div2">我是DIV2</div>
<span class="span1">我是SPAN1</span>
<span class="span2">我是SPAN2</span>
</body>
</html></span></span>

如下图可以看到,DIV默认会占据了整一行,而span只是占据了文字内容部分

2.盒子模型

2.1简介

1.margin-盒子外边距(标签元素与其他元素之间的边距
2.padding-盒子内边距(标签元素与标签内的元素之间的边距

3.border-盒子边框宽度(标签元素边框的宽度)

4.width-盒子宽度
5.height-盒子高度

2.2实战

我们利用盒子模型来完成一个简单的布局,最终效果如下:
1.首先我们创建3个DIV元素,填充背景颜色以便于区分,并在外面的大DIV设置固定高端和宽度分别为600px,小div高度和宽度分别为:300px
<span style="font-family:Times New Roman;"><span style="font-family:Microsoft YaHei;"><!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><style type="text/css" >.div {background-color:red;width: 600px;height:600px;}.div .div1{background-color:green;width: 300px;height:300px;}.div .div2{background-color:blue;width: 300px;height:300px;}</style><title></title>
</head>
<body>
<div class="div"><div class="div1"></div><div class="div2"></div></div>
</body>
</html></span></span>

两个DIV高度刚好等于最外层DIV的高度

2.从上图我们可以看到,最外层DIV与浏览器边界有间隙,如下:
我们对body的margin属性做调整,把它设置为0,把DIV与浏览器边缘的间隙去掉
<span style="font-family:Times New Roman;"><span style="font-family:Microsoft YaHei;">body{margin: 0;}.div {background-color:red;width: 600px;height:600px;}.div .div1{background-color:green;width: 300px;height:300px;}.div .div2{background-color:blue;width: 300px;height:300px;}</span></span>

3.把div1和div2并排在同一行,需要加入float属性,设置为float:left

<span style="font-family:Times New Roman;"><span style="font-family:Microsoft YaHei;"><span style="font-size:10px;">  body{margin: 0;}.div {background-color:red;width: 600px;height:600px;}.div .div1{background-color:green;width: 300px;height:300px;float:left;}.div .div2{background-color:blue;width: 300px;height:300px;float:left;}</span></span></span>

两个小div已经并排在同一行

4.我们对DIV1和DIV2分别对margin属性设置10px
<span style="font-family:Times New Roman;"><span style="font-family:Microsoft YaHei;"><span style="font-size:18px;">    </span><span style="font-size:10px;">  body{margin: 0;}.div {background-color:red;width: 600px;height:600px;}.div .div1{background-color:green;width: 300px;height:300px;float:left;margin: 10px;}.div .div2{background-color:blue;width: 300px;height:300px;float:left;margin:10px}</span></span></span>

从下图可以看到,加入margin:10px后,两个div排版已经错位,原因是加入magin属性,总高度和宽度已经发生了变化,超出了最外层DIV的高度与宽度(600px),实际上两个div加上margin属性的像素,总宽度和高度应该是:div1(300px+20px)+div2(300px+20px)=640px

5.因为最外层DIV总高度和宽度只是600px,而我们加入了margin:10px,实际上两个DIV相当于在高度和宽度分别新增了20px,如果希望两个DIV元素能并排,需要对DIV的宽度和高度减去margin新增的部分,使总和等于600px,对div1和div2的高度与宽度分别减去20px
<span style="font-family:Times New Roman;"><span style="font-family:Microsoft YaHei;"><!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><style type="text/css" >body{margin: 0;}.div {background-color:red;width: 600px;height:600px;}.div .div1{background-color:green;width: 280px;height:280px;float:left;margin: 10px;}.div .div2{background-color:blue;width: 280px;height:280px;float:left;margin:10px}</style><title></title>
</head>
<body>
<div class="div"><div class="div1"></div><div class="div2"></div></div>
</body>
</html></span></span>

这样就完成了我们想要的效果了

5.最后我们对比下在最外层DIV加入padding元素前后会有什么效果
加入padding之前:
加入padding元素后,我们可以发现最外层DIV高度与宽度发生变化了,分别变为了620px

3.总结

对于margin属性,它不会改变标签元素的宽度与高度,只会影响元素与元素之间的边距;对于border与padding属性,如果增加了border或padding的大小,那么元素的高度与宽度也会相应增加,也就是border与padding属性会影响标签元素的实际高度与宽度

CSS学习笔记--Div+Css布局(div+span以及盒模型)相关推荐

  1. CSS学习笔记之浮动布局

    什么叫文档流? 简单来说,就是指元素在页面中出现的先后顺序. 一.正常文档流 "正常文档流,将一个页面从上到下分为一行一行,其中块元素独占一行,相邻行内元素在每一行中按照从左到右排列直到该行 ...

  2. Web前端开发之CSS学习笔记10—栅格布局(网格布局)

    目录 [网格布局grid] 1.网格布局的构成 2.父容器grid container 3.生成网格容器 display:grid/inline-grid 4.构建网格 grid-template-c ...

  3. 超细的CSS学习笔记(CSS详解)

    复习CSS时记录的笔记. 从最基本的 CSS 概念开始,复习如何使用 CSS 同时控制多重网页的样式和布局.同时涉及最新版本 CSS3 的内容,掌握新的标准化组件. 文章目录 一.CSS介绍 1.CS ...

  4. CSS学习笔记(一) CSS基础+CSS3新特性

    思维导图 文章目录 思维导图 1. CSS 简介 2. CSS 引入方式 2.1 行内样式表 2.2 内部样式表 2.3 外部样式表 2.4 CSS 引入方式总结 3. CSS 选择器 3.1 CSS ...

  5. HTML及CSS学习笔记 06 - CSS简介和常见的选择器

    本文是HTML及CSS课程的第六课.W3C提倡网页的内容与表现分离,层叠样式表(Cascading Style Sheet)即是网页中的"表现"部分,它描述HTML标签将会显示成什 ...

  6. CSS学习笔记11 CSS背景

    background-color:背景色 前面我们经常用background-color这个属性来设置元素的背景色,例如下面这条css可将段落的背景色设置为灰色 p {background-color ...

  7. css中怎么加入立体模型,CSS学习笔记二:css 画立体图形

    继上一次学了如何去运用css画平面图形,这一次学如何去画正方体,从2D向着3D学习,虽然有点满,但总是一个过程,一点一点积累,然后记录起来. Transfrom3D 在这一次中运用到了一下几种属性: ...

  8. div+css学习笔记一(转)

    div+css学习笔记一 (2011-05-12 07:32:08) 标签: div css 居中 背景图片 ie6 ie7 margin 杂谈 分类: 网页制作 1.IE6中用了float之后导致m ...

  9. CSS 学习笔记 - 网格布局(栅格系统)

    CSS 学习笔记 - 网格布局(栅格系统) 开启网格模式 基本概念 属性说明 容器属性 内容属性 效果展示 grid-template-rows.grid-template-columns 基本用法 ...

  10. HTML/CSS学习笔记01【概念介绍、基本标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

最新文章

  1. java用1234组成,用javasecp代码展现数字1234可以组成多少个三位数
  2. netty源码分析服务器启动 NioEventLoop创建
  3. java html 字符串截取字符串长度_Java截取带html标签的字符串,再把标签补全(保证页面显示效果)...
  4. 如何为网站设置站点图标
  5. 【必看】Linux 系统的备份恢复
  6. HTML5 基础知识(三)
  7. Python基础day04 作业解析【3道 字典题】
  8. 登录界面验证码的实现
  9. Struts2 ActionWildcard(通配符配置)约定优于配置
  10. 新手也能看懂的 SpringBoot 异步编程指南
  11. Hadoop框架:NameNode工作机制详解
  12. SSH连接virtualbox中的虚拟机
  13. 工作回报如何影响人的生产力_如何在减少工作的同时提高生产力
  14. 如何用python画哆啦爱梦_python3 turtle 绘制哆啦A梦
  15. 是不是每个人的成长路上都会有迷茫的阶段?
  16. 关于技术的学习及批判
  17. python实训第一天
  18. ASP.NET使用WPS WORD转PDF
  19. 数据库分类及主流数据库对比
  20. 笔记本拆机后无法开机是什么原因

热门文章

  1. PHP+cocos2d-js开发的牛牛游戏
  2. Android Unity il2cpp 编译异常
  3. C#修改connectionStrings的方法
  4. c语言前缀编码,C语言实现中缀表达式转前缀表达式
  5. 简单数位dp及对前导0的理解
  6. python爬虫小项目--飞常准航班信息爬取variflight(上)
  7. Udp数据丢包测试--iperf3
  8. APT28组织钓鱼攻击分析
  9. 【测试理论】二、测试职业能力维度
  10. Python实现拉格朗日插值算法