对于CSS浮动float和定位position的解析

本文针对css浮动float、定位position进行学习理解,通过实例帮助大家掌握css浮动float、定位position技巧,感兴趣的小伙伴们可以参考一下

一 . 浮动float

I . 定义及规则

float默认为none,对应标准流的情况。当float : left;时,元素就会向其父元素的左侧靠紧,脱离标准流,同时宽度不再伸展至充满父容器,而是根据自身内容来确定。

II . 演示规则

立即学习“前端免费学习笔记(深入)”;

准备代码

                              body           {               margin: 0;               padding: 0;           }             #father           {               background-color: cyan;                 /*父级p 没有定位 造成子p的margin-top传递给父级*/               position: absolute;           }                 #father *               {                   margin: 10px;                   padding: 10px;                   border: 1px dashed red;               }             #son1           {           }             #son2           {           }             #son3           {           }                 

#son1

#son2

#son3-son3son3son3

这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字这是文字

1、中间给#father加上position:absolute,是为了消除未定位父p的margin-top传递问题,相关内容如下

嵌套p中margin-top转移问题的解决办法

在这两个浏览器中,有两个嵌套关系的p,如果外层p的父元素padding值为0,那么内层p的margin-top或者margin-bottom的值会“转移”给外层p。

        无标题文档        

上部层

子层

原因:盒子没有获得 haslayout  造成 margin-top无效

解决办法:
1、在父层p加上:overflow:hidden;
2、把margin-top外边距改成padding-top内边距 ;
3、父元素产生边距重叠的边有不为 0 的 padding 或宽度不为 0 且 style 不为 none 的 border。
    父层p加: padding-top: 1px;
4、让父元素生成一个 block formating context,以下属性可以实现
    * float: left/right
    * position: absolute
    * display: inline-block/table-cell(或其他 table 类型)
    * overflow: hidden/auto
   父层p加:position: absolute;

显示效果为

对于CSS浮动float和定位position的解析

2、1,2的float分别为left right时,有

对于CSS浮动float和定位position的解析

可见1,2脱离标准流,标准流中的son3当他们不存在,于是son3代替原来son1的位置,而son1的左border、son2的右border与son3的左右border重合

3、当1,2,3全都float left时

对于CSS浮动float和定位position的解析

文字围绕着float过的p

4、1,2左浮动,3右浮动,当窗口宽度减小时,3会被挤下来

对于CSS浮动float和定位position的解析

当3左浮动,2右浮动的时候,显示为

对于CSS浮动float和定位position的解析

当浏览器窗口宽度减小时,猜猜谁会被挤下来,son2么?

对于CSS浮动float和定位position的解析

答案还是son3,规则为 : 写在html文件中后面的会被挤下来,在html文件中,son3在son2后面,因此总是son3先挤下来。

5、增加son1高度,son3挤下来时会卡在那里

对于CSS浮动float和定位position的解析

6、删除盒子中的文字,3个子p全部左浮动
显示为

对于CSS浮动float和定位position的解析

父p中的三个子p全部脱离标准流了,父p就缩成一条线了,可以用clear来修正
加一个margin-padding-border全为0,clear为both的空p,来撑大父p

对于CSS浮动float和定位position的解析

III . clear清除浮动
如果前面有float:left的元素,他会影响下面元素,如上例中的p,在p元素中写clear : left即可消除前面左浮动元素对本元素的影响.同理clear:both是左右都清除.

二 . 定位position

position取值有static absolute relative fixed

1. static
这个是默认的,即标准流排下来,就是static定位方式.

2. fixed
在浏览器窗口中固定,什么论坛中的[回到顶部]这种按钮就是fixed做的
练习做个回到顶部玩玩

回到顶部

#backToTop { width: 100px; height: 50px; background-color: red; color: white; cursor: pointer; border-radius: 25px 0 0 25px; padding-left: 20px; text-align: center; line-height: 50px; position: fixed; bottombottom: 80px; rightright: 0; }

显示效果

对于CSS浮动float和定位position的解析

3. relative相对定位

相对于自己的偏移,而且不脱离标准流,使用top/bottom left/right指定偏移量

4. absolute绝对定位

根据别的已定位元素进行定位,应用absolute规则的脱离标准流

1)、这个别的元素:
离它最近的已定位的祖先元素 或者 浏览器窗口,当找不到前面的祖先元素时,就以后者浏览器窗口来定位.
2)、已经定位 : 是指position已经设置,而且不是static…即position值不为static就是已经定位的元素,未设置position或设置为static认为它没有定位.
Trick

