2015-04-11 4 views
-1

У меня есть список, содержащий элементы. Список будет немного похож на таблицу. Каждый элемент списка представляет строку. Каждый абзац представляет столбец. Таблица имеет всего 2 столбца. Таким образом, первый абзац должен лететь влево, а параграф 2 должен плавать вправо.Вертикальное поле между элементами списка

Так вот что я сделал:
Нет реального html/css, только некоторый псевдокод. Но я думаю, вы поняли это.

ul list-style-type none 
    li 
    p float left 
    p float right 
    div clear both 
    li 
    ... 
    li 
    ... 
    .. 
/ul 

Тем не менее, у каждого предмета есть очень большие поля: Но я хочу иметь очень малый запас между каждым элементом. Я уже заменил абзацы элементами div, которые сделали его немного лучше. Но это все еще слишком много.

Затем я заставил (!important) приписать на 0, что совсем не помогло. Отрицание маржи работает. Ура. Но это вроде глупо, нет?

Итак, мой фактический вопрос: Существуют ли другие/лучшие способы уменьшения разницы между элементами списка [но заданием отрицательного поля]?

+0

Попробуйте сделать ручку со всем, мы должны увидеть: http://codepen.io/ – Athax

+2

Я бы предложил вам посмотреть, что на самом деле вызывает поля. Тогда их гораздо легче удалить, чем если вы просто _guessing_. Поэтому откройте консоль разработки своего браузера и начните проверку элементов DOM. Вы увидите геометрию каждого элемента. Это позволяет определить, что на самом деле вызывает маржи. – arkascha

+0

@arkascha uhm. Абзац просто добавляет огромный запас, нет? Ничего не добавляется дополнительный запас (проверяется с помощью инструментов dev) – Brettetete

ответ

0

В соответствии с моим комментарием:

Пункты естественно иметь запас ...

ul{ 
 
    list-style: none; 
 
    } 
 
li{ 
 
    /* To demonstarte issue */ 
 
    background: #dadada; 
 
    border: 1px solid #000; 
 
    } 
 
p{ 
 
    background: red; 
 
    } 
 
/* Self clear content */ 
 
li:after{ 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
    } 
 
.left{ 
 
    float: left; 
 
    width: 40%; 
 
    } 
 
.right{ 
 
    float: right; 
 
    width: 40%; 
 
    }
<ul> 
 
    <li> 
 
    <p class="left">Left floated paragraph</p> 
 
    <p class="right">Right floated paragraph</p> 
 
    </li> 
 
    <li> 
 
    <p class="left">Left floated paragraph</p> 
 
    <p class="right">Right floated paragraph</p> 
 
    </li> 
 
    </ul>

После того, как сбросить ваш запас ...

ul{ 
 
    list-style: none; 
 
} 
 
li{ 
 
    /* To demonstarte issue */ 
 
    background: #dadada; 
 
    border: 1px solid #000; 
 
    margin: 0; 
 
} 
 
p{ 
 
    background: red; 
 
    /* Remove the "natural" margin */ 
 
    margin: 0; 
 
} 
 
/* Self clear content */ 
 
li:after{ 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
.left{ 
 
    float: left; 
 
    width: 40%; 
 
} 
 
.right{ 
 
    float: right; 
 
    width: 40%; 
 
}
<ul> 
 
    <li> 
 
    <p class="left">Left floated paragraph</p> 
 
    <p class="right">Right floated paragraph</p> 
 
    </li> 
 
    <li> 
 
    <p class="left">Left floated paragraph</p> 
 
    <p class="right">Right floated paragraph</p> 
 
    </li> 
 
</ul>

... предполагая, что это то, что вы после?

Смежные вопросы