简体   繁体   English

Bootstrap 图像背景以覆盖容器内的全宽

[英]Bootstrap image background to cover full width inside the container

Since yesterday I am trying to get the effect that image was outside left and text div was still in container grid.从昨天开始,我试图获得图像在左侧之外并且文本 div 仍在容器网格中的效果。 I cannot use container-fluid because then text div gets fluid, and I do not want it to cover the full width on right side.我不能使用容器流体,因为文本 div 变得流畅,我不希望它覆盖右侧的整个宽度。 Any tips?有小费吗?

Code: https://www.codeply.com/go/vTLom0BFoh代码: https : //www.codeply.com/go/vTLom0BFoh

Use m-0 to container what means the margin will be 0px使用m-0container意味着边距将为 0px
Bootstrap 4 spacing: https://getbootstrap.com/docs/4.0/utilities/spacing/ Bootstrap 4 间距: https : //getbootstrap.com/docs/4.0/utilities/spacing/

 .left { z-index: 0; color: #fff; } .left:before { background-image: url("https://images.unsplash.com/photo-1480365150985-65998f933ef6?dpr=1&auto=compress,format&fit=crop&w=1199&h=700&q=80&cs=tinysrgb&crop="); background-repeat: no-repeat; content: ''; display: block; position: absolute; z-index: -1; width: 100%; top: -15px; left: -15px; bottom: -15px; }
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script> <div class="container m-0"> <div class="row"> <div class="col-sm-6 left"></div> <div class="col-sm-6"> <h2>Title section</h2> <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia cor magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est.</p> </div> </div> </div>

if your image is cropped you can use如果您的图像被裁剪,您可以使用

.left:before{background-size: cover;}

but make sure you are using proper image in order to look like it wont compress但请确保您使用的是正确的图像以使其看起来不会压缩

Image is not shown fully then you use .left:before { background-size: contain;图像未完全显示然后您使用 .left:before { background-size: contains; } or .left:before{ background-size: cover; } 或 .left:before{ 背景尺寸:封面; } in CSS it can solve your problem在 CSS 中它可以解决您的问题

You can use a container-fluid , and then manually style the right column so that it only takes half of the width of a non-fluid container.您可以使用container-fluid ,然后手动设置右列的样式,使其仅占用非流体容器宽度的一半。

Here's a working demo:这是一个工作演示:

 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script> <style> .left { z-index: 0; color: #fff; } .left:before { background-image: url("https://images.unsplash.com/photo-1480365150985-65998f933ef6?dpr=1&auto=compress,format&fit=crop&w=1199&h=700&q=80&cs=tinysrgb&crop="); background-repeat: no-repeat; content: ''; display: block; position: absolute; z-index: -1; width: 100%; top: -15px; left: -15px; bottom: -15px; } /* $grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px ); $container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px ); */ @media(min-width: 576px) { .col-not-fluid { flex-basis: 270px; max-width: 270px; } } @media(min-width: 768px) { .col-not-fluid { flex-basis: 360px; max-width: 360px; } } @media(min-width: 992px) { .col-not-fluid { flex-basis: 480px; max-width: 480px; } } @media(min-width: 1200px) { .col-not-fluid { flex-basis: 570px; max-width: 570px; } } </style> <div class="container-fluid"> <div class="row"> <div class="col-sm-6 left"></div> <div class="col-sm-6 col-not-fluid"> <h2>Title section</h2> <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia cor magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est.</p> </div> </div> </div>

Note: solution adapted from this answer .注意:根据此答案改编的解决方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM