ビューポートの中央に配置されたコンテナがあるとしましょう...
.centered{margin: 0 auto; width:960px;}
...そしてそのコンテナの中に、ビューポートの幅の100%の幅を必要とする別のコンテナがあります。マージンを...に設定できます.
.widest{margin: 0 -480px}
... 例えば。問題は、値が-480pxではなく、実際にはビューポートの幅(960px)-.centered幅/ 2 ... calc()ですべて簡単にできて、負の値である結果が必要なだけです。 。
.widest{
margin: 0 calc( (100vw - 960px) / 2 );
}
負の値を得るために0からロットを差し引いてみましたが、うまくいきませんでした。
私はJSを使用したくないし、Webkitでのみ問題があります-calc()ではありません-私の問題は、実行することで提出にハッキングすると...
.widest{
margin: 0 -100%;
}
... Chrome/Safariでページが水平方向にスクロールします。
あなたの考え?
はい、ある程度は可能です。重要な部分は、要素の幅を_100vw
_に設定してから、ビューポートの幅の半分の負の値に、中心の要素の幅の半分を加えてオフセットします。 calc(-50vw + 200px)
:
HTMLを考えると
_<div id='center'>center
<div id='full'>full width</div>
</div>
_
CSS
_html, body {
height:100%;
width:100%;
margin:0;
padding:0;
text-align:center;
position:relative;
}
#center {
width:400px;
height:100%;
background:red;
margin:0 auto;
}
#full {
width:100vw;
height:100px;
background:green;
margin-left:calc(-50vw + 200px);
}
_
あなたは次の解決策を試すことができます
.some-class {
margin-left: calc(-1px - ((100vw - 100%) / 2) + 1px);
}
別の可能な解決策があります。 -2で除算できるため、負の結果が得られます
.widest{
margin-left: calc( (100vw - 960px) / -2 );
}