2013-03-18 44 views
6

我有一個我希望應用背景的元素,但我希望基於其正確的座標定位背景圖像。有沒有辦法相對於元素的中心定位背景圖片?

我可以使用容器div來表示背景,儘管在這種情況下它不是很實用。

我目前有以下規則:

.myelem { 
    background-image: url("myelem.png"); 
    background-position: 5% 60%; 
    background-repeat: no-repeat; 
} 

其中大部分作品,因爲圖像的大小。如果可能的話,我想指定背景的相對位置是middle而不是left

回答

11

CSS的propoerty background-position接受center作爲值:

.myelem { 
    background-image: url("myelem.png"); 
    background-position: center center; 
    background-repeat: no-repeat; 
} 

或者簡寫版本:

.myelem { 
    background: url("myelem.png") center center no-repeat; 
} 

更新1

有沒有簡單的CSS方法來設置背景位置設置爲中心(或底部或右側)的偏移量。

您可以添加填充到實際的圖像,使用JavaScript來計算頁面加載後的位置,增加保證金的元素的建議在以下做題:

或者,您可以使用calc來計算正確的位置。雖然calc is not supported在這一點上由所有瀏覽器。

使用鈣,你可以做這樣的事情:

.myelem { 
    background-image: url("myelem.png"); 
    background-position: 5% 60%; 
    background-position: -webkit-calc(50% - 200px) 60%; 
    background-position: calc(50% - 200px) 60%; 
    background-repeat: no-repeat; 
} 

Demo

+0

您還可以結合所有到{背景:網址(...)中心中心不重複}。 – isherwood 2013-03-18 01:48:21

+0

@ 3dgoo感謝您的更新,我在我的問題的標題中指定了「相對於」。不幸的是,由於我無法修改源代碼,我只能使用CSS。 'calc'會很好,但我也需要支持IE 8及以上版本。 – 2013-03-18 05:07:34

+1

我已經接受了使用calc和fallback進行百分比定位的答案,謝謝。我必須注意'calc()'要求運算符周圍有空格,否則會被忽略(測試過firefox和safari)。 – 2013-03-18 06:17:05

相關問題