CSS中的定位

这篇具有很好参考价值的文章主要介绍了CSS中的定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

position 的属性与含义

CSS 中的 position 属性用于控制元素在页面中的定位方式,有四个主要的取值,每个取值都会影响元素的布局方式,它们是:

  1. static(默认值): 这是所有元素的初始定位方式。在静态定位下,元素会按照它们在文档流中的顺序依次排列,不受 top、right、bottom、left 等属性的影响。静态定位的元素无法通过 z-index 属性来改变其层叠顺序。

  2. relative 相对定位会相对于元素在文档流中的初始位置进行定位。可以使用 toprightbottomleft 属性来调整元素的位置,但元素在文档流中的位置不会改变,仍占据原来的空间。

  3. absolute 绝对定位会相对于最近的已定位(非static)祖先元素进行定位。如果没有已定位的祖先元素,那么会相对于文档的初始包含块进行定位。绝对定位会从文档流中脱离,不占据文档流空间,可以使用 toprightbottomleft 属性来控制位置,而且可以通过 z-index 属性来改变元素的层叠顺序。

  4. fixed 固定定位会相对于视口(浏览器窗口)进行定位,元素会随着页面滚动而保持在固定位置,不随滚动而移动。固定定位的元素也不占据文档流空间,可以使用 toprightbottomleft 属性来确定位置,同样可以通过 z-index 来控制层叠顺序。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body{
      margin: 0;
      padding: 0;
    }
    .top{
      position: static;
      left: 100px;
      background: red;
      width: 200px;
      height: 80px;
    }
    .parent{
      position: relative;
      top: 50px;
      left: 50px;
      width: 200px;
      height: 200px;
      background: greenyellow;
    }

    .child1{
      width: 50px;
      width: 50px;
      position: absolute;
      top: 50px;
      left: 0;
      background: blanchedalmond;

    }
    .child2{
      width: 300px;
      height: 20px;
      position: fixed;
      top: 0;
      left: 0;
      background: blueviolet;
    }
  </style>
</head>
<body>
  <div class="top">我是最上面的节点</div>
  <div class="parent">
    <div class="child1">child1</div>
    <div class="child2">child2</div>
  </div>
</body>
</html>

CSS中的定位,前端,css,chrome,前端

display、float、position的关系

displayfloatposition 是 CSS 中用于控制元素布局和定位的三个重要属性,它们之间有一定的关系和交互,但分别用于不同的布局和定位方式。

  1. display 属性: display 属性用于控制元素在文档流中的显示方式。它的常见取值包括 blockinlineinline-blockflexgrid 等。不同的 display 值会影响元素的布局方式。例如,block 元素会在页面上占据一整行,而 inline 元素会在同一行内排列。display 属性与 floatposition 属性通常是互斥的,即一个元素不会同时使用这三个属性来控制布局。

  2. float 属性: float 属性用于将元素浮动到其容器的左侧或右侧,以使其他元素可以环绕它。通常用于创建文本环绕图片等效果。float 属性不会使元素脱离文档流,但会影响元素的布局。当使用 float 时,其他元素可能需要通过 clear 属性来清除浮动元素的影响,以防止出现意外的布局问题。

  3. position 属性: position 属性用于控制元素的定位方式。它的常见取值包括 staticrelativeabsolutefixed。不同的 position 取值会影响元素的定位方式和是否脱离文档流。position 属性通常与 toprightbottomleft 属性一起使用,以精确定位元素。使用 position 属性时,元素的定位可以是相对于文档的初始包含块、相对于最近的已定位(非 static)祖先元素,或相对于视口(浏览器窗口)。

虽然这三个属性在控制元素的布局和定位上有一定的交互,但它们各自有不同的应用场景和目的。通常情况下:

  • display 用于控制元素的基本显示方式,如块级元素、行内元素等。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .span1, .span2{
      display: block;
      width: 100px;
      height: 50px;
      background: grey;
      margin-bottom: 20px;
    }

    .content2{
      margin-top: 50px;
    }

    .div1, .div2{
      display: inline;
      /* 设置为行内元素 宽高设置无效 */
      width: 100px;
      height: 200px;
      margin-left: 10px;
      background: gold;
    }
  </style>
</head>
<body>
  <div>
    <!-- 行内元素设置宽高无效 -->
    <span style="height: 80px;width: 100px; background: red"></span>
  </div>
  <div>
    <span class="span1">我是行内元素1</span>
    <span class="span2">我是行内元素2</span>
  </div>
  <div class="content2">
    <div class="div1">我是块级元素1</span>
    <div class="div2">我是块级元素2</div>
  </div>
