搜索
首页web前端html教程[CSS] 定位和清除浮动_html/css_WEB-ITnose

定位

盒子的位移属性 top right bottom left 用于指定元素的位置和方向,这些属性只能在元素的 position 属性设置了 relative absolute fixed 的值时生效。

对于relative ,位移属性指的是元素目前位置到原位置的偏移量,即元素与其原位置的边缘之间的距离。

对于absolute fixed ,位移属性指的是元素与父元素的边缘之间的距离。( absolute 根据的是非 static 父元素,或者 body , fixed 根据的是浏览器窗口)

static

元素都有 position 属性,其默认值是 static ,这也意味着,它们没有也不接受位置属性设置。( top right bottom left )

relative

relative 元素在页面中仍是正常的、静态的,属于自然流。其他元素不会占用其原来的位置。

如果同时设置了 top bottom , top 优先级高于 bottom 。

如果同时设置了 left right ,取决于页面所用语言是从左到右 ltr 还是 从右到左 rtl 。

absolute

absolute 元素会脱离文档流。 absolute 元素需要至少一个祖先元素设置了 relative 或 absolute 属性,不然元素定位会相对于页面的主体 body 进行定位。

使用了 absolute 的元素可以指定垂直和水平的位移属性,使 absolute 元素相对于设置了 relative 的祖先元素边缘进行移位。负的位移属性会使元素移到盒子外面。

例如,如果一个absolute元素设置了 top 值为 50px 和 right 值为 100px , absolute 元素会相对于其设置了 relative 的父元素的顶边向下移动 50px ,相对于父元素的右边向左移动 100px 。

但是,如果使用了 absolute 的元素没有进行任何盒子位移属性设置,那么 absolute 元素的顶部和左部会和设置了 relative 的父元素的顶边和左边重合。如果设置了一个盒子位移属性,比如说 top ,那么absolute元素垂直方向会进行移动,而水平位置默认还是左对齐。

当一个 absolute 元素没有明确指定高度和宽度,同时使用盒子位移的 top 和 bottom 属性时,会使元素的高度跨越整个容器。同样的,当这个元素同时使用位移 left 和 right 属性值,会使元素的宽度跨越整个容器。如果同时使用四个位移属性,会使元素的高度和宽度跨越整个容器。这个时候 absolute 元素的宽度和高度都是 100% 。

fixed

fixed 元素会相对于浏览器窗口进行定位,并且不会随滚动条进行滚动。

fixed 常用于在页面低端呈现横幅,例子如下:

<footer>FixedFooter </footer> 

footer {  bottom: 0;  left: 0;  right: 0;  position: fixed;} 

z-index

要设置 z-index 属性,首先要设置 position 属性为 relative absolute fixed 之一。一般来说,元素出现的时候就放置在 z 轴上。先出现的元素要低于后出现的。可以直接使用 z-index 来控制这种层叠顺序。元素的 z-index 值越高将会出现在越上面。

清除浮动

<divclass="box-set">  <divclass="box">Box 1</div>  <divclass="box">Box 2</div>  <divclass="box">Box 3</div></div> 

.box-set {  background: #e8eae9;}.box {  background: #8ec63f;  height: 100px;  float: left;  margin: 10px;  width: 200px;} 

运行这段代码后,在 .box-set 的 div 本应有一个高亮的灰色背景,但所有的子元素浮动后,这个灰色的背景色是看不到的,因为它的 height 为 0 。

解决方法有两个,利用 overflow 或 clear 属性。

overflow

.box-set {  background: #404853;  overflow: auto;} 

此方法存在缺点,例如,当你添加样式,或者将嵌套在里面的 span 元素移动到父容器的外面,或者你想给元素添加一个盒子阴影、制作一个下拉菜单时,元素的盒子阴影可能会在父元素内被切断。

clearfix

  1. 通过在父元素上使用 :before 和 :after 两个伪类并设置 content 为 “” ,从而在浮动元素的父容器前面和后面创建隐藏元素。
  2. 设置 clear : both 清除浮动。
  3. 设置 display: table 闭合浮动。
  4. 加上 zoom 属性来兼容 IE6 。

.box-set:before,.box-set:after {  content: "";  display: table;}.box-set:after {  clear: both;}.box-set {  *zoom: 1;} 

小技巧

为了方便,我们可以定义一个类名,把这个类名加到需要清除浮动的容器上。例如使用类名 group 。在需要清除浮动的容器上添加这个类名 group 。

参考文章

HTML和CSS高级指南之二——定位详解

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
HTML的多功能性:应用和用例HTML的多功能性:应用和用例Apr 30, 2025 am 12:03 AM

HTML不仅是网页的骨架,更广泛应用于多种领域:1.在网页开发中,HTML定义页面结构并结合CSS和JavaScript实现丰富界面。2.在移动应用开发中,HTML5支持离线存储和地理定位等功能。3.在电子邮件和新闻通讯中,HTML提升邮件的格式和多媒体效果。4.在游戏开发中,HTML5的CanvasAPI用于创建2D和3D游戏。

HTML文档中的根标签是什么?HTML文档中的根标签是什么?Apr 29, 2025 am 12:10 AM

theroottaginanhtmldocumentis.servesasthetop-levellementThateNcapsulatesAllotherContent,确保properdocumentstrumentstrumentsureandbrowserparserparsing。

HTML标签和元素是同一件事吗?HTML标签和元素是同一件事吗?Apr 28, 2025 pm 05:44 PM

文章解释说,HTML标签是用于定义元素的语法标记,而元素是完整的单位,包括标签和内容。他们一起工作以构建网页。查拉克计数:159

&lt; head&gt;的意义是什么。 &&lt;身体&gt;在html中标记?&lt; head&gt;的意义是什么。 &&lt;身体&gt;在html中标记?Apr 28, 2025 pm 05:43 PM

本文讨论了Lt; Head&gt; &&lt;身体&gt; HTML中的标签,它们对用户体验的影响以及SEO的影响。正确的结构增强了网站功能和搜索引擎优化。

&lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签?&lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签?Apr 28, 2025 pm 05:42 PM

本文讨论了HTML标签,和和关注其语义与表现用途及其对SEO和可访问性的影响之间的差异。

请说明如何指示HTML中文档使用的字符集?请说明如何指示HTML中文档使用的字符集?Apr 28, 2025 pm 05:41 PM

文章讨论了在HTML中指定字符,重点介绍了UTF-8。主要问题:确保正确显示文本,防止乱七八糟的字符,并增强SEO和可访问性。

HTML中的各种格式标签是什么?HTML中的各种格式标签是什么?Apr 28, 2025 pm 05:39 PM

本文讨论了用于构建和造型Web内容的各种HTML格式标签,强调了它们对文本外观的影响以及语义标签对可访问性和SEO的重要性。

HTML元素的' ID”属性与'类”属性之间有什么区别?HTML元素的' ID”属性与'类”属性之间有什么区别?Apr 28, 2025 pm 05:39 PM

本文讨论了HTML的“ ID”和“类”属性之间的差异,重点是它们的独特性,目的,CSS语法和特异性。它解释了它们的使用如何影响网页样式和功能,并为

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!