html - 将 ul 内的框放在中心,但将它们左对齐

标签 html css

我找不到如何将框放在中心但将其左对齐。似乎 ul 的宽度不适合内容,并且无法自动设置,只能手动设置。但是我不想手动设置,因为我的内容是动态变化的。因此,我需要将框居中但左对齐,无需手动更改,也无需脚本。

未居中但左对齐:
Not centered but aligned left

div {
  padding: 20px;
  width: 200px;
  background-color: green;
  text-align: center;
}

ul {
  list-style:none;
  padding: 0;
  margin: 0;
  text-align: left;
}

ul li {
  width: 40px;
  height: 40px;
  background-color: wheat;
  display: inline-block
}
<html>
<head></head>
<body>
<div>
   <ul>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
 </ul> 
</div>
</body>
</html>

最佳答案

CSS 网格可以做到。调整 div 大小以查看结果:

div {
  padding: 20px;
  width: 200px;
  border: 1px solid;
  overflow: hidden;
  resize: horizontal;
}

ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, 40px); /* width of elements here */
  grid-auto-rows: 40px; /* height here */
  grid-gap: 4px;
  justify-content: center; /* this will do the magic */
}

ul li {
  background-color: wheat;
}
<div>
  <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</div>

关于html - 将 ul 内的框放在中心,但将它们左对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65395106/

相关文章:

javascript - 缩放的 Canvas 元素的坐标

javascript - 通过 JavaScript 根据提交结果更改网页内容

html - 在旋转文本周围环绕文本时出现问题

html - 如何将 CSS 类标记为已弃用

jQuery slider 元素符号导航

jquery - Jtable 加载后选择行

javascript - 限制网站中视口(viewport)的宽度和高度

javascript - 使用哈希更改页面上的视频源

html - webpart中的按钮背景颜色

html - 如何在 Angular/TypeScript 的 *ngFor 中切换行的背景颜色?