是光の谢宣骞 2021-11-21 19:53 采纳率: 70%
浏览 20
已结题

web关于元素定位的问题

问题遇到的现象和发生背景

好奇怪,为什么两个都加了absolute之后,这个表单里的元素就不在一行了??然后给表单的position改为relative后,表单里的元素又在同一行了,不是说没设置宽度的时候,设置relative的元素的宽度就和父元素宽度一样了吗?但是这里父元素也没设置宽度啊,将表单设置为absolute之后就又不在一行了,奇奇怪怪
还有就是两个都设置为absolute后,再给表单设置top和right,表单元素全不见了!

问题相关代码,请勿粘贴截图
<style>
  #searchbar {
    position:absolute;
 
  }
  section {
    position:absolute;
   
  }
</style>
<body>
  <h1>欢迎!</h1>
  <section>
    <form id="searchbar">
      <label for="search">搜索:</label>
      <input type="search" id="search" name="search">
      <input type="submit" name="submit" value="Go!">
    </form>
  </section>
</body>

<style>
  #searchbar {
    position:relative;

  }
  section {
    position:absolute;

  }
</style>
<body>
  <h1>欢迎!</h1>
  <section>
    <form id="searchbar">
      <label for="search">搜索:</label>
      <input type="search" id="search" name="search">
      <input type="submit" name="submit" value="Go!">
    </form>
  </section>
</body>

运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 请叫小双去学习 2021-11-21 23:08
    关注

    个人理解,#searchbar设置position:absolute;使其脱离了文本流,宽度基于里它最近的设置了position属性的父元素,没有的话就会基于body;并且呈现的宽度由它的 内容决定。
    然后你设置了section标签的position:absolute; 使得section标签也脱离了文本流。这时离form#searchbar最近并且设置了position的父元素就是section标签,而section 标签没有内容,宽度为零。#searchbar宽度继承于section标签宽度也为零。但是它自身有内容,被撑开了。出现了上下排版的原因是宽度不够,被挤下去了。
    然后你设置了section标签的position:relative; 宽度是基于父元素的。为什么section标签脱离了文本流,它的宽度不是零,是因为它里面还有form表单撑开了。

    可以了解一下https://www.cnblogs.com/gaogch/p/10652694.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 创建了问题 11月21日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?