Центрирование элементов li неупорядоченного списка с помощью CSS

0

У моей ul есть несколько свободных элементов li, в которых есть изображения в них, и я хотел сосредоточить эти элементы li. Я попытался найти решение, но мне трудно найти его. Могли бы вы, ребята, предложить какой-то способ сделать это. Я думал об окружении ul с div, а затем центрировал 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;
}
Теги:

8 ответов

1
Лучший ответ

Если вы хотите сохранить float: left; то вам нужно будет добавить контейнер div в ul с шириной и margin: auto;

Вот как это сделать:

http://codepen.io/anon/pen/jneEq

Но это приведет только к тому, что ul будет центрироваться, если вы установите ширину точно по ширине изображений.

  • 0
    Спасибо, это то, что я искал.
  • 0
    Нет проблем! Обратите внимание, что ширина нового контейнера включает в себя отступы и границы вокруг изображений.
2

Вам нужно сделать свои inline-blocks li, а не float. Короче говоря, это приведет к тому, что ваш li займет место как элемент блока, но будет вести себя как встроенный элемент, который заставит их следовать по text-align:center; что вы захотите добавить в свой элемент ul. Визуально они будут выглядеть как "центрированные поплавки" из-за отсутствия лучшего термина.

Здесь 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;
}
1

Если вы хотите центрировать изображения, вам нужно будет добавить это:

ul {
  text-align: center;
}

Если вы центрируете ul, который является дочерним для div, ul будет размещен в центре, но li элементов не будет. Поэтому было бы лучше, если вы разместите элементы списка в центре, вы можете, кроме того, добавить margin: 0; padding: 0 margin: 0; padding: 0 к ul тоже! в виде

ul {
  margin: 0;
  padding: 0;
}

Надеюсь, что у вас будут изображения, размещенные в центре, когда нет других полей и прокладок! :)

Вы можете попробовать все это здесь: http://jsfiddle.net/afzaal_ahmad_zeeshan/b29D8/

0

Я пытаюсь сделать это с немного jquery, попробуйте:

var totalWidth = 0;
$('.thumb > ul > li').each(function(){
    totalWidth+= $(this).width();
});
$('.thumb > ul').css('width', totalWidth + 'px');

Вот полная демоверсия

0

Если вам не повезло с другими вариантами, вы можете использовать:

li {
   display:block;
   width: 200px;
   margin: 0 auto;
}

Это позволит убедиться, что они всегда находятся в середине доступного пространства.

0

Один из способов добиться этого - установить display: block; margin: auto display: block; margin: auto на элементах <img>.

http://codepen.io/jessegavin/pen/jBpdo

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

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

вы можете проверить это?

Я обновил css, чтобы использовать text-align: center;

.thumb li {
  text-align:center;
}

http://jsfiddle.net/XZt2b/

0

Вы также можете удалить

.thumb li {
    float: left;
}

Также рассмотрим ответ Афзала

http://jsfiddle.net/EbCZ4/

  • 0
    Спасибо за ваше предложение, но я хотел оставить поплавок в собственности
  • 0
    Я не думаю, что это будет работать с свойством float left.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню