私は未知の幅のブロックレベル要素を持っています。この要素はページ上で水平に中央に配置する必要があり、position
はrelative
である必要があり、絶対配置された子が正しい場所に表示されます。あなたはsee it in action hereです。Firefoxで未知の幅を持つ相対的に配置された要素を中心にします
私が知る限り、未知の幅の要素を中心にする最も良い方法は、display
をtable
に設定することです。意味的には、これは間違っていると思われます。なぜなら、私の要素には実際の表とは何の共通点もないからです。絶対位置の子供が間違った場所に表示させ、Firefox doesn't apply position to tables、さらに悪い:
は、このことの回避策があります
- は、HTMLに余分な要素を追加しないでください
- ではJavaScript
を持つ要素の幅を計算し、設定していない私は、純粋なCSSの修正を希望、と私は思いアイデアが不足している...
意味的には、表示プロパティを 'table'に設定しても問題ありません。あなたは要素そのものを変えず、その外観だけを変えています。しかし、私はFirefoxについてのあなたの意見を取る、そしてそれは私を困惑させている...今のところ。 divの幅はどのように決定されますか? – Kalessin
@Kalessin:divの幅は、 'display:table'を使うとき(通常のhtmlテーブルと同じように)、子の内容の幅に自動的に設定されます。しかし、 'display:table'要素は一般的に' display:table-row'と 'display:table-cell'という子を持っています。 –
はい、動作させるには余分なHTML要素が必要でした。 – Kalessin