• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > CSS中Position、Float属性深入探讨

CSS中Position、Float属性深入探讨

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含CSS,Position、Float等相关知识,匿名希望在学习及工作中可以帮助到您
  对于Position、Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不清晰的地方。本文主要对这两个属性使用上的一个介绍以及两个属性 交叉使用上的一些探讨。

  本文主要探讨点:


  1. Position、Float属性的基本使用方法

  2. Position、Float属性对元素所造成的影响

  3. Position、Float属**叉使用上面的影响

  4. Position、Float属性使用上的小技巧


  本文结构点:

  1.HTML布局的基本要点

  盒子模型

  HTML的普通流

  2.Position属性

  属性值介绍

  用法介绍

  一些关于position的小知识

  3.Float属性

  属性值介绍

  用法介绍

  与Position之间的兼容问题

  HTML布局的基本要点:

  如果要掌握、运用好Position、Float属性必须要对HTML的两个基本点有清晰的了解。

  1.盒子模型(box model)

  2.HTML的普通流(normal flow)


  盒子模型

  在HTML中元素的盒子模型分为两种:块状元素、行内元素,请注意这里的块状元素(Block)和行内元素(Inline)与Display属性中的inline、block两个属性值并不等同。盒子模型中的Inline、Block类似于是Display属性的父类,例如:Display属性中的list-item属性值是属于块状(Block)类型的。


  我们直观的上看两种盒子模型的区别


  • 块状(Block)类型的元素可以设置width、height属性,而行内(Inline)类型设置无效。

  • 块状(Block)类型的元素会独占一行(直观的说就是会换行显示,无法与其他元素在同一行内显示,除非你主动修改元素的样式),而行内(Inline)类型的元素则都会在一行内显示。

  • 块状(Block)类型的元素的width默认为100%,而行内(Inline)类型的元素则是根据自身的内容及子元素来决定宽度。


  

  列举出一些大家常见的元素的分类


  • 块状元素:P、DIV、UL、LI、DD、DT…

  • 行内元素:A、IMG、SPAN、STRONG…


  

  HTML的普通流

  浏览器在读取HTML源代码的时候是根据元素在代码出现的顺序读取,最终元素的呈现方式是依据元素的盒子模型来决定的。行内元素是从左到右,块状元素是从上到下。(如下图)

<style type="text/css">
  div { width: 100px; height: 50px; line-height: 50px; text-align: center; color: #fff; }
  strong { background: #808080; }
  em { background: #ffd800; }
  span { background: #b6ff00; }
</style>
<strong>strong</strong><em>em</em><span>span</span>
<div style="background: blue">A</div>
<div style="background: red">B</div>
<div style="background: green">C</div>


967.png

  如果你不改变元素的默认样式前提下,元素在HTML的普通流中会“占用”一个位置,而“占用”位置的大小、位置则是由元素的盒子模型来决定。因此,在后续讲的Position、Float属性是否会使元素脱离这个普通流是一个关键点。

  Position属性:

  我们首先来谈谈Position属性,因为Position属性能够很好的体现HTML普通流这个特征。重点在于应用了不同的position值之后是否有脱离普通流和改变Display属性这两点。

  Position属性值

  Position的属性值共有四个static、relative、absolute、fixed。

  Static

  所有元素在默认的情况下position属性均为static,而我们在布局上经常会用到的相对定位和绝对定位常用的属性top、bottom、left、right在position为static的情况下无效。其用法为:在改变了元素的position属性后可以将元素重置为static让其回归到页面默认的普通流中。

  Relative

  俗称的相对定位,重点在于对相对理解。我们此前说过每个元素在页面的普通流中会有“占用”一个位置,这个位置可以理解为默认位置,而相对定位就是将元素偏离元素的默认位置,但普通流中依然保持着原有的默认位置,并没有脱离普通流,只是视觉上发生的偏移。


  我们先用块状元素来做个示例:

<style type="text/css">
div{ width: 100px; height: 50px; line-height: 50px; text-align: center; color: #fff; }
</style>
<div style="background: blue">A</div>
<div style="background: red; position: relative; top: 20px; left: 20px;">B</div>
<div style="background: green">C</div>


968.png

  右图中的黑色虚线部分为元素B的默认普通流位置,而黄色线则代表元素B的相对偏移量。我们可以很明显的看出在元素C依然还是保留在原位,并没有因为元素B发生了偏移而随之变化。


  我们再来看看行内元素(在这里用大家最常用的span来做示例)

<style type="text/css">
strong { background: #808080; }
em { background: #ffd800; }
span { background: #b6ff00; position: relative; top: 10px; left: 10px; width: 100px; }
</style>
<strong>strong</strong><em>em</em><span>span</span>


969.png

  请注意看,在这里我是有对span进行width属性的赋值(为100px)。但是我们可以看到span在运用了relative这个position属性值后,依然对width属性无效,换而言之,position: relative并没有改变行内元素的Display属性,这个概念非常重要(注意与接下来的absolute的区别)。

您可能想查找下面的文章:

  • 纯HTML5+CSS3制作生日蛋糕(代码易懂)
  • 浅谈html5标签css3的常用样式
  • HTML5+CSS3实现机器猫
  • CSS3 画基本图形,圆形、椭圆形、三角形等
  • 浅谈HTML5 & CSS3的新交互特性
  • HTML5和CSS3实例教程总结(推荐)
  • 使用HTML5里的classList操作CSS类
  • 关于老式浏览器兼容HTML5和CSS3的问题
  • HTML5移动端开发中的Viewport标签及相关CSS用法解析
  • html5+css3进度条倒计时动画特效代码【推荐】

相关文章

  • 2018-12-03indexeddb数据库的使用详解
  • 2017-08-06html5版canvas自由拼图实例
  • 2018-12-03网页的分页下标生成代码(PHP后端方法)
  • 2018-12-03html5 audio标签怎么用?html5 自动播放实现代码实例
  • 2018-12-03HTML5中canvas的问题总结
  • 2018-12-03详细介绍html5之拖放的示例代码
  • 2018-12-03Html5 Canvas初探学习笔记(6) -变换
  • 2017-08-06HTML5中语义化 b 和 i 标签
  • 2018-12-03HTML5 预加载让页面得以快速呈现_html5教程技巧
  • 2018-12-03针对IE8下不兼容rgba()的解决办法

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 免费获得微软MCSD证书赶快行动吧!_html5教程技巧
    • 用HTML5制作一个简单的桌球游戏的教程
    • 详解HTML5之pushstate、popstate操作history,无刷新改变当前url
    • html5怎样操作indexedDB
    • HTML5 canvas绘制的玫瑰花效果
    • 深入浅析HTML5中的SVG
    • HTML5 Web 存储详解
    • 《css权威指南》与《html5与css3权威指南》那个更权威更先进?
    • HTML5开发手机应用-详细介绍viewport的作用(图文)
    • textarea到底是使用value还是innerhtml还是innerText来获取输入的内容的?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有