RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 806117
Accepted
118_64
118_64
Asked:2020-03-29 01:06:08 +0000 UTC2020-03-29 01:06:08 +0000 UTC 2020-03-29 01:06:08 +0000 UTC

布置菜单时如何仅使最后一个列表项涂有橡胶涂层

  • 772

有一个基于列表项的菜单,其中最后一个有一个搜索字段。列表项(更准确地说是其中的文本)可以占据不同的宽度。

任务是确保带有输入表单的列表的最后一个元素占据分配给菜单的所有剩余空间。

.menu {
  height: 45px;
  width: 800px;
  position: absolute;
  top: 200px;
  left: 100px;
}

.menu ul {
  display: inline-block;
  width: auto;
  margin: auto;
}

.menu li:not(:last-child) {
  display: inline-block;
  width: auto;
}

.menu li.last {
  display: inline-block;
  margin: auto;
  width: 100%;
  /* происходит перенос элемента на следующую строку */
}

.menu a {
  height: 45px;
  padding: 0px 20px;
  width: 100%;
  display: table-cell;
  vertical-align: middle;
}

.form {
  display: inline-block;
  height: 38px;
  width: 100%;
}

.input {
  display: inline;
  width: 84%;
  /*  смещение под кнопку .button  */
  height: 100%;
}

.button {
  position: relative;
  left: -14%;
  width: 12%;
  height: 90%;
}
<div class="menu">
  <ul>
    <li><a href="/">Text 1</a></li>
    <li><a href="/2">Text_2</a></li>
    <li><a href="/3">Text_123</a></li>
    <li class="last">
      <form class="form">
        <input class="input" type="text"><input class="button" type="submit" value="&#128269;">
      </form>
    </li>
  </ul>
</div>

我以不同的方式排列它,尝试使用 flex,将输入表单移到列表之外,但结果是两件事之一:要么最后一个元素没有占用所有剩余空间,要么它换行到下一行。

请就解决此问题需要采取的措施提出建议。

html
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. user33274
    2020-03-29T07:04:37Z2020-03-29T07:04:37Z

    看起来是 固定的

    不得不改变小提琴标记:https ://codepen.io/topicstarter/pen/xWYdBp?editors=1100

    * {
      margin: 0;
      padding: 0;
    }
    
    body {
      padding: 0 4px;
    }
    
    ul,
    .items {
      display: flex;
      align-items: center;
    }
    
    li {
      text-align: center;
      list-style-type: none;
      padding: 4px 20px;
      background: lightgreen;
    }
    
    li a {
      text-decoration: none;
      font-variant: small-caps;
    }
    
    form {
      width: 100%;
      position: relative;
    }
    
    input[type="search"] {
      display: block;
      width: 100%;
    }
    
    button {
      border: none;
      outline: none;
      position: absolute;
      right: 0;
      top: 0;
      background:none;
    }
    <div class="items">
      <ul>
        <li><a href="">item1</a></li>
        <li><a href="">item2</a></li>
      </ul>
      <form action="">
        <input type="search">
        <button> &#128269; </button>
    
      </form>
    </div>

    • 1
  2. Best Answer
    Artem Gorlachev
    2020-03-29T12:51:24Z2020-03-29T12:51:24Z

    老式的方式 - 用一张桌子:

    .menu {
      height: 45px;
      width: 800px;
      position: absolute;
      top: 100px;
      left: 10px;
    }
    
    .menu ul {
      display: table;
      width: auto;
      margin: auto;
    }
    
    .menu ul li {
      display: table-cell;
      white-space: nowrap;
    }
    
    .menu li:not(:last-child) {
      width: auto;
    }
    
    .menu li.last {
      margin: auto;
      width: 100%;      
    }
    
    .menu a {
      height: 45px;
      padding: 0px 20px;
      width: 100%;
      display: table-cell;
      vertical-align: middle;
    }
    
    .form {
      display: inline-block;
      height: 38px;
      width: 100%;
    }
    
    .input {
      display: inline;
      width: 84%;
      /*  смещение под кнопку .button  */
      height: 100%;
    }
    
    .button {
      position: relative;
      left: -14%;
      width: 12%;
      height: 90%;
    }
    <div class="menu">
      <ul>
        <li><a href="/">Text 1</a></li>
        <li><a href="/2">Text_2</a></li>
        <li><a href="/3">Text_123</a></li>
        <li class="last">
          <form class="form">
            <input class="input" type="text"><input class="button" type="submit" value="&#128269;">
          </form>
        </li>
      </ul>
    </div>

    柔性:

    .menu {
      height: 45px;
      width: 800px;
      position: absolute;
      top: 200px;
      left: 100px;
    }
    
    .menu ul {
      display: flex;
      width: auto;
      margin: auto;
      list-style: none;
    }
    
    .menu li:not(:last-child) {
      white-space: nowrap;
    }
    
    .menu li.last {
      margin: auto;
      width: 100%;
      /* происходит перенос элемента на следующую строку */
    }
    
    .menu a {
      height: 45px;
      padding: 0px 20px;
      width: 100%;
      display: table-cell;
      vertical-align: middle;
    }
    
    .form {
      display: inline-block;
      height: 38px;
      width: 100%;
    }
    
    .input {
      display: inline;
      width: 84%;
      /*  смещение под кнопку .button  */
      height: 100%;
    }
    
    .button {
      position: relative;
      left: -14%;
      width: 12%;
      height: 90%;
    }
    <div class="menu">
      <ul>
        <li><a href="/">Text 1</a></li>
        <li><a href="/2">Text_2</a></li>
        <li><a href="/3">Text_123</a></li>
        <li class="last">
          <form class="form">
            <input class="input" type="text"><input class="button" type="submit" value="&#128269;">
          </form>
        </li>
      </ul>
    </div>

    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5