概览
CSS盒模型,规定了元素框来处理元素的 内容、内边距、边框和外边距的方式
元素部分是指内容部分,也是最实际的内容,包围内容的称之为内边距,内边距外围是边框,边框外围就是外边距;且外边距是透明的,所以并不会阻挡其后的元素
  * {
    margin: 0;
    padding: 0;
  }
  这是在CSS中最常见的初始化CSS的代码,用于覆盖浏览器的默认样式
浏览器兼容性
  大多数浏览器都会按照上面的图示来呈现内容。然而 IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的。不幸的是,IE 5.X 和 6 在使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。
虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。
值复制
  值复制是指 margin 的四个方位属性值部分缺省时的自动填充。
  四个值部分缺省,有如下三种情况:
  1 个值,其他 3 个值都由这个值(上外边距)复制得到
      p {margin: 1px;} /* 等价于 1px 1px 1px 1px */ 
  2 个值,第 3 个值(下外边距)由第 1 个值(上外边距)复制得到,第 4 个值(左外边距)由第 2 个值(右外边距)复制得到
      h2 {margin: 0.5em 1em;} /* 等价于 0.5em 1em 0.5em 1em */ 
  3 个值,第 4 个值(左外边距)由第 2 个值(右外边距)复制得到
      h1 {margin: 0.25em 1em 0.5em;} /* 等价于 0.25em 1em 0.5em 1em */ 
  归纳起来就是,上下对应,左右对应,第一个值是 top.
盒模型的基础属性大概就是这些,那么基于盒模型的概念,也延伸出了不少东西,其中我觉得有必要作为一个点需要记录下的应该就是元素居中了。元素居中是在页面中使用最频繁的一种页面元素操作手段,也是面试中经常出现的题目。所以特地整理出来了6种常见的元素剧中方式。
1.基本方案:
给予元素一个宽度并使用margin来做居中处理
  body{ width:960px; margin:0 auto; } 
2.单行文本居中
为文本加上line-height属性后使用vertical-align: middle;
 #parent {
line-height: 200px;
}
#parent img {
vertical-align: middle;
}
3.table元素中的居中

#parent {
display: table;
}
#child {
display: table-cell;
vertical-align: middle;
}

这种情况会在IE6 7下出现一定的bug,解决方案如下

 #child {
display: inline-block;
}
4.元素使用定位进行居中
此类型居中是需要基于父类元素的,需要先设置父类元素相对定位,子类元素需要做到相对于父类进行绝对定位
     #parent {position: relative;}
#child {
position: absolute;
top: 50%;
left: 50%;
height: 30%;
width: 50%;
margin: -15% 0 0 -25%;
}
此类型定位适用于块级嵌套的元素
5.上个方案的升级版
 #parent {
position: relative;
}
#child {
position: absolute;
top:;
bottom:;
left:;
right:;
width: 50%;
height: 30%;
margin: auto;
}
6.对于已浮动的元素的居中处理
 #parent {
height: 250px;
}
#floater {
float: left;
height: 50%;
width: 100%;
margin-bottom: -50px;
}
#child {
clear: both; height: 100px;
}

  前端学习持续进行中,希望通过自己的努力能够让自己成为一个合格的前端工程师吧(神特喵总结→_→...就是不那么菜鸡就好....)

  博客内容为自己收集并整理,非原创。感谢度娘,感谢必应,谷歌翻过去了网速不好,也没找到啥能看得...如有雷同,那肯定就是我整理资料的来源吧,手动滑稽;

  ps.如需转载,请附上本人博客地址http://www.cnblogs.com/azhai-biubiubiu/p/5933562.html

  完结撒花