</body>
</html>

CSS中的定位,前端,css,chrome,前端

  • float 用于创建文本环绕效果或多栏布局。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    img {
      float: left; /* 或者 float: right; */
      margin-right: 10px; /* 为了增加文字和图片之间的间距 */
      width: 50px;
      height: 50px;
    }
    .content{
      width: 150px;
      height: 200px;
    }

    /* -------------以下是多栏布局的样式---------------- */
    .column {
      width: 100%;
    }

    .column-item {
      width: 30%; /* 每栏的宽度 */
      float: left;
      background: greenyellow;
      margin-right: 2%; /* 为了增加栏目之间的间距 */
      box-sizing: border-box; /* 防止边框和填充增加宽度 */
    }

  </style>
</head>
<body>
  <!-- 文字环绕部分 -->
  <div class="content">
    <img src="./image.jpg" alt="图片">
    <p>
      这是一段文本,会围绕在图片周围。这是一段文本,会围绕在图片周围。这是一段文本,会围绕在图片周围。
    </p>
  </div>
  <!-- 多栏布局 -->
  <div class="column">
    <div class="column-item">栏目 1</div>
    <div class="column-item">栏目 2</div>
    <div class="column-item">栏目 3</div>
  </div>
</body>
</html>

CSS中的定位,前端,css,chrome,前端

  • position 用于精确定位元素的位置,通常与 toprightbottomleft 一起使用。
    这个就不举例子了,上面又定位的例子

absolute与fixed

absolutefixed 是 CSS 中用于控制元素定位的两种方式,它们有一些共同点和不同点:

共同点:

  1. 都脱离文档流: 无论是 absolute 还是 fixed 定位的元素都脱离了文档流,不再占据正常的文档流位置,因此不会对其他元素的布局产生影响。

  2. 可以通过 toprightbottomleft 精确定位: 无论是 absolute 还是 fixed 元素,都可以使用这四个属性来精确地确定它们在页面中的位置。

  3. 可以通过 z-index 控制层叠顺序: 使用 z-index 属性,你可以控制 absolutefixed 元素的层叠顺序,即哪个元素位于其他元素的上方。

不同点:

  1. 相对于不同的参照物:

    • absoluteabsolute 定位的元素相对于其最近的已定位(非 static)祖先元素进行定位。如果没有已定位的祖先元素,它会相对于文档的初始包含块(viewport)进行定位。
    • fixedfixed 定位的元素相对于视口(浏览器窗口)进行定位,而不受页面滚动的影响。
  2. 在滚动时的行为不同:

    • absolute:随着页面滚动,absolute 定位的元素会保持相对于其最近的已定位祖先元素不变的位置。
    • fixedfixed 定位的元素会保持固定在视口的位置,不会随页面滚动而移动。
  3. 是否影响其他元素:

    • absoluteabsolute 定位的元素脱离文档流,但在脱离文档流之前会占据原来的文档流位置,可能会影响其他元素的布局。
    • fixedfixed 定位的元素脱离文档流,并且不占据文档流位置,不会影响其他元素的布局。

sticky 定位

sticky 定位是一种相对于元素自身在正常文档流中的位置和祖先元素的滚动容器滚动的一种定位方式。它在某些情况下表现为普通的文档流定位(staticrelative),但当元素的位置在视口中发生变化时,它会变为固定定位(fixed)。

要理解 sticky 定位,可以将其看作是 relativefixed 定位的混合。它适用于创建元素在页面滚动时粘性(sticky)地保持在某个位置的效果,通常用于创建固定的导航栏或侧边栏。

关键特点和使用方法:

  1. 相对于滚动容器定位: sticky 元素会相对于其最近的具有滚动条的祖先元素进行定位。如果没有这样的祖先元素,则相对于视口进行定位。

  2. 初始位置: 元素的初始位置由其在文档流中的位置决定,就像 relative 定位一样。在初始位置时,元素不会脱离文档流。

  3. 滚动触发: 当页面滚动到达特定位置(通常是元素初始位置之上或之下的某个点)时,元素会变为固定定位,就像 fixed 定位一样,保持在特定位置,直到滚动容器滚动超过元素的范围。

  4. 滚动范围: sticky 元素在滚动容器内保持固定定位,直到滚动到达滚动容器的底部或顶部,或者直到它的容器边界,取决于滚动的方向。

  5. 使用 toprightbottomleft 控制位置: 可以使用这些属性来精确定位 sticky 元素在切换到固定定位时的位置。

示例用法:

.sticky-element {
  position: -webkit-sticky; /* 兼容性写法 */
  position: sticky;
  top: 20px; /* 滚动触发后的垂直位置 */
}
<div class="scroll-container">
  <!-- 具有 sticky 定位的元素 -->
  <div class="sticky-element">
    这是一个 sticky 元素。
  </div>
  <!-- 页面内容 -->
</div>

在示例中,.sticky-element 是一个具有 sticky 定位的元素,当页面滚动到一定位置时,它会保持在距离顶部 20 像素的位置,直到滚动容器(.scroll-container)的底部。文章来源地址https://www.toymoban.com/news/detail-732297.html

到了这里,关于CSS中的定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS笔记(黑马程序员pink老师前端)定位

    定位可以让盒子自由的在某个盒子内移动位置或者固定在屏幕中某个位置,并且可以压住其他盒子。 定位 = 定位模式 + 边偏移 定位模式 说明 static 静态定位,按标准流特性摆放,没有边偏移,很少用 relative 相对定位,相对自身原有位置移动,原有位置继续占有(不脱标) absolute 绝

    2024年02月09日
    浏览(52)
  • [HTML]Web前端开发技术10(HTML5、CSS3、JavaScript )CSS+DIV页面布局,固定定位,相对定位relative,绝对定位absolute,层定位的应用——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 课后练习 网页标题:固定定位 网页标题:相对定位relative 网页标题:绝对定位absolute 网页标题:层定

    2024年02月02日
    浏览(56)
  • 【后端学前端】第三天 css动画 动态搜索框(定位、动态设置宽度)

    视频地址:css动画 动态搜索框(定位、动态设置宽度)_哔哩哔哩_bilibili 通过对大的容器动态设置宽度按,也就是 这里学到一个注意点:在class后的属性会覆盖先写的属性 searchBar的最早宽度是400px,在后面又新定义了一个searchBar的样式为60px 看教程,i 定义与文本中其余部分不

    2024年02月04日
    浏览(48)
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 CSS的定位机制 文档流定位 元素类型   浮动定位 float的用处 float的特点 clear属性 层定位 position属性

    2024年02月05日
    浏览(69)
  • 〖大前端 - 基础入门三大核心之CSS篇⑱〗- CSS中的背景

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专栏\\\"加入社区获取 所有 付费专栏的内容之外, 还可以通过加入 星荐官共赢计划 加入私域社区。 当前子专栏 基础入门

    2024年02月01日
    浏览(47)
  • HTML5+CSS3学习笔记(九)前端页面六大布局(文档流布局、浮动布局、定位布局、表格布局、弹性布局、网格布局)

    本系列更多文章,可以查看专栏 HTML+CSS学习笔记 块级元素自上至下垂直排列,行内元素自左至右水平排列 块级元素独占一行,行内元素不会另起一行 默认情况下,height和width决定内容区的大小;内容区、内边距和边框构成可见区域的大小;外边距决定元素的位置 更多内容可

    2024年02月02日
    浏览(61)
  • 【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )

    需求 : 制作如下搜索栏 ; 首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ; 然后 , 设置固定定位盒子垂直方向位置 , 设置为 top: 0; 紧贴顶部 ; 再后 , 设置 left: 50% 样式 , 将盒子左侧设置到中心位置 , 这个 50% 是相对于父容器的 比

    2024年02月05日
    浏览(54)
  • CSS绝对定位、相对定位

    目录 静态定位 - static 相对定位 - relative 绝对定位 - absolute 固定定位 - fixed z-index属性: 在CSS中定位有以下4种: 静态定位 - static 相对定位 - relative 绝对定位 - absolute 固定定位 - fixed 静态定位是css中的默认定位方式,也就是没有定位。在此定位方式中设置:top,bottom,left,

    2024年02月02日
    浏览(47)
  • CSS新手入门笔记整理:CSS定位布局

    浮动布局比较灵活,但是不容易控制。而定位布局的出现,使得用户精准定位页面中的任意元素成为可能。当然了,由于定位布局缺乏灵活性,这给空间大小和位置不确定的版面布局带来困惑。因此在实际开发中,大家应该灵活使用这两种布局方式,这样才可以更好地满足开

    2024年02月04日
    浏览(41)
  • css定位详解(相对定位、绝对定位和固定定位)

    css中的position属性,position有四个值:relative(相对定位)、absolute(绝对定位)、static(静态定位)和fixed(固定定位),通过top、left、bottom、right来调整元素位置 属性值 作用 备注 relative 相对定位 参考元素本身 absolute 绝对定位 参考最近的祖先元素 static 静态定位 基本定位

    2023年04月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包