It's a little tricky.
The problem is to avoid that the background image is cropped out of the body of the page, while a simple color fill is easier.
Try using :after
and :before
pseudo-elements with position:absolute;
and putting there the background rules.
Then you need to force to fit all the page in all resolutions, so try these rules:
#left-column{
float:left;
width: 66.66%;
height:200px;
position:relative;
}
#left-column:before{
position:absolute;
/* for this example I used a free-copyright image from pixabay.com */
background:url(https://pixabay.com/static/uploads/photo/2016/05/01/00/57/barn-1364280_960_720.jpg) no-repeat;
background-size: 100% 100%;
top:0;
right:0;
width:100%;
padding-left:100%;
height:100%;
content:'';
display:block;
}
#right-column{
height:200px;
float:left;
width:33.33%;
position:relative;
}
#right-column:after{
position:absolute;
background:green;
top:0;
left:0;
width:10000px;
height:100%;
content:'';
display:block;
}
To show the content inside the columns give them a position:relative; z-index:1;
.
Then you need to add to the body the following rule to avoid that backgrounds creates horizontal scroll-bar
body{
overflow-x:hidden;
}
To see it in a working example go here. .
If you prefer a more-accurate solution I think you must use javascript