只设置 position : absolute,而不设置top/bottom/left/right值,那么元素会保持在原地,但是已经脱离标准流.

三 . display

display取值有inline block none

设置为none,即可将其隐藏,像inline-block等新添加的

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

利用css3设置没有上下边的列表间隔线的方法

利用CSS3实现的文字定时向上滚动

关于CSS实现漂亮的下拉导航效果

以上就是对于CSS浮动float和定位position的解析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:32:39
下一篇 2025年12月24日 01:32:47

相关推荐

  • 使用CSS3来实现滚动视差效果

    这篇文章主要介绍了使用css3来实现滚动视差效果的教程,主要使用到了background-attachment属性,需要的朋友可以参考下 “视差(parallax)”效果现在在互联网上越来越流行了。如果你还没听说过什么是视差效果,它其实就是利用图片形成不同的层,分别以不同的速度,不同的方向移动产生的…

    好文分享 2025年12月24日
    000
  • CSS的table-layout属性的用法

    今天给大家详细说一下table-layout属性的用法, tablelayout属性用来显示表格单元格、行、列的算法规则。本文通过实例代码给大家介绍了css的table-layout属性的用法,需要的朋友参考下吧 前言: 今天来和大家详细说一下table-layout属性的用法。   /*eg:设置…

    2025年12月24日
    000
  • CSS实现有立体感的横向按钮式菜单效果

    这篇文章主要为大家介绍了css实现有立体感的横向按钮式菜单效果代码,可实现鼠标滑过呈现按钮按下的效果,具有极强的3d立体效果,涉及css基于hover属性的border边框设置技巧,需要的朋友可以参考下 本文实例讲述了CSS实现有立体感的横向按钮式菜单效果代码。分享给大家供大家参考。具体如下: 这是…

    好文分享 2025年12月24日
    000
  • 关于css属性的选择对动画性能的影响

    下面为大家带来一篇深入理解css属性的选择对动画性能的影响。内容挺不错的,现在分享给大家,也给大家做个参考。 现在手机的占比越来越高,各种酷炫页面层出不穷,这些特效都离不开css动画。说到css动画,主流的情况也就无非这两大类:位移和形变。而我们在写一个动画特效的过程中,如何去提升它的性能呢?当然首…

    2025年12月24日 好文分享
    000
  • CSS实现radio和checkbox的 实现效果

    这篇文章主要介绍了纯css实现radio和checkbox实现效果示例的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 radio-and-checkbox 纯CSS实现radio和checkbox实现效果 reset-radio 在开发PC端的项目时,经常会用到radio和checkb…

    好文分享 2025年12月24日
    000
  • 关于CSS实现漂亮的下拉导航效果

    这篇文章主要为大家介绍了纯CSS实现漂亮的下拉导航效果代码,通过简单的css样式设置及针对鼠标事件的响应实现下拉菜单导航效果,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了纯CSS实现漂亮的下拉导航效果代码。分享给大家供大家参考。具体如下: 这是一款纯CSS完成的下拉导航代码,蓝色经典色调,…

    2025年12月24日
    000
  • CSS实现自适应宽度的菜单按钮效果

    这篇文章主要为大家介绍了css实现自适应宽度的菜单按钮效果代码,实例分析了css针对页面自适应宽度的相关设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了CSS实现自适应宽度的菜单按钮效果代码。分享给大家供大家参考。具体如下: 这是一款基于CSS打造的自适应宽度的按钮效果代码,本效…

    2025年12月24日
    000
  • 关于CSS Selector的学习

    这篇文章主要介绍了css 学习笔记之css selector的相关资料,需要的朋友可以参考下 CSS1 中定义的选择器 类型选择器 用于选择指定类型的元素(其实他就是 html 标签选择器),常见用法如下: body { /*对 body 元素定义样式*/}body,p { /*同时选择多种标签元素…

    2025年12月24日
    000
  • 如何使用CSS实现的大型下拉菜单

    下拉菜单在很多网页中都能应用到,这篇文章主要介绍了纯css实现的大型下拉菜单的示例代码的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 这是一款纯CSS实现的大型下拉菜单。该大型菜单使用HTML和纯CSS代码制作,没有任何js代码,不依赖任意第三方插件。适合用于栏目分类较多的大型网站使用…

    好文分享 2025年12月24日
    000
  • 关于CSS选择器种类及使用介绍

    常用的有标签选择器、类选择器、ID选择器等等,其实还有很多,在接下来的文章中为大家详细介绍下这些选择器的种类及其使用 首先说主要都有哪些先择器 1.标签选择器(如:body,p,p,ul,li) 2.类选择器(如:class=”head”,class=”head_…

    好文分享 2025年12月24日
    000
  • 关于css利用一张背景图制作导航菜单的实现思路

    利用一张背景图片来实现菜单的悬停状态,没有什么不可思议完全可以办得到,仅这一张图片,我们实现一个横行css菜单。并设置它们的悬停效果,感兴趣的朋友可以参考下哈,希望可以帮助到你 今天介绍的这款简单非常简单,利用一张背景图片来实现菜单的悬停状态。我们看下面的图片: 仅这一张图片,我们实现一个横行CSS…

    2025年12月24日
    000
  • 如何解决css中float:right右对齐元素会换行不在同一条线上

    这篇文章主要介绍了关于如何解决css中float:right右对齐元素会换行不在同一条线上,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 使用float设置右对齐显示的时候,我们通常会遇到,右对齐的元素会换行,这样就会出现左右元素不在同一条线上,下面为大家介绍下两种解决方法,有类似情…

    好文分享 2025年12月24日
    000
  • CSS中的em、px 、pt 、Percent之间的关系及换算

    这篇文章主要介绍了css font-size: em、 px 、pt 、percent之间的关系及换算,本篇整理的还是比较详细的,需要的朋友可以参考下 一、基础介绍 1、“Ems”: em,大小不固定 ,成为相对单位(body则相对浏览器的默认字体设置,子集相对父级), 浏览器默认设置字体大小为16…

    2025年12月24日
    000
  • 关于css的background-attachment属性的使用

    这篇文章主要为大家介绍了在css中,使用背景附件属性background-attachment可以设置背景图像是随对象滚动还是固定不动,需要的朋友可以参考下 一、background-attachment属性 在CSS中,使用背景附件属性background-attachment可以设置背景图像是随…

    2025年12月24日
    000
  • CSS中使用Flexbox来达到居中效果的方法实现

    这篇文章主要介绍了css中flexbox来达到居中效果的实例,注意一下ie浏览器中的兼容问题,需要的朋友可以参考下 CSS未来发展的方向就是采用Flexbox这种设计,解决像垂直居中这种共同的问题。请注意,Flexbox有不止一种办法居中,他也可以用来分栏,并解决奇奇怪怪的布局问题。 .Center…

    2025年12月24日
    000
  • css实现自动换行以防撑破div影响排版

    自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是css如何实现换行的方法 对于p,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html 正常文字的换行(亚洲文字和…

    好文分享 2025年12月24日
    000
  • CSS实现面包屑导航栏

    这篇文章主要为大家介绍了两个纯css 面包屑导航栏实现代码,内容比较简单,不会的朋友可以进来看一下,其中html代码实现非常简单,需要的朋友可以参考下   下面是两个纯CSS 面包屑导航栏实现代码,在网上找了一些方法但觉得都不合适唯独这两个纯css的就差不多了,下面一聚小编来给大家整理一下。   方…

    2025年12月24日
    000
  • css页面中左中右分栏布局的实现

    页面左中右分栏布局在目前的网页布局中是比较常见的,下面就与大家分享两个不错的方法可以实现左中右分栏布局,代码很详细,需要的朋友可不要错过 以下代码复制粘贴即可使用: 示例一:  .page_center { width:100%; } #nav { background-color:red; hei…

    好文分享 2025年12月24日
    000
  • 如何使用css属性nth-child(n)匹配选择第n个子元素

    这篇文章主要介绍了关于如何使用css属性nth-child(n)匹配选择第n个子元素,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 css匹配选择第n个子元素可以使用:nth-child(n) 选择器,其匹配属于其父元素的第N个子元素,不论元素的类型 加入要让第二个 th 占tabl…

    好文分享 2025年12月24日
    000
  • 关于CSS3定位和浮动的解析

    这篇文章主要为大家详细介绍了css3定位和浮动的概念,以及实例代码讲解css3定位和浮动的使用方法,感兴趣的小伙伴们可以参考一下 本文为大家分享CSS3定位和浮动的基础概念,与使用方法,供大家参考,具体内容如下 一、定位 1、 css定位: 改变元素在页面上的位置 立即学习“前端免费学习笔记(深入)…

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信