大前端学习笔记整理【一】CSS盒模型与基于盒模型的6种元素居中方案的更多相关文章

  1. 大前端学习笔记整理【二】CSS视觉格式化模型

    1. 概念 在视觉格式化模型中,文档树中的每个元素都将会根据盒模型产生零到多个盒子.这些盒子的布局由如下因素决定: 盒子的尺寸和类型 定位策略(正常文档流,浮动或者绝对定位) 和文档树中其他元素的关系 ...

  2. 大前端学习笔记整理【七】HTTP协议以及http与https的区别

    前言 还是老样子,新博客开始前总是想先啰嗦几句...HTTP协议其实在当初学习java时老师就有提过...但是...反正就那么过去了... 这段时间公司的项目正好要求做https的转换和迁移,然后自己 ...

  3. 大前端学习笔记整理【四】LESS基础

    第一次接触CSS预编译,然后对比后发现其实less的上手容易度确实比sass高不少,再加上公司项目也是使用的less.所以想想还是根据网上的各种教程,整理出来了一些比较基础的.而且比较能让我们这种初学 ...

  4. 大前端学习笔记整理【五】rem与px换算的计算方式

    前言 这段时间的小项目中算是真正意义上使用了rem来进行移动端的页面布局,项目结束了我反思了一下之前的对于rem的使用...原来我以前对rem用法完全是在搞笑啊!!结合这次这个小项目,我觉得我也有必要 ...

  5. 大前端学习笔记整理【五】关于JavaScript中的关键字——this

    写在前面 工作有那么一段时间了,但是在工作中,发现自己的理论知识还是有所欠缺.特别是在javascript上,很多东西其实自己属于知道要用这个,但是不知道为什么要这么用...这种情况很是尴尬了,所以写 ...

  6. 大前端学习笔记整理【六】this关键字详解

    前言 在上一篇博客里我总结了下辨认this指向的四种方式,但是有师兄抛出一个问题来,我发现那些this的指向并不能说明更复杂的情况,先看下这段代码 var a = { name: 'a', getNa ...

  7. 大前端学习笔记【七】关于CSS再次整理

    如果你在日常工作中使用 CSS,你的主要目标可能会重点围绕着使事情“看起来正确”.如何实现这一点经常是远不如最终结果那么重要.这意味着比起正确的语法和视觉结果来说,我们更少关心 CSS 的工作原理. ...

  8. 前端学习笔记之HTML/CSS 速写神器 Emmet

    HTML/CSS 速写神器:Emmet 在前端开发的过程中,一个最繁琐的工作就是写 HTML.CSS 代码.数量繁多的标签.属性.尖括号.标签闭合等,让前端们甚是苦恼.于是,我向大家推荐 Emmet, ...

  9. 【前端学习笔记】关于CSS通过一个块改变另一个块的样式

    <body><div id="a" style="background:#0F0; height:100px; width:100px;"&g ...

随机推荐

  1. 转载:Scalers:要持续行动,不要自我感动

    转载自微信公众号:http://mp.weixin.qq.com/s?__biz=MzA4MjIyNDYzMQ==&mid=2650846277&idx=1&sn=5d832a ...

  2. C# 采用事务批量插入数据

    首先要构建一个实体类,注意实体类的属性和数据的列要一一对应,否则会报错. public class Animal { public string Name { get; set; } public i ...

  3. VFP MSSOAPTOOKIT 使用SOAP Headers

    .NET 有如下使用了自定义扩展HEADER来做验证  server.asmx代码 using System;using System.Collections.Generic;using System ...

  4. centos7安装mariadb10遇到的问题解决

    4. 安装中的错误 4.1 /bin/ld: cannot find -lz /bin/ld: cannot find -lzcollect2: error: ld returned 1 exit s ...

  5. cf727e

    题意:给你一个模式串和一堆长度相同的不相同的匹配串,问是否有一个方案可以让这个模式串由这些匹配串首尾相连组成,每个串只能出现一次. 思路:还是比较简单的,显然模式串每个位置最多匹配一个匹配串,因为所有 ...

  6. 循序渐进Python3(十一) --6--  Ajax 实现跨域请求 jsonp 和 cors

    Ajax操作如何实现跨域请求?       Ajax (XMLHttpRequest)请求受到同源策略的限制.       Ajax通过XMLHttpRequest能够与远程的服务器进行信息交互,另外 ...

  7. mysql的约束类型

    1.主键约束 2.非空约束 3.唯一性约束 4.外键约束 5.默认值约束

  8. Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次

    [请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...

  9. [字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案

    今天在eclipse中编写pom.xml文件时,注释中的中文被eclipse识别到错误:Invalid byte 1 of 1-byte UTF-8 sequence,曾多次遇到该问题,问题的根源是: ...

  10. 特殊字符(包含emoji)的梳理

    背景知识 emoji表情符号,是20世纪90年代由NTT Docomo栗田穣崇(Shigetaka Kurit)创建的,词义来自日语(えもじ,e-moji,moji在日语中的含义是字符).emoji可 ...