CSS--盒子定位、浮动与居中

HTML中的每个元素都是一个盒子

  浏览器对HTML文档进行解析,根据盒子的属性对其进行排列。 每个元素默认使用标准文档流定位

  标准文档流:是指浏览器读取HTML内容后对元素进行排列的一种标准方式。浏览器会根据读取到标签的先后顺序来排列HTML元素,按照从左至右、自上而下的顺序排列。行内元素从左至右排列,块级元素自上而下排列。

  通过display属性可以将行内元素按块级方式来显示,并可以设置width和height。也可以将块级元素行内显示。

  display的取值有:blockinlineinline-blocknone

  1. 给元素加上 display:none; 属性,元素不但会隐藏还会隐藏它的物理空间。
  2. 给行内元素加上 display:block; 属性,行内元素就会具有块级元素的属性。
  3. 给块级元素加上 display:inline; 属性,行内元素就会具有行内元素的属性。
  4. 给行内元素加上 display:inline-block; 属性,仍为行内元素,但是可以设置widthheight属性称为行内块元素。

CSS定位

  广义的“定位”是指将某个元素放置于某个位置,HTML中的定位通过position属性来实现。

定位按照 position 的取值分为以下四种:

  1. position:static; 静态定位(默认定位)
  2. position:relative; 相对定位
  3. position:absolute; 绝对定位
  4. position:fixed; 固定定位

1、静态定位

  当position的取值为static时,即为静态定位

  该取值也是position的默认值,使用静态定位的标签将按照标准文档流的组织方式在页面中排列。一般的元素定位都属于静态定位。

2、相对定位

  当position属性设置为relative时,即为相对定位(参照元素本身的位置)

  设置为相对定位的元素按照标准文档流的规则在网页中排列,但是相对定位的元素可以设置其left、right、top和bottom属性来进行偏移。

  偏移时参照该元素在标准文档流中的原位置,偏移后仅在显示上出现了坐标变化,但其在标准文档流中的位置没有发生任何变化,也就是不脱离标准文档流

  1. <head>
  2. <style type="text/css">
  3. #box1,#box2,#box3{
  4. width: 150px;
  5. height: 150px;
  6. float: left;
  7. background-color:yellow;
  8. }
  9. #box2{
  10. background-color:red;
  11. position:relative; /*相对定位(参照元素本身的位置)*/
  12. left:50px;
  13. top:50px;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <!-- 相对定位 -->
  19. <div id="box1"></div>
  20. <div id="box2"></div>
  21. <div id="box3"></div>
  22. </body>

演示效果图:

