是光の谢宣骞 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 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序