是否有可能通過一個元素的中心點告訴代碼位置,而不是由左上點? 如果我父元素有位置的中心點,而不是左上點
width: 500px;
和我孩子元素具有
/*some width, for this example let's say it's 200px*/
position: absolute;
left: 50%;
人會認爲,基於50%
定位,子元素將在父的中間,在每邊留下可用空間的150px
。然而,它不是,因爲它是去父母的寬度50%
孩子的左上角點,因此中200px
整個兒的寬度去從那裏正確的,留下的自由空間250px
在左側,只50px
在右邊。
所以,我的問題是,如何實現中心定位?
我發現這個解決方案:
position: absolute;
width: 200px;
left: 50%;
margin-left: -100px;
而是因爲你需要手動編輯每個元素的寬度,我不喜歡它 - 我想的東西,在全球的作品。 (例如,當我在Adobe After Effects中工作時,可以爲對象設置一個位置,然後設置該對象的特定錨點將放置到該位置。如果畫布的寬度爲1280px
,則位置其目的在於640px
和你選擇的對象的中心是你的定位點,那麼整個對象將1280px
寬畫布中居中)
我會想象這樣的事情在CSS:
position: absolute;
left: 50%;
horizontal-anchor: center;
同樣,horizontal-anchor: right
將定位元件b在它的右側,所以整個內容將從其父母的寬度50%
左側開始。
而且,同樣也適用於vertical-anchor
,你得到它。
所以,是這樣的可能使用只有CSS(無腳本)?
謝謝!
@ kaboom1用戶注意:瀏覽器特定的命令應該被徹底測試。好消息是,每個瀏覽器通常具有相同的屬性。 – 2014-04-21 13:02:00
好的解決方案,但至少現在*是*一定數量的跨瀏覽器兼容性;只需使用相同的值添加「-ms-transform」和「transform」鍵即可。 – Raphael 2016-05-23 16:09:17