I've got two big css image hovers... and I want the images to be max-width:100% (for phones). I can make the divs max-width 100% but then the image inside them just logically gets cut off by the div edge. How can I make sure that the image (in this case a background-image) in the div also does the 100% max-width?
Demo: http://www.buzz-creative.nl/_test/index.html
Thanks in advance!
http://jsfiddle.net/ZuX4p/
This uses background-size: 100% to make the background image fill the div, the only problem with this is you have to specify height and width, as there is no content in the div so it wants to be 0px by 0px
try, background-size:auto;
link http://www.css3.info/preview/background-size/
Related
I created a landing page for the website www.foscaintepidario.it
But I want the image on it to be centered, and remain centered, also when the browser-view is changed. Changed in the perspective of size, but also the switch from landscape to portrait and the other way around.
In het HTML/CSS I currently make a distinction between the portrait and landscape version, they both have their own image.
Hope you can help me.
you can use css background elements to have a clean view.
background-image: url(url to image);
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
I finally solved it. The solution with the background-image works fine. The only thing I had to add was the height: 100vh parameter!
Thnx for your support
I have a weird box showing up around my images in Chrome. There is an example here: http://ulrikhogrebe.com/projects/bbcme.html - if you open it in chrome, and look at the first image under the header image (black and white), you will see a border around it (scale your browser if you miss it).
Tried border: 0; - but can't seem to loose it. Also, it's fine in Firefox.
Any ideas?
That's because your img tag has no src. You will not be able to remove this border with CSS.
The only way to fix this is to use the img tag correctly. You are currently setting a background image on the tag rather than using it as it is design with a src attribute.
Your current code..
<img class="article__img article__img--full" src="" alt="">
.page--bbcme .article__img--full {
...
background: url("../img/bbcme/bbcme2_784.jpg");
background-position: center center;
background-repeat: no-repeat;
background-size: 100%;
...
}
Correct usage...
<img class="article__img article__img--full" src="../img/bbcme/bbcme2_784.jpg" alt="Image description">
If you for some reason need to use an img with a background image, you can use a transparent image as the source. A 1px x 1px transparent gif or png would do the trick.
I am puzzled by what I am doing. First take a look at my tiny snippet:
HTML:
<div class="image_container"></div>
CSS:
.image_container {
background-image: url("images/wall.jpg");
height: 120px;
width: 100%;
}
What I am using above was to have a container with an image as a background that will take the entire width of the user's screen since I am using width: 100%. But on my 13 inch Mac it looks that way but when I go to a much larger screen the image shows partially but doesn't take 100% of the screen. Why is it that despite using width 100% it still won't take the entire width?
I tried to see if I can use background-repeat: repeat-x but that simply repeats the image and it looks terrible. What else can I do or is there another approach?
Because you set the width for the div, not the image. Try background-size: cover;
Oh...and container should actually be class.
I have a <div> with a background Image.
The <div> size may change over the time.
Is it possible setting the Divs Background image to fit the <div> size?
Lets say I have a div which is 400x400 and an Image which is 1000x1000, is it possible to shrink the image to 400x400 and therefore fit the <div> size?
If you'd like to use CSS3, you can do it pretty simply using background-size, like so:
background-size: 100%;
It is supported by all major browsers (including IE9+). If you'd like to get it working in IE8 and before, check out the answers to this question.
Use background-size for that purpose:
background-size: 100% 100%;
More on:
http://www.w3schools.com/cssref/css3_pr_background-size.asp
Use background-size property to achieve that. You should choose between cover, contain and 100% - depending on what exactly you'd like to get.
You can achieve this with the background-size property, which is now supported by most browsers.
To scale the background image to fit inside the div:
background-size: contain;
To scale the background image to cover the whole div:
background-size: cover;
Use this as it can also act as responsive. :
background-size: cover;
You could use the CSS3 background-size property for this.
.header .logo {
background-size: 100%;
}
Set your css to this
img {
max-width:100%,
max-height100%
}
Wanted to add a solution for IE8 and below (as low as IE5.5 I think), which cannot use background-size
div{
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=
'/path/to/img.jpg', sizingMethod='scale');
}
This should work but will not keep the image aspect ratio:
background-size: 100% 100%;
I did give a search before I started to ask this question as it is a very simple question. I have an image and I would like to have it as the only element on our webpage. There is no other content as this image conveys what we want to convey. Now we would also like to resize itself depending upon the device it is being displayed. I hope this is achievable through HTML though I would like to know if there is any other options.
Thank you,
Karsnen
What you're looking for is the background-size property. By applying background-size:cover to your <body>, the image will resize itself accordingly regardless of viewport dimensions.
Note: Your image may clip with the use of cover.
An alternative value for background-size can also be contain. If you apply background-size:contain instead, it'll still resize the image accordingly just as the former would.
Note: While this approach promises to never clip the image, it'll also show negative/dead space as well (which sometimes isn't ideal).
Your CSS should reflect the following:
body {
background-image: url('bg.jpg');
background-position: center center;
background-size: cover; /* or background-size: contain */
}
You can use an image as a web resource (“page”). You could simply link to it using something like href="test.jpg", or you could announce its URL directly. Browsers will display it somehow, possibly scaling it to fit browser window width.
The next simpler, and better, approach is to use a page with just an img element as its content. It can be made to scale to browser window width by setting its width to 100% (in HTML or in CSS). This way, it will keep its width:height proportion when scaled. The quality of scaling in browsers varies but is generally good, unless you scale upwards a lot. In this approach, the inherent width of the image should be sufficiently large (say 2,000 pixels) to avoid considerable upwards scaling.
To remove default spacing around the image (default page margins), it’s simplest to use CSS.
Example (with “...” to be replaced by useful information):
<!doctype html>
<meta charset=utf-8>
<title>...</title>
<style>
html, body { margin: 0; padding: 0; }
</style>
<img src="demo.jpg" alt="..." width="100%">
Set it as a background-image and use the appropriate background-size (e.g. contain):
html {
height: 100%;
}
body {
background: url('to/your/image.png') no-repeat;
background-size: contain;
}
Here's a demo.
I use this:
css
#body{
background:url(../img/bg.jpg);
margin: 0;
}
javascript
$("#body").css('width',window.innerWidth)
$("#body").css('height',window.innerHeight)