css position:static 的使用

本文详细解析了CSS中relative、absolute及fixed等定位方式的特点与应用场景,包括它们如何影响页面布局及层级显示,同时提供了实例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

relative(相对定位) 对象不可层叠、不脱离文档流,参考自身静态位置通过top,bottom,left,right定位,并且可以通过z-index进行层次分级

absolute(绝对定位) 脱离文档流,通过top,bottom,left,right定位。选取其最近一个最有定位设置的父级对象进行绝对定位,如果对象的父级没有设置定位属性,
absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。    

fixed(固定定位) 这里所固定的参照对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。

static:无特殊定位,对象遵循正常文档流

Adiv是放在Bdiv上面的,并且屏幕小的时候各个文本框就单独占一行如下:

这时需要用到position :relatic实现,

 <div class="row searchRow" style="">
       <div class="col-lg-4 margin_b20" style="">
              <div class="floatLeft zhangdan-time-title ">开始时间:</div>
              <div class="zhangdan-time" style=""><input type="text" value="" class="form-control" id="appDate1" ></div>
             
       </div>
       <div class="col-lg-4 margin_b10" style="">
              <div class="floatLeft zhangdan-time-title ">结束时间:</div>
              <div class="zhangdan-time" style=""><input type="text" value="" class="form-control" id="appDate2" ></div>
             
       </div>
       <div class="col-lg-2 margin_b10">
             <button class="btn btn-primary" ><i class="fa fa-search"></i>查询</button>
            </div>
        </div>

/*自适应搜索*/
.floatLeft {float: left;}
.zhangdan-time-title{height:34px;line-height:34px;}
.zhangdan-time{margin-left:80px;}
.searchRow{position:absolute;z-index:999;width:900px;margin-top:10px;}
@media (max-width: 1200px){
.searchRow{position:static;width:100%;margin-left:0;margin-right:0;}
.searchRow>div{padding-left:0;padding-right:0;}
}

position:absolute 所在div外面的div也没有必要定义position:relative,此里面的div 可以使用margin来定位,当屏幕小的时候回归正常文档流position:static

转载于:https://my.oschina.net/u/2612473/blog/730570

<think>好的,我现在需要帮助用户理解CSSposition属性的static定位的用法和效果。首先,我应该回忆一下自己了解的关于CSS定位的知识,尤其是static定位的特点。 记得position属性有几个值:static、relative、absolute、fixed、sticky。static是默认值,也就是说,如果用户没有设置position属性,元素会自动使用static定位。这时候元素会按照正常的文档流进行排列,不受top、right、bottom、left这些偏移属性的影响。这一点很重要,可能用户会误以为设置这些属性会有作用,但实际上在static定位下它们是不起作用的。 接下来,需要确认static定位的具体表现。比如,元素在文档流中的位置由HTML结构决定,不会脱离文档流。这与其他定位方式如relative或absolute不同,后者可能会脱离正常流,影响周围元素的布局。因此,在static定位下,元素的位置不会被特别调整,除非通过其他布局方式如flexbox或grid来改变。 用户可能想知道如何显式设置static定位。虽然这是默认值,但有时候可能需要覆盖其他已设置的position属性。例如,如果一个元素被设置为position: relative,但后续需要恢复默认行为,这时候显式设置为static就很有用。需要举一个例子来说明这种情况。 另外,要强调在static定位下,z-index属性也是无效的。因为z-index只在非static定位的元素上起作用,所以如果用户试图调整static元素的层叠顺序,会发现没有效果。这也是需要注意的地方。 可能还需要提到static定位的应用场景。比如,当需要重置某个元素的定位方式时,或者确保元素遵循正常文档流,不受之前样式的影响。这部分可以通过实例来展示,比如覆盖之前的定位设置。 现在,需要组织这些信息,按照用户的要求,使用中文回答,结构清晰,分步骤说明。同时,要引用提供的参考资料,比如引用[1]、[2]、[3]中的内容,并在适当的位置添加引用标识。 然后,生成相关问题。这些问题应该围绕static定位展开,可能涉及与其他定位方式的对比、使用场景、属性影响等。确保问题能够帮助用户进一步理解和应用相关知识。 检查是否有遗漏点,比如是否解释了默认行为、偏移属性无效、层叠顺序无效,以及如何显式设置。同时,确保LaTeX格式正确,虽然这个问题可能不涉及数学公式,但如果有变量或代码,需要正确格式化。不过在这个问题中,主要是CSS代码,所以需要用代码块包裹示例代码。 最后,验证所有引用是否正确,回答是否符合用户的要求,没有使用markdown,分点清晰,语言口语化,自然流畅。</think>### CSS position: static 使用方法及效果详解 #### 1. 基本定义 `position: static` 是CSS中元素的**默认定位方式**。在此模式下,元素会按照HTML文档流自然排列,**不受`top`、`right`、`bottom`、`left`等偏移属性影响**,也不参与层叠上下文(`z-index`无效)[^1][^2]。 #### 2. 显式声明场景 尽管是默认值,但在以下情况需要显式设置: - **覆盖其他定位**:例如父元素设置了`position: relative`,若子元素需恢复默认文档流,可显式声明`position: static`。 ```css .parent { position: relative; } .child { position: static; } /* 恢复默认文档流 */ ``` #### 3. 效果验证 - **偏移属性无效**:即使为static元素设置`left: 100px`,元素位置也不会改变: ```html <div style="position: static; left: 100px;">静态定位元素</div> ``` - **层叠顺序无效**:若多个static元素重叠(如负margin导致),其显示顺序由HTML结构决定,`z-index`不生效。 #### 4. 对比其他定位方式 | 定位方式 | 文档流占用 | 偏移生效 | z-index生效 | 定位基准 | |------------|------------|----------|-------------|--------------------| | static | ✔️ | ❌ | ❌ | 正常流 | | relative | ✔️ | ✔️ | ✔️ | 自身原位置 | | absolute | ❌ | ✔️ | ✔️ | 最近非static祖先 | | fixed | ❌ | ✔️ | ✔️ | 视口 | #### 5. 应用场景 - **重置定位**:清除继承或框架强制的定位属性 - **性能优化**:避免不必要的层叠上下文创建 - **基础布局**:配合`float`或`display`属性实现传统文档流布局 ```css /* 清除组件库中预设的定位 */ .reset-position { position: static !important; left: auto !important; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值