2016-11-03 25 views
0

我嘗試給文本的每一行父塊的確切寬度。我差不多完成了,但由於跨度內的奇怪空間,一些線條略微偏移。有沒有辦法去除span元素內的空間?

這裏是一個小提琴

var $wrapper = $('#wrapper'); 
 
$(window).on('load', function() { 
 
    $('.text').each(function() { 
 
    if ($(this).width() > $wrapper.width()) { 
 
     while ($(this).width() > $wrapper.width()) { 
 
     $(this).css('font-size', (parseInt($(this).css('font-size'), 10) - 1)); 
 
     } 
 
    } 
 
    }); 
 
    $wrapper.removeClass('invisible'); 
 
});
h1 { 
 
    position: relative; 
 
    font-weight: 600; 
 
    text-align: center; 
 
} 
 
h1 .text { 
 
    display: inline-block; 
 
    font-size: 40rem; 
 
    line-height: 1; 
 
    white-space: nowrap; 
 
} 
 
.wrapper { 
 
    width: 37.4rem; 
 
    margin: 0 auto; 
 
    opacity: 1; 
 
    transition: opacity 1s ease; 
 
    visibility: visible; 
 
} 
 
.wrapper.invisible { 
 
    opacity: .00001; 
 
    visibility: hidden; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper invisible" id="wrapper"> 
 
    <h1> 
 
    <span class="text">Lorem</span> 
 
    <span class="text">ipsum dolor sit amet</span> 
 
    <span class="text">consectetur adipisicing elit</span> 
 
    </h1> 
 
</div>

正如你所看到的,一些線比別人大。 這是因爲該元素的邊緣與實際文本

enter image description here

有沒有一種方法,使這項之間的這個空間完全一致?

+4

不,沒有。你在這裏體驗到的是一種名爲** kerning **的字體特性,你無法通過編程來做任何事情。它也因每種字體和每種字體而不同,可能與每個字母不同。克寧確保任何兩個相鄰的字母看起來諧波。 – connexo

+1

另外...不是所有的字形都是相同的寬度和/或居中在他們的字形塊 –

+0

嗯...我很失望,但謝謝你:) –

回答

0

我不同意來自connexo的評論。您看到的空間在那裏,因爲您正在使用display: inline-block;。當你內嵌顯示時,它是按照舊式排版方式佈置的,其間有空格。

您可以直接在空間後對齊跨度,並在其上放置負的左邊距以消除空間。

+0

嗯,它應該是一個國際頁面,所以它必須是動態的。我無法定位每一行並給他們一個特定的保證金(這就是爲什麼我首先寫了這個腳本)。 –

+0

然後不要使用display:inline-block – Kraken

+0

h1 span {display:inline-block; }(我知道這不是在.text規則中,我很快就做了這個小提琴) –

相關問題