2014-10-03 46 views
11

編輯2:我的時間很短,所以我會使用dippas建議使用實際圖像而不是背景。爲了防止有人提供更好的解決方案,我會繼續保持這個問題。感謝您的幫助!CSS:如何刪除由鏈接中的換行符引起的額外空白空間?

原始的問題/問題:

我一直在谷歌搜索了一個小時的解決方案現在,無濟於事!

我正在格式化網站以響應和包含背景圖像的幾個長鏈接不正確。我試過float:leftdisplay:blockdisplay:inline-block and none of the work。最接近的一個問題是我將它設置爲display:inline,但我寧願將背景圖片放在旁邊,而不是放在最後一個字旁邊。

這是我第一次親自諮詢這個網站(我曾經多次使用過你的解決方案脫離ruts,所以謝謝!),所以我不能發佈圖片,但這裏有一個粗略的小提琴示例(編輯:這裏有一個新的小提琴,因爲其他人有一個定義的div寬度):

http://jsfiddle.net/2e28fanq/22/

(我想擺脫的箭頭和「教育」)

CSS之間的額外空間:

a { 
    display: block; 
    float: left; 
    width: auto; 
    font-size: 1.5em; 
    padding-right: 40px; 
    background: url('Arrow-Right.png') 100% 50% no-repeat; 
} 

這裏是什麼,我需要做的粗說明:

Register for a FREE Educational > 
Webinar 

而且它在做什麼,而不是:

Register for a FREE Educational   > 
Webinar 

看到,因爲它的jsfiddle發生,我也懷疑它與我的其他代碼有什麼關係。由於保密/合同原因,我無法鏈接到相關網站,但我希望這裏有人能幫助我解決我所能提供的問題。謝謝!

回答

0

你是這個意思嗎?

HTML

<div class="wrap"> 
    <a href="#">Register for a FREE Educational Webinar</a> 
</div> 

和CSS

.wrap { 
    display:inline; 
    width:auto; 
    padding: 15px; 
    border: 1px solid #000; 
} 
a { 
    width: auto; 
    font-size: 1.5em; 
    padding-right: 40px; 
    background: url('https://cdn0.iconfinder.com/data/icons/Tabs_Color_Social/40/Arrow-Right.png') 100% 50% no-repeat; 
} 

See fiddle

+1

根本不是!我希望箭頭在斷線時擁抱側面,而不是擁抱最後一個字。我希望它保持在右側和中間對齊位置,但沒有由換行符引起的巨大空間。 – 2014-10-03 20:19:07

+0

好的,我不明白「擁抱」是什麼,但我指的是你的問題,並刪除你的空間加上關於「處理響應式佈局」的信息,因此我提供了一個解決方案。嘗試http://jsfiddle.net/wt1jfego /或多或少類似的方法,但是再次,它與響應式佈局有關(調整小提琴的大小,看看會發生什麼,你的2行只是隨機的,你可能有1或2線,甚至3,這就是爲什麼它被稱爲RESPONSIVE),所以如果這不是你的意思,那麼我不知道你在說什麼 – Devin 2014-10-03 20:40:14

+0

編輯:根據你對Alex Char的回答的評論現在我看到你想要的是無反應,這與你的問題描述完全相反,因此與我所做的完全相反。此答案無效 – Devin 2014-10-03 20:44:23

4

一個簡單的解決方案是使用word-break: break-all

.wrap { 
 
    width: 425px; 
 
    padding: 15px; 
 
    border: 1px solid #000; 
 
} 
 

 
a { 
 
    display: block; 
 
    float: left; 
 
    width: auto; 
 
    font-size: 1.5em; 
 
    padding-right: 40px; 
 
    background: url('https://cdn0.iconfinder.com/data/icons/Tabs_Color_Social/40/Arrow-Right.png') 100% 50% no-repeat; 
 
    word-break: break-all; 
 
}
<div class="wrap"> <a href="#">Register for a FREE Educational Webinar</a> 
 
    <div style="clear:both;"></div> 
 
</div>

fiddle

這工作了很長的文字太:

.wrap { 
 
    width: 425px; 
 
    padding: 15px; 
 
    border: 1px solid #000; 
 
} 
 

 
a { 
 
    display: block; 
 
    float: left; 
 
    width: auto; 
 
    font-size: 1.5em; 
 
    padding-right: 40px; 
 
    background: url('https://cdn0.iconfinder.com/data/icons/Tabs_Color_Social/40/Arrow-Right.png') 100% 50% no-repeat; 
 
    word-break: break-all; 
 
}
<div class="wrap"> <a href="#">Register for a FREE Educational Webinar asdasd asd asd asda as Register for a FREE Educational Webinar asdasd asd asd asda as </a> 
 
    <div style="clear:both;"></div> 
 
</div>

fiddle example with long text

+2

非常接近!儘管如此,有沒有辦法讓這些文字保持完好? – 2014-10-03 20:39:35

+1

同意。這似乎不是一個解決方案,因爲它在中間打破了單詞,這真的很不自然,看起來沒有必要。 – jasonszhao 2016-12-30 00:27:23

2

多餘的空間不是空穴來風到來的錯誤。

似乎僅僅是因爲你設置背景位置是在100% 50%,這意味着100%的從左邊和從頂部50%。由於您的a的寬度爲425px(因爲父級的寬度爲425px,而子級爲display: block,它佔用了可用寬度的100%)並且箭頭朝右端延伸,所以右側文字和圖像的左側。

如果background-position-x的值不是100%,或者父母的寬度不是425px,則情況會有所不同,如下面的兩個示例所示。

+0

沒有骰子;當我刪除定義的div寬度並調整結果窗口大小時,箭頭仍然會在文本後面移動。 – 2014-10-03 20:51:28

+0

我似乎無法理解基本問題。你想實現一個響應式的解決方案,箭頭總是「貼近」文本? – 2014-10-03 20:54:44

+1

似乎是這樣,如果是這樣,最好使用img代替背景 – dippas 2014-10-03 20:55:15

0

更改填充:15像素;到主播添加保證金右:40像素;

UPDATE:

背景夾不neccesary ...

.wrap { 
    width: 425px; 
    border: 1px solid #000; 
} 
a { 
    display: block; 
    float: left; 
    width: auto; 
    font-size: 1.5em; 
    padding: 15px; 
    margin-right: 40px; 
    padding-right: 40px; 
    background: url('https://cdn0.iconfinder.com/data/icons/Tabs_Color_Social/40/Arrow-Right.png') 100% center no-repeat; 
    background-clip: border-box; 
    word-wrap: break-word; 
} 

參見:http://jsfiddle.net/abrhmcc/75ybzLnz/3/

更改包裝的寬度以進行測試。

padding-right:40px;是要避免文字和箭頭重疊,你可以改變它來減少箭頭和文字之間的距離。

+0

有沒有辦法做到這一點沒有固定的寬度? – 2016-01-05 02:29:23