Длинное название, извините.
Обычно, когда я делаю макеты сетки с использованием списков, у меня есть фиксированная ширина для <li>
и <ul>
. Затем у меня есть левое поле на <li>
, которое я затем помещаю как отрицательное левое поле на контейнере <ul>
, таким образом натягивая все это обратно и идеально выстраиваясь.
Но я не могу заставить это работать с процентами, и я этого не понимаю. Думаю, я упускаю что-то очевидное. Должно уместиться 3 предмета в одну линию!
Каждый li равен 32%, а три в ряду составляют 96%, затем левое поле в 2% составляет 102%, затем отрицательное поле слева на ul, равное -2%, чтобы снова уравновесить ситуацию.
Немного HTML
<div class="container">
<div class="row">
<ul>
<li><div class="inner">Item 1</div></li>
<li><div class="inner">Item 1</div></li>
<li><div class="inner">Item 1</div></li>
</ul>
</div>
</div>
Немного CSS
.container {
padding: 30px;
}
.row {
width: 100%;
overflow: hidden;
}
ul {
margin: 0 0 0 -2%;
padding: 0;
overflow: hidden;
}
li {
width: 32%;
float: left;
margin: 0 0 0 2%;
list-style: none;
}
.inner {
border: 1px solid #ccc;
padding: 10px;
}
И нахальная скрипка
http://jsfiddle.net/davidpauljunior/6DEv9/
Еще одна скрипка здесь, чтобы показать, как это работает с ПИКСЕЛЯМИ и отрицательными полями. Цель состоит в том, чтобы 3 элемента идеально вписывались в линию. http://jsfiddle.net/davidpauljunior/6DEv9/5/