html - 以相等的宽度和边距 flex

标签 html css flexbox

我试图让每个 ul li 宽度等于上面的元素 input 但是 limargin 和它不能相等,我想要的是宽度与边距相等。但是左右不相等。

#inline {
  display: flex;
}

.group input,
.group {
  width: 100%;
}

div#box {
  padding: 40px;
}

.group:first-child {
  margin-right: 50px;
}

.group ul {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
  position: relative;
}

.group ul li {
  width: calc(50% - 20px);
  background: gray;
  list-style: none;
  margin: 5px;
  padding: 5px;
}


/* guide */

.group ul::after {
  content: "";
  display: block;
  width: 1px;
  height: 173px;
  background: red;
  position: absolute;
  right: 4px;
  top: -36px;
}

.group ul::before {
  content: "";
  display: block;
  width: 1px;
  height: 173px;
  background: green;
  position: absolute;
  right: -4px;
  top: -36px;
}
<div id="box">
  <div id="inline">
    <div class="group"><input type="text" />
      <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
      </ul>
    </div>
    <div class="group"><input type="text" />
      <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
      </ul>
    </div>
  </div>
</div>

为了更好地理解,我制作了一条指导线,我希望 li 等于绿线而不是红线。 (也是从左起)

最佳答案

  1. box-sizing: border-box 添加到您的输入中,使其宽度不会超过 100%。
  2. 移除 li
  3. 的左右边距
  4. justify-content: space-between 设置为您的 .group ul - 这将设置元素之间的边距。

#inline {
  display: flex;
}

.group input,
.group {
  width: 100%;
  box-sizing: border-box;
}

div#box {
  padding: 40px;
}

.group:first-child {
  margin-right: 50px;
}

.group ul {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
  position: relative;
  justify-content: space-between;
}

.group ul li {
  width: calc(50% - 20px);
  background: gray;
  list-style: none;
  margin-top: 5px;
  margin-bottom: 5px;
  padding: 5px;
}
<div id="box">
  <div id="inline">
    <div class="group"><input type="text" />
      <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
      </ul>
    </div>
    <div class="group"><input type="text" />
      <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
      </ul>
    </div>
  </div>
</div>

关于html - 以相等的宽度和边距 flex ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53914456/

相关文章:

jquery - CSS 在溢出设置为隐藏时删除水平滚动

javascript - Vue.js + PHP 选择输入在提交时不保留

javascript - 递归 Angular div模板

php - 当连接到我的 42"屏幕时,为什么我的 HTML 表格没有填满整个屏幕?

html - CSS 显示 : flex, 对齐中心和带复选框的按钮

modal-dialog - 如何垂直对齐Bootstrap v4模式对话框

html - 为什么我的位置不是 : sticky element sticking in my flexbox container?

html - 行高导致div不均匀

JQuery - 获取可滚动元素的当前高度

css - 将导航栏居中……