2010-11-18 4 views
2

в основном у меня есть список ульXHTML LineBreak пространство проблема

<ul> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
    <li style="background-image:url(images/thumbs/spaceinvader.jpg);"><a href="#"></a></li> 
</ul> 

теперь стили для списка:

li { 
    display:inline-block; 
    margin:5px 0 0 8px; 
    width:73px; 
    overflow:hidden; 
} 


li a { 
    display:block; 
    background:url(../images/gtborder.png); 
    width:73px; 
    height:55px; 
} 
li:hover { 
    background-position:0px -55px; 
} 

Хорошо, теперь, разрыв между каждым списком должен быть точно 8px но когда я просмотрите его в браузере ... его mroe then 8px. Это из-за новой строки.

Если бы у меня были все теги li на одной строке, все было бы хорошо, но я действительно не хочу этого делать. Есть ли способ, которым я могу хранить свой html как есть, и просто редактировать css, чтобы это пространство больше не было?

+0

привет Оззи, я действительно не понимаю вопрос. есть фактически 8px между каждым li. –

+0

его браузерная черта, в основном, новая линия между листом считается пробелом между ли. поэтому его infact 8px + ширина пространства, учитывающая шрифт и шрифты. но установка fontsize на 0 не будет работать, потому что некоторые браузеры оставляют это как 1px вместо 0 – Ozzy

ответ

1

Ну, так как вы установите элементы списка, чтобы быть inline-block пробелы между этими предметами в разметке (т.е. вдавливания) является то, что вызывает здесь проблемы. Поэтому два элемента списка разделяются пробелом и краем слева от каждого элемента списка.

Решение: попробуйте поплавать с элементами списка или избавиться от пробелов между тегами списка.

Удачи.

+0

Я добавил float: слева к стилям LI ... работал как шарм. спасибо :) – Ozzy

+1

Помните о двойной ошибке с поплавком IE6. См. Здесь: http://www.positioniseverything.net/explorer/doubled-margin.html. Короткий ответ: используйте пробел, а не поле, если расстояние в одном направлении. – aefxx

+0

да старая ошибка двойного урского края ¬_¬ дисплей: встроенный на помощь: D – Ozzy

1

получил его

Существует пространство между каждой Li тегом - я удалил его:

http://jsfiddle.net/j5yDd/1/

оригинального ответ ::

У вас также есть верхний край 5px так пространство будет 13, вам нужно удалить верхний край 5px.

er. вы уверены, что это точный css - как написано, у вас верхний край 5px и левый край 8. Я вообще не вижу никакого нижнего края.

http://jsfiddle.net/j5yDd/

+0

, единственная граница, которую волнует, - это левое поле lol: P, потому что li является встроенным блоком, поэтому его все на одной строке. просто пробелы между ликами больше 8px – Ozzy

+0

Да, теперь я вижу - я проверил его в скрипке, и там действительно странное случайное пространство. –

+0

@Ozzy see my edit –