html - 为什么表单元素使我的 div 比没有它时占用更多空间?

标签 html css layout semantic-ui

我的网站上有一个菜单栏,我正在尝试添加一个搜索字段。它已经在网站上有一段时间了,但还没有做任何事情。这是它的样子:

body {
  margin: 14px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.5/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.5/dist/semantic.min.js"></script>

<div class="ui inverted menu">
  <a href="/" class="active item">
                Home
            </a>
  <div class="right item">
    <div class="ui inverted transparent input">
      <input type="text" name="pageName" placeholder="Navigate to...">
    </div>
    <button type="submit" class="ui black button">Go</button> </div>
</div>

我终于开始着手让它发挥作用了,所以我在搜索输入和按钮周围添加了一个表单元素:

body {
  margin: 14px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.5/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.5/dist/semantic.min.js"></script>

<div class="ui inverted menu">
  <a href="/" class="active item">
                Home
            </a>
  <div class="right item">
    <form id="navigateForm" action="/Page/NavigateForm" method="post">
      <div class="ui inverted transparent input">
        <input type="text" name="pageName" placeholder="Navigate to...">
      </div>
      <button type="submit" class="ui black button">Go</button>
    </form>
  </div>
</div>

但是有了表单元素,菜单栏比没有它的要高。为什么会这样,我该如何解决?

最佳答案

不是添加表单元素,而是将一个 div 转换为 form。问题是由于在某些 CSS 规则中使用了 > 选择器,如果您引入额外的元素,这些规则将会中断,因此该规则将不再适用,您将获得新的结果。

例子:

enter image description here

body {
  margin: 14px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.5/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.5/dist/semantic.min.js"></script>

<div class="ui inverted menu">
  <a href="/" class="active item">
                Home
            </a>
  <form id="navigateForm" class="right item" action="/Page/NavigateForm" method="post">
      <div class="ui inverted transparent input">
        <input type="text" name="pageName" placeholder="Navigate to...">
      </div>
      <button type="submit" class="ui black button">Go</button>
    </form>
</div>

关于html - 为什么表单元素使我的 div 比没有它时占用更多空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56695500/

相关文章:

css - 悬停时文本周围的灰色框状轮廓

javascript - 如何在切换可见性之前隐藏我的 div 加载

html - 如何从 Firefox 中的选择元素中删除箭头

css - 有什么方法可以让字体的颜色在 css 中有值(value)?

html - 垂直分页和列

javascript - 嵌入谷歌地图只显示左上角

iPhone 4 为元素添加黄色条纹

html - 在多行中拆分句子(Bootstrap 4 + Mobile)

java - 为平板电脑和手机 android 创建布局

html - 内容溢出DIV底部