2016-11-19 97 views
0

我知道這是我們將使用JavaScript的東西,但我想知道是否可能或計劃在CSS的下一個版本可能。CSS元素根據內容獲取其本身的尺寸

我正在一個小平臺上工作,並且有很多相對/絕對位置。內容是動態的,所以它不是指定靜態寬度的最佳解決方案,而且元素必須以某種方式居中。我幾乎沒有使用CSS的顯示錯誤,但如果在css中有像this這樣的東西,那將會很棒。

今天的代碼(SASS):

element 
    position: absolute 
    top: 100px 
    right: 50% 
    margin-right: -50px (static width in %/px/em/rem/...) 

東西我在想:

element 
    position: absolute 
    top: 100px 
    right: calc(50% - this.width/2) 

所以,不要使這個問題太寬泛。你知道在今天的CSS中實現這種行爲的一些方法嗎?如果不是,你知道是否有計劃在功能發佈中實現它嗎?

+0

我應該這樣,即使是指在該例子嗎?元素本身?沒有意義,因爲您不能以這種方式將元素包含在自己的寬度計算中。 – CBroe

+0

您是否嘗試使用CSS變量:https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables? – caramba

+0

_「並且有很多相對/絕對位置」 - 聽起來像這可能更像是真正的問題。特別是絕對定位是人們應該使用的東西,而不是基於整個佈局。當然存在例外;但大部分時間會變得不靈活。坦率地說,大多數情況下,你會發現那些尚未學會如何正確使用CSS的人所使用的佈局方法...... – CBroe

回答

2

不,今天不可能引用它自己的屬性。

它會來嗎? ..希望如此

在你特定的樣品,中心絕對定位的div有動態內容,您可以使用transform: translate

邊注:CSS有很多特性,這裏,結合時,人們仍能實現類似的效果,與下面的示例

div { 
 
    position: absolute; 
 
    top: 100px; 
 
    border: 1px solid; 
 
    right: 50%; 
 
    transform: translateX(50%); 
 
}
<div>Centered with dynamic content</div>

+0

謝謝@LGSon。當我把它定位時,我沒有想到這個轉換,這是非常有用的技巧。我想我可以將答案標記爲正確,因爲它正確回答了我的問題的「核心」。 –

相關問題