100%色のブロックを交互に作成したいと思います。「理想的な」状況は、現在の状況だけでなく、添付ファイルとして示されています。
必要なセットアップ:

現在:

私の最初のアイデアは、divクラスを作成し、背景色を付け、幅を100%にすることでした。
.block {
width: 100%;
background: #fff;
}
ただし、これは明らかに機能しないことがわかります。コンテナエリアに限定されています。コンテナを閉じようとしましたが、それも機能しませんでした。
100%色のブロックを交互に作成したいと思います。「理想的な」状況は、現在の状況だけでなく、添付ファイルとして示されています。
必要なセットアップ:

現在:

私の最初のアイデアは、divクラスを作成し、背景色を付け、幅を100%にすることでした。
.block {
width: 100%;
background: #fff;
}
ただし、これは明らかに機能しないことがわかります。コンテナエリアに限定されています。コンテナを閉じようとしましたが、それも機能しませんでした。
<div class="container"> <div class="row"> <div class="span12"><img src="img/logo.png" width="960px"></center></div> <div class="block">content</div>
回答:
containerこのクラスは、意図的に100%の幅ではありません。ビューポートの幅によって固定幅が異なります。
画面の全幅で作業する場合は、次を使用します.container-fluid。
ブートストラップ3:
<body>
<div class="container-fluid">
<div class="row">
<div class="col-lg-6"></div>
<div class="col-lg-6"></div>
</div>
<div class="row">
<div class="col-lg-8"></div>
<div class="col-lg-4"></div>
</div>
<div class="row">
<div class="col-lg-12"></div>
</div>
</div>
</body>
ブートストラップ2:
<body>
<div class="row">
<div class="span6"></div>
<div class="span6"></div>
</div>
<div class="row">
<div class="span8"></div>
<div class="span4"></div>
</div>
<div class="row">
<div class="span12"></div>
</div>
</body>
container-fluid、水平スクロールバーが発生します。これを修正するには、これをスタイルシートに追加します.container-fluid{ padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
これは、Bootstrap3を使用して目的のセットアップを実現する方法です。
<div class="container-fluid">
<div class="row"> <!-- Give this div your desired background color -->
<div class="container">
<div class="row">
<div class="col-md-12">
... your content here ...
</div>
</div>
</div>
</div>
</div>
container-fluid一部では、全幅にわたり背景を変更できることを確認します。ザ・containerパーツは、コンテンツが固定幅でラップされていることを確認します。
このアプローチは機能しますが、個人的にはすべてのネストが好きではありません。しかし、私はこれまでのところ、より良い解決策を見つけていません。
.containerの.container全幅の背景にしたいものをdivフィドル:シンプル:https ://jsfiddle.net/vLhc35k4/、コンテナの境界:https
://jsfiddle.net/vLhc35k4/1/
HTML:
<div class="container">
<h2>Section 1</h2>
</div>
<div class="specialBackground">
<div class="container">
<h2>Section 2</h2>
</div>
</div>
CSS: .specialBackground{ background-color: gold; /*replace with own background settings*/ }
多くの人が(間違って)ネストされたコンテナを使用するように提案します。
まあ、あなたはすべきではありません。
ネストする必要はありません。(「コンテナ」を参照してください。ドキュメントの」セクションを)
divはブロック要素であり、デフォルトではドキュメント本文の全幅にまたがっています。全幅機能があります。また、コンテンツの高さもあります(特に指定しない場合)。
ブートストラップコンテナは、ボディの直接の子である必要はありません。これらは、いくつかのパディングと、場合によっては画面幅可変の固定幅を備えた単なるコンテナです。
基本グリッドの.container幅が固定されている場合は、水平方向にも自動中央揃えされます。
したがって、次のように配置しても違いはありません。
divの直接の子。「基本」divとdivは、CSSが境界線、パディング、寸法、位置、またはコンテンツサイズを変更しないことを意味します。本当にdisplay: block;CSSとおそらく背景を持つ単なるHTML要素。
しかしもちろん、垂直のようなCSS(高さ、パディングトップなど)を設定しても、ブートストラップグリッドが壊れることはありません:-)
...それ自体のウェブサイト全体とその「JUMBOTRON」の例:http://getbootstrap.com/examples/jumbotron/
vwを使用した回避策があります。新しい流体コンテナを作成できない場合に便利です。これは、クラシックな「コンテナ」div内でフルサイズになります。
.row-full{
width: 100vw;
position: relative;
margin-left: -50vw;
left: 50%;
}
この後、サイドバーの問題があり(@Typhlosaurusのおかげで)、このjs関数で解決され、ドキュメントの読み込みとサイズ変更時に呼び出されます。
function full_row_resize(){
var body_width = $('body').width();
$('.row-full').css('width', (body_width));
$('.row-full').css('margin-left', ('-'+(body_width/2)+'px'));
return false;
}
ブートストラップ4では、「w-100」クラスを使用できます(幅としてw、100%として100)
ここでドキュメントを見つけることができます:https: //getbootstrap.com/docs/4.0/utilities/sizing/
HTMLレイアウトを変更できない場合:
.full-width {
width: 100vw;
margin-left: -50vw;
left: 50%;
}
<div class="container">
<div class="row">
<div class="col-xs-12">a</div>
<div class="col-xs-12">b</div>
<div class="col-xs-12 full-width">c</div>
<div class="col-xs-12">d</div>
</div>
</div>
の代わりに
style="width:100%"
使ってみてください
class="col-xs-12"
それはあなたに1文字を節約します:)
.containerdivの全幅である列が作成されますが、これはブラウザのページの全幅と同じではありません。これが質問の対象です。
コンテンツコンテナを閉じることができない場合があります。私たちが使用している解決策は少し異なりますが、Firefoxのスクロールバーのサイズによるオーバーフローを防ぎます!
.full-width {
margin-top: 15px;
margin-bottom: 15px;
position: relative;
width: calc(100vw - 10px);
margin-left: calc(-50vw + 5px);
left: 50%;
}
申し訳ありませんが、CSSも要求する必要があります。現状では、基本的にあなたが見る必要があるのはあなたのコンテナdiv.container { width: 100%; }にあなたのcssのスタイルを与えることです、そしてあなたが彼らに彼ら自身の幅を与えない限り、囲まれたdivはこれを継承します。また、少なくともコードのこのセクションでは、いくつかの終了タグが欠落していて、開い</center>てい<center>ない状態で終了します。同じdivにコンテンツが含まれているのか、それとも別の画像が必要なのかわからなかったため、2つの例を作成しました。jsfiddleの表示領域が小さいという理由だけで、imgの幅を100pxに変更しました。それがあなたが探しているものではない場合は私に知らせてください。
コンテンツと画像を分離:http://jsfiddle.net/QvqKS/2/
同じdiv内のコンテンツと画像(imgは左に浮かんでいます):http://jsfiddle.net/QvqKS/3/
コンテナの幅を「オーバーライド」しようとするのはなぜだろうかと思います。その目的はコンテンツをパディングで維持することだからですが、私も同様の状況でした(そのため、答えはありますが、ソリューションを共有したかったのです。 )。
私の状況では、(すべてのページの)すべてのコンテンツをコンテナー内にレンダリングしたかったので、これは私の_Layout.cshtmlのコードの一部でした。
<div id="body">
@RenderSection("featured", required: false)
<section class="content-wrapper main-content clear-fix">
<div class="container">
@RenderBody()
</div>
</section>
</div>
ホームページのページに、画面の幅全体に表示したい背景ヘッダー画像があったので、解決策はIndex.cshtmlを次のようにすることでした。
@section featured {
<!-- This content will be rendered outside the "container div" -->
<div class="intro-header">
<div class="container">SOME CONTENT WITH A NICE BACKGROUND</div>
</div>
}
<!-- The content below will be rendered INSIDE the "container div" -->
<div class="content-section-b">
<div class="container">
<div class="row">
MORE CONTENT
</div>
</div>
</div>
セクションは、ビューがレイアウト内の一部のコンテンツを動的に置き換えることを許可(または強制)する目的で作成されるため、これは回避策を作成するよりも優れていると思います。
この場合は.container-fluidを使用する必要があると言われていますが、ブートストラップからパディングを削除する必要もあります。
次の答えは、どのような方法でも正確に最適ではありませんが、内部divを完全に伸ばしている間、コンテナ内でその位置を維持するものが必要でした。
https://jsfiddle.net/fah5axm5/
$(function() {
$(window).on('load resize', ppaFullWidth);
function ppaFullWidth() {
var $elements = $('[data-ppa-full-width="true"]');
$.each( $elements, function( key, item ) {
var $el = $(this);
var $container = $el.closest('.container');
var margin = parseInt($container.css('margin-left'), 10);
var padding = parseInt($container.css('padding-left'), 10)
var offset = margin + padding;
$el.css({
position: "relative",
left: -offset,
"box-sizing": "border-box",
width: $(window).width(),
"padding-left": offset + "px",
"padding-right": offset + "px"
});
});
}
});