Reputation: 75
Is something like this possible?
.background {
background-size: 50% cover;
}
UPDATE:
I hope you can better understand it now.
The image should remain proportional, even if a part should disappear.
.background {
border: 5px solid black;
width: 100%;
min-height: 400px;
background-image: url('http://placehold.it/350x150');
background-repeat: no-repeat;
background-position: top right;
background-size: 50% 100%;
}
.text {
padding: 10px;
width: 48%;
}
.center {
display: block;
text-align: center;
}
<div class='background'>
<div class='text'>
<h1>Lorem ipsum</h1>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>
<div class='center'>
<a href='#'>Lorem ipsum</a>
</div>
</div>
Cheers
Upvotes: 3
Views: 10081
Reputation: 3127
It is possible by creating an absolute inner div with the width of 50%. Inside a relative container that has a width of 100%. You can give the inner div a cover effect and align it to the right.
Upvotes: 0
Reputation: 46
You should use this for your css background:
.background {
border: 5px solid black;
width: 100%;
min-height: 400px;
background: url('http://placehold.it/350x150') no-repeat right;
background-size: 50% 100%;
}
Upvotes: 0
Reputation: 60563
No you can't,
Here is the formal syntax for background-size
property,
<bg-size>
= [<length-percentage>
|auto
]{1,2}
|cover
|contain
Which means whenever you have cover
you can't have length-percentage
(those |
means OR)
instead you can use background-size: 50% 100%
or background-size: auto 100%
UPDATE Based on your updated question you can achieve what you want using flexbox
div {
display: flex
}
div div:last-of-type {
background: url("http://lorempixel.com/400/200/") no-repeat center / cover;
}
div div {
flex: 1
}
<div>
<div>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit
augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation
ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim
qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
</div>
<div>
</div>
</div>
Upvotes: 6
Reputation: 42304
You can't use background-size: 50% cover
itself, though you can make it so that the background occupies 50% of the width and 100% of the height. I believe what you're looking for is:
.background {
background-size: 50% 100%;
}
I've created a fiddle demonstrating this here.
Hope this helps!
Upvotes: 0