3、绝对定位

  当position的取值设置为absolute时,即为绝对定位,绝对定位的元素将脱离标准文档流,不受标准文档流的限制。

  元素可以通过设置left、right、top和bottom属性并以页面为参照来进行偏移,绝对定位的元素在标准文档流中不占用其空间,不影响标准文档流中的元素。

  1、box2是绝对定位,设置left和top时默认是以body标签的左上角为参照物。(几乎不用!)

  2、如果将其容器[父辈元素(id为box)]的层的定位方式设置为relative,则第二个层[子辈元素(class为box2)]的top和left会以[父辈元素(id为box)]的层为参照进行移动(即以id为box盒子的左上角为参照物),作为参照的层称为包含块。(开发常用!如下:)

  1. <head>
  2. <style type="text/css">
  3. #box{
  4. position: relative; /* 相对定位 */
  5. }
  6. .box1,.box2,.box3{
  7. width: 150px;
  8. height: 150px;
  9. float: left;
  10. }
  11. .box1{
  12. background-color: yellow;
  13. }
  14. .box2{
  15. background-color:red;
  16. position:absolute; /* 绝对定位(参照父辈元素左上角的位置)*/
  17. left:50px;
  18. top:50px;
  19. }
  20. .box3{
  21. background-color: blue;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <!-- 绝对定位 -->
  27. <div id="box"> <!-- 父辈元素 -->
  28. <div class="box1"></div>
  29. <div class="box2"></div> <!-- 子辈元素 -->
  30. <div class="box3"></div>
  31. </div>
  32. </body>

演示效果图:

4、固定定位

  当position取值为fixed时,即为固定定位,固定定位与绝对定位类似,均会脱离标准文档流

  与绝对定位的参照不同,固定定位参照浏览器窗口或其他显示设备的窗口,当用户拖动浏览器窗口的滚动条时,固定定位的元素将保持相对于浏览器窗口不变的位置。

  1. <head>
  2. <meta charset="UTF-8">
  3. <style type="text/css">
  4. #box1{
  5. position: fixed; /*固定定位*/
  6. width: 150px;
  7. height: 150px;
  8. border: 2px solid red;
  9. background-color: yellow;
  10. margin-top: 10%;
  11. margin-left: 10%;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <!-- 固定定位 -->
  17. <div id="box1">固定定位</div>
  18. <div id="box2">
  19. li{测试元素 $}*50
  20. </div>
  21. </body>

演示效果图:

盒子的浮动

  在HTML中,可以通过float属性将块级元素向左或向右浮动,直至其外边缘碰到包含它的元素或另一个浮动元素的边框为止。

多个浮动的元素可以显示在同一行内,浮动元素会脱离标准文档流,不占标准文档流中的位置

  盒子的浮动实际是通过设置元素的float属性来完成的,其属性主要取值有none、left和right。

   当float为none时,不浮动,此时元素会按照默认的标准文档流的方式来处理。

   当float为left时,向左浮动,此时元素会脱离标准文档流,不占文档流中的位置空间。

   当float为right时,向右浮动,此时元素也会脱离标准文档流。

浮动塌陷:

  如果父元素只包含浮动元素,且父元素未设置高度和宽度的时候。那么它的高度就会塌缩为零。

处理浮动塌陷:

  1、给父级元素设置高度

  2、设置空div,利用clear属性:both,left,right不占文档流中的位置空间。

  3、使用overflow:hidden;属性

    3.1、清除浮动

    3.2、将超出父级盒子多余的部分给隐藏掉

  4、使用伪元素

  1. <head>
  2. <style>
  3. .content {
  4. height: 200px;
  5. background-color: pink;
  6. }
  7. .box {
  8. padding:10px 50px;
  9. background-color: yellow;
  10. /*设置浮动*/
  11. float: left;
  12. }
  13. /*清除浮动
  14. 伪元素:
  15. ::after <!--在元素之后添加内容-->
  16. ::before <!--在元素之前添加内容-->
  17. ::first-line <!--向文本的首行添加特殊样式-->
  18. ::first-letter <!--向文本的第一个字母添加特殊样式-->
  19. */
  20. .clearfix::after {
  21. content: "."; /*在伪元素中content属性必不可缺,建议向清除浮动的伪元素内容内添加“.”*/
  22. /*清除浮动(both:清除左右浮动)*/
  23. clear: both;
  24. /*把行内元素转化为块级元素*/
  25. display: block;
  26. /*优化操作*/
  27. line-height: 0;
  28. font-size: 0;
  29. opacity: 0;
  30. height: 0;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="nav clearfix">
  36. <div class="box">1</div>
  37. <div class="box" style="background-color:red;">2</div>
  38. <div class="box">3</div>
  39. <!-- 此处【伪元素】清除浮动 -->
  40. </div>
  41. <div class="content">
  42. <!-- 内容区 -->
  43. </div>
  44. </body>

演示效果图:

盒子居中

元素上下居中:

  1. margin:0 auto; /* 元素上下居中 */

使用margin的auto属性实现左右的要求

   1、需要居中的子盒子必须是块级元素。

   2、需要居中的子盒子需要设置内容区的宽度。

   3、需要居中的子盒子不能脱离文档流。

元素上下左右居中:

  1. <head>
  2. <style>
  3. .parent {
  4. width: 200px;
  5. height: 200px;
  6. background-color: teal;
  7. position: relative;
  8. }
  9. .child {
  10. width: 100px;
  11. height: 100px;
  12. background-color: pink;
  13. /*第一步:让子盒子的左上角为父盒子的中心点*/
  14. position: absolute; /* 绝对定位*/
  15. top: 50%; /*往下移动父盒子高度的一半*/
  16. left: 50%; /*往右移动父盒子宽度的一半*/
  17. /*第二步:让子盒子的中心点处于父盒子的中心点*/
  18. margin-top: -50px; /*子盒子向上移动子盒子高度的一半*/
  19. margin-left: -50px; /*子盒子向左移动子盒子宽度的一半*/
  20. }
  21. /* 圣杯布局和双飞燕布局 */
  22. </style>
  23. </head>
  24. <body>
  25. <div class="parent">
  26. 我是父盒子
  27. <div class="child">我是子盒子</div>
  28. </div>
  29. </body>

演示效果图:

CSS:盒子的定位与浮动的更多相关文章

  1. CSS中的定位与浮动

    CSS中的定位与浮动 本文主要讲述CSS中的三种定位样式static.relative和absolute的区别以及浮动元素的特征. 定位样式 CSS中定位样式position的取值有三个,默认值:st ...

  2. web前端学习笔记(CSS盒子的定位)

    相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它.      使用relat ...

  3. css背景图定位和浮动

    网站图标引入:<link rel="shortcut icon" href="ico图标地址"> 背景图片  background-image: u ...

  4. 深入css布局篇(2) — 定位与浮动

    深入css布局(2) - 定位与浮动      在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点.今天我们来深入学习一下css布局相关的知识 ...

  5. {前端CSS} 语法 Css的几种引入方式 css选择器 选择器的优先级 CSS属性相关 背景属性 边框 CSS盒子模型 清除浮动 overflow溢出属性  定位(position)z-index

    前端CSS CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式表来对文 ...

  6. css盒子模型、文档流、相对与绝对定位、浮动与清除模型

    一.CSS中的盒子模型 标准模式和混杂模式(IE).在标准模式下浏览器按照规范呈现页面:在混杂模式下,页面以一种比较宽松的向后兼容的方式显示.混杂模式通常模拟老式浏览器的行为以防止老站点无法工作. h ...

  7. 前端之CSS——盒子模型和浮动

    一.CSS盒子模型 HTML文档中的每个元素都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒子模型. 盒子模型通过四个边界来描述:margin(外边距),border(边框 ...

  8. css标签样式 边框 盒子模型 定位 溢出 z-index 透明度

    目录 一.CSS设置标签样式 1. 给标签设置长和宽 2.字体的颜色(3种表示方法) 3.文本样式 4. 语义 5. 背景样式 6. 边框 6.1 边框变圆 7.display 标签转换 二.盒子模型 ...

  9. 第50天学习打卡(CSS 圆角边框 盒子阴影 定位)

    4.4圆角边框 圆角边框:  <!DOCTYPE html> <html lang="en"> <head>     <meta char ...

随机推荐

  1. Codeforces 808 E. Selling Souvenirs(三分)

    E. Selling Souvenirs 题意: n件物品,有重量和价值,重量只有三种1,2,3.问取不超过m重量的物品的价值总和最大是多少.(n<=1e5,w<=3e5) 思路: n*w ...

  2. JavaWeb_(Hibernate框架)Hibernate论坛项目中一对多案例

    基于SSH论坛小型项目 传送门 用户和发帖进行举例 一对多关系:一个用户可以发表多个帖子 一对一关系:一个帖子属于一个用户发布 创建数据库用户user表 CREATE TABLE `hforum`.` ...

  3. Windows 10 共享需要网络凭据的问题

    如果Windows在资源管理器的网络中双击其他的网络设备,提示要输入网络凭据的解决办法: 打开"网络共享中心" -> "更改高级共享设置"->&qu ...

  4. Visual Studio Code(VS code)介绍

    一.日常安利 VS code VS vode特点: 开源,免费: 自定义配置 集成git 智能提示强大 支持各种文件格式(html/jade/css/less/sass/xml) 调试功能强大 各种方 ...

  5. Leetcode题目104.二叉树的最大深度(DFS+BFS简单)

    题目描述: 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null, ...

  6. Go语言学习之介绍与环境搭建

    Go语言第一课 一.Go语言介绍 1.什么是Go语言? Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pik ...

  7. highcharts 代码都对,但是不显示图片

    $('#container').highcharts({ chart: { zoomType: 'xy' }, title: { text: 'Average Monthly Temperature ...

  8. js的深拷贝的理解和实现

    一:什么是深拷贝? 举例:a=b,正常情况下当改变a时b也改变,当改变a时b第一层不改变copy就是浅拷贝,当改变a时b底基层都不会改变就是深拷贝 二:实现深拷贝 1.最简单方法就是使用JSON.st ...

  9. JS中的map()方法

    map定义和方法 map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值. map()方法按照原始数组元素顺序依次处理元素. 注意: map不会对空数组进行检测 map不会改变原始 ...

  10. Linux 的零拷贝技术

    目录 文章目录 目录 Linux I/O 缓存背景 零拷贝技术(Zero-Copy) 参考文章 Linux I/O 缓存背景 当请求文件服务器的下载功能时,服务端程序所做的事情是:将服务器磁盘中的文件 ...