@sabanovvv

Как убрать отступ?

Откуда то берется отступ у li и никак не получается его убрать в чем проблема?
73f42b23c7f747419d9baccb3141f57e.PNG
testjay.esy.es
  • Вопрос задан
  • 4086 просмотров
Пригласить эксперта
Ответы на вопрос 8
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Если действительно inline-блоки, то между элементами вставляется пробел, который ты и видишь. Либо убирай все пробелы между элементами в html-коде (чтобы между закрывающим тегом первого таба сразу шёл открывающих тег второго - без пробелов, переводов строк и прочих символов между ними), либо сделай для обрамляющего их блока font-size: 0px; - чтобы шрифт между табами был нулевого размера.
Ответ написан
Комментировать
@andreloster
Удалите пробелы и переводы строк между тегами .
Это распространенная проблема при display: inline-block;
Ответ написан
Комментировать
might
@might
javascript developer
inline-block создают слева отступ то ли в 3, то ли в 4 пикселя. Можно отрицательный margin прописать.
Ответ написан
Комментировать
Комментировать
@artishok
кратко
Если на странице несколько inline-block'ов, каждый из которых расположен с новой строки, то между ними будут некоторые промежутки.

Лечится указанием для элемента отрицательного отступа
margin-right: -4px;

habrahabr.ru/post/161581
Ответ написан
Комментировать
black_wolf1894
@black_wolf1894
Junior Front End Developer
#hellotabs ul li{
display: inline-block;
font-family: helvetica;
padding: 10px 18px;
margin: 0;
cursor: pointer;
background: #cfcfcf;
font-size: 14px;
margin-right: -3px;
}
Ответ написан
Комментировать
Neash
@Neash
а я вот не люблю отрицательные отступы...
можно для li вместо "display: inline-block;" сделать "display:block; float: left;"
а в #hellotabs "overflow: hidden;" добавить
Ответ написан
Комментировать
@call007
Действительно, если списки li являются inline-block, то между ними образуются пробелы. Как вариант, можно не закрывать теги li, но если использовать вместо li надо div, то тут уже через css-костыли.

Потому давно искал решение на js, которое будет убирать эти пробелы между inline-block элементами, пока не смог "запилить" сам:

(function () {

    var list = document.querySelectorAll('.js-nospace'),
        listChild,
        i,
        j;

    for (i = list.length; i--;) {

        listChild = list[i].childNodes;

        for (j = listChild.length; j--;) {
            if (listChild[j].nodeValue !== null) {
                listChild[j].textContent = '';
            }
        }

    }

}());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы