Почему я получаю разрыв строки после элемента <span>

Почему я получаю разрыв строки? Я использую следующее: Пустое пространство: nowrap; но когда я заполняю промежуток, появляется разрыв строки. Чем это вызвано?

function insertLinkHoverImage(datei,datei2,verlinkung) 
        {
            var doc = document.getElementById("frame").contentWindow.document;

            var range = doc.getSelection().getRangeAt(0);
            var nnode = doc.createElement("span");
            var width = 0;
            var height = 0;

            var image = doc.createElement("img");
            image.src = "http://www.galliano.cc/Test_seite/cms/uploads/"+datei;         
            //Wenn Bild hochgeladen wurde
            image.onload = function() {
                document.getElementById("imgwidth").value = image.width;
                document.getElementById("imgheight").value = image.height;


                var alink = doc.createElement("a");
                var classDatei2 = "";

                alink.href = verlinkung;
                classDatei2 = datei.replace(".","-");

                nnode.setAttribute("style","white-space: nowrap; background-image:url(http://www.galliano.cc/Test_seite/cms/uploads/"+datei+"); width:"+document.getElementById("imgwidth").value+"px; height: "+document.getElementById("imgheight").value+"px; display: block; background-repeat: no-repeat;");               

                alink.appendChild(nnode);
                range.insertNode(alink);
            }

        }

1 ответ

Решение

Если вы посмотрите на свой JavaScript, у вас есть:

var nnode = doc.createElement("span");

и тогда у вас есть:

nnode.setAttribute("style","white-space: nowrap; 
background-image:url(...);     
width:"+document.getElementById("imgwidth").value+"px; 
height: "+document.getElementById("imgheight").value+"px; 
display: block; background-repeat: no-repeat;"); 

Итак span по умолчанию встроенный элемент, но затем вы указываете display: block в вашем встроенном стиле, что делает его элементом уровня блока, и это даст вам разрыв строки.

Попробуйте использовать display: inline-block,

Другие вопросы по тегам