盒子的固定定位和展示

一、固定定位(Fixed Positioning)的概念和应用场景

固定定位是一种CSS定位技术,它允许元素相对于浏览器视窗固定在一个位置,即使页面滚动,该元素也会保持在同一位置。这种定位方式使得元素能够独立于页面内容存在,常被用于创建固定在页面顶部或侧面的导航栏、广告悬浮、返回顶部按钮、模态框等。固定定位的元素脱离了正常的文档流,因此它们不会影响其他元素的布局,也不会随着页面内容的滚动而移动.

固定定位的典型应用场景包括:

  1.固定导航:创建一个始终显示在页面顶部的导航栏,用户可以在任何位置浏览页面内容时轻松访问.

  2.广告悬浮:在页面的固定位置展示广告,以吸引用户注意力,增加广告的曝光率.

  3.返回顶部按钮:在长页面中提供一个快速返回页面顶部的按钮,改善用户体验.

  4.侧边栏:固定在页面一侧的侧边栏,便于用户在浏览主要内容的同时访问额外的信息或链接.

  5.模态框:在页面中央固定显示的模态框,用于突出显示重要信息或进行用户交互.

固定定位的实现在CSS中通过设置元素的position属性为fixed,并指定top、right、bottom和left属性来设定元素在视口中的位置

例子

创建10个div盒子,设置div3和div5为固定定位

<head>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: gray;
            margin-bottom: 5px;
        }
        #div3{
            background-color: red;
            margin-bottom: 5px;
            position: fixed;
            left: 200px;
            top: 208px;
        }
        #div5{
            background-color: gold;
            margin-bottom: 5px;
            position: fixed;
            left: 250px;
            top: 250px;
        }
    </style>
</head>
<body>
    <!-- 用于固定工具栏 -->
    <div>盒子1</div>
    <div>盒子2</div>
    <div id="div3">盒子3(我不动)</div>
    <div>盒子4</div>
    <div id="div5">盒子5(我不动)</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>
    <div>10</div>
   
</body>

运行结果:不管鼠标怎么滑下去都仅仅是灰色盒子在滑动,而盒子3和盒子5都不动。

二、盒子展示与display属性概念

在HTML和CSS中,盒子(元素)的展示方式在很大程度上由display属性控制。display属性规定了元素应该生成的框的类型,这直接影响到元素在页面上如何显示以及与其他元素的布局关系。

二、display属性的常见值及对应的盒子展示效果

  1.block(块级元素)

  •       概念: 块级元素会独占一行,在其前后都会换行。它会尽可能地占据父容器的可用宽度。
  •       标签示例:<div>和<p>标签默认是块级元素。例如:
<div style="background - color:red;">这是一个div元素,它是块级元素,独占一行。</div>
<p style="background - color: red;"> 这是一个段落元素,也是块级元素,独占一行。</p>
  • 盒子展示效果:块级元素在页面上垂直排列,高度由其内部内容和垂直方向的内边距、边框、外边距共同决定,宽度默认是父容器的宽度(除非设置了具体宽度值)。

  2.inline(行内元素)

  •       概念:行内元素不会独占一行,它会按照文本流的顺序在一行内排列。行内元素的宽度和高度只由其内容决定,不能设置宽度和高度等盒模型属性(除了line - height可以间接影响高度)。
  •       标签示例:          <span>和<a>标签默认是行内元素。例如:
<span style="background - color: yellow;">这是一个span元素</span>

<a href="#" style="background - color: orange;">这是一个链接元素</a>

盒子展示效果:

          多个行内元素会在一行内依次排列,如果一行内空间不足,则会换行显示。它们在垂直方向上的对齐方式默认是基线对齐(baseline),可以通过vertical - alignment属性来改变对齐方式。

  3.inline - block(行内块元素)

  •       概念:行内块元素结合了行内元素和块级元素的一些特性。它不会独占一行,可以与其他行内或行内块元素在一行内排列,同时又可以像块级元素一样设置宽度、高度、内边距、边框和外边距等盒模型属性。
  •       标签示例:可以通过设置display: inline - block来将元素变为行内块元素。例如:
<span style="display: inline - block; width: 100px; height: 50px; background - color: pink;">

  这是一个行内块的span元素

</span>

<span style="display: inline - block; width: 80px; height: 40px; background - color: red;">

  这是另一个行内块的span元素

</span>

盒子展示效果:

          行内块元素在一行内排列时,它们之间会有空白间隙(这是由于HTML代码中的换行和空格引起的,可以通过一些技巧去除),并且可以根据设置的宽度和高度来展示,在垂直方向上的对齐方式也可以通过vertical - alignment属性调整。

  4.none(隐藏元素)

  •       概念:当元素的display属性设置为none时,该元素及其所有子元素都不会在页面上显示,并且不会占用页面空间。
  •       标签示例:例如:
<div style="display: none; background - color: gray;">
  这个div元素被设置为不显示

</div>

盒子展示效果:就好像这个元素不存在于页面上一样,它对布局没有任何影响(除了在DOM结构中仍然存在)。

下面再来演示

下图是无display属性的块级元素,都独占一行

下图设置display:inline-block;块元素变行内元素,不独占一行

<head>
    <style>
        article{
            width: 1500px;
            height: 600px;
            background-color: ghostwhite;
            border: black 1px solid;
        }
        #d1{
            width: 300px;
            height: 50px;
            background-color: red;
            border: black 5px solid;            margin-bottom: 5px;
            /* display  :none 隐藏(并释放文档流)
            块元素变行内块元素,不独占一行 */
            display: inline-block;
        }
        #d2{
            width: 300px;
            height: 50px;
            background-color: green;
            border: black 5px solid;
            margin-bottom: 5px;
            display: inline-block;
        }
        #d3{
            width: 300px;
            height: 50px;
            background-color: blue;
            border: black 5px solid;
            margin-bottom: 5px;
            display: inline-block;

        }
        #d4{
            width: 300px;
            height: 50px;
            background-color: goldenrod;
            border: black 5px solid;
            margin-bottom: 5px;
            display: inline-block;

        }
    </style>
</head>
<body>
    <article>
        <div id="d1">1</div>
        <div id="d2">2</div>
        <div id="d3">3</div>
        <div id="d4">4</div>
      
</body>

下图设置了display:nome;盒子4被隐藏了

#d4{
            width: 300px;
            height: 50px;
            background-color: goldenrod;
            border: black 5px solid;
            margin-bottom: 5px;
            display: inline-block;
			display: none;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值