javascript - 使用 CSS 将无序列表的 li 元素居中

标签 javascript html css

我的 ul 有一些免费的 li 元素,其中有图像,我想将这些 li 元素居中。我试图找到解决方案,但很难弄清楚。你们能建议一些方法吗?我正在考虑用 div 围绕 ul,然后将 ul 置于 div 的中心。你认为这行得通吗?我还想提一下,我想保留 float left 属性。

代码如下:

<ul class="thumb">
  <li><img src="photos/home9.jpg" /></li>
  <li><img src="photos/home1.jpg" /></li>
  <li><img src="photos/home3.jpg" /></li>
  <li><img src="photos/home4.jpg" /></li>
</ul>

CSS:

.thumb {
list-style: none;
width: 90%;
margin: auto;
height: 750px;  
}

.thumb li {
float: left;
}

.thumb li img {
height: 200px; 
width: 200px;
border: 1px solid #ddd;
padding: 5px;
background: #f0f0f0;
}

最佳答案

你需要让你的 li 成为 inline-blocks,而不是 float。简而言之,这样做会导致您的 li 像 block 元素一样占用空间,但表现得像内联元素,这将使它们遵循您要添加的 text-align:center;到你的 ul 元素。在视觉上,它们看起来有点像“居中 float ”,因为没有更好的术语。

这是 CSS 和一个 jsfiddle ( http://jsfiddle.net/rgthree/RTt8g/ ):

.thumb {
  list-style: none;
  width: 90%;
  margin: auto;
  height: 750px;
  text-align:center; /* center inline and inline-block elements */
}

.thumb li {
  display:inline-block; /* no float; by making these inline-blocks they will center b/c their parent is text-align:center */
}

.thumb li img {
  height: 200px; 
  width: 200px;
  border: 1px solid #ddd;
  padding: 5px;
  background: #f0f0f0;
}

关于javascript - 使用 CSS 将无序列表的 li 元素居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571586/

相关文章:

html - 网站上出现的 ETX 字符(如 L)

php - 使用 PHP Simple HTML DOM Parser 查找和删除 html 标签

html - 动态添加的内联 block div 的垂直间距错误

javascript - 使用 ng-class 启用分页

html - 在搜索框焦点上隐藏按钮

javascript - 在子 react 流程中访问对象 Prop

javascript - summernote 编辑器未打开(laravel 5.2)

Javascript - Uncaught ReferenceError - 代码看起来很完美?

html - 按钮不适用于 .pull-left (Bootstrap)

javascript - 是否有 JavaScript 的变更跟踪框架?