Html link background size

CSS2

If you need to make the image bigger, you must edit the image itself in an image editor.

If you use the img tag, you can change the size, but that would not give you the desired result if you need the image to be background for some other content (and it will not repeat itself like you seems to want).

CSS3 unleash the powers

This is possible to do in CSS3 with background-size .

All modern browsers support this, so unless you need to support old browsers, this is the way to do it.
Supported browsers:
Mozilla Firefox 4.0+ (Gecko 2.0+), Microsoft Internet Explorer 9.0+, Opera 10.0+, Safari 4.1+ (webkit 532) and Chrome 3.0+.

.stretch < /* Will stretch to specified width/height */ background-size: 200px 150px; >.stretch-content < /* Will stretch to width/height of element */ background-size: 100% 100%; >.resize-width < /* width: 150px, height: auto to retain aspect ratio */ background-size: 150px Auto; >.resize-height < /* height: 150px, width: auto to retain aspect ratio */ background-size: Auto 150px; >.resize-fill-and-clip < /* Resize to fill and retain aspect ratio. Will cause clipping if aspect ratio of box is different from image. */ background-size: cover; >.resize-best-fit < /* Resize to best fit and retain aspect ratio. Will cause gap if aspect ratio of box is different from image. */ background-size: contain; >

In particular, I like the cover and contain values that gives us new power of control that we didn’t have before.

Round

You can also use background-size: round that have a meaning in combination with repeat:

This will adjust the image width so it fits a whole number of times in the background positioning area.

Additional note
If the size you need is static pixel size, it is still smart to physically resize the actual image. This is both to improve quality of the resize (given that your image software does a better job than the browsers), and to save bandwidth if the original image is larger than what to display.

Note that there is also the question of retina displays on iPad and iPhone and probably other high-resolution devices to come. This means it may be worth resizing larger images using CSS, and using multiple CSS files and other tricks to serve specific images. Nice intro to it here: webmonkey.com/2012/03/…

This is the worst solution for now, as not every e-commerce shop is going to re-size the image as suggested. In 2009, it most likely was close to the best option, now just use the size attributes like below.

background-size: 200px 50px; 

But I would edit the image itself, so that the user needs to load less, and it might look better than a shrunken image without antialiasing.

If your users use only Opera 9.5+, Safari 3+, Internet Explorer 9+ and Firefox 3.6+ then the answer is yes. Otherwise, no.

Читайте также:  Javascript this parent element

The background-size property is part of CSS 3, but it won’t work on most browsers.

For your purposes just make the actual image larger.

background-size: 100%; background-position:center; — this works in IE6 running on my Virtual Machine on XP Home.

Even in 2013 — while the comment «IE6,7,8 is not ‘most browsers'» might be partly true in regards to IE6; IE7 and IE8 still have quite a commanding market share unfortunately. The best way I’ve found to do this is to use Javascript in combination with modernizr (or other means of tagging ‘OLDIE’).

Not possible. The background will always be as large as it can be, but you can stop it from repeating itself with background-repeat .

background-repeat: no-repeat; 

Secondly, the background does not go into margin-area of a box, so if you want to have the background only be on the actual contents of a box, you can use margin instead of padding.

Thirdly, you can control where the background image starts. By default it’s the top left corner of a box, but you can control that with background-position , like this:

background-position: center top; 
background-position: 20px -14px; 

Negative positioning is used a lot with CSS sprites.

Well, that’s not possible. There might be options for doing that in future versions of CSS, but that’s a long way off.

Take a look at the time stamp. In 2009, background-size was but a twinkle in WebKit’s eyes. Feel free to update it, if you want, but there’s already plenty other answers describing background-size.

Not too hard, if you’re not afraid of going a little more in depth 🙂

There’s one forgotten argument:

This won’t stretch your background-image as it would do with cover . It would stretch until the longer side reaches the width or height of the outer container and therefore preserving the image.

Edit: There’s also -webkit-background-size and -moz-background-size .

The background-size property is supported in IE9+, Firefox 4+, Opera, Chrome, and Safari 5+.

background-size: 200px 50px change it to 100% 100% and it will scale on the needs of the content tag like ul li or div. tried it

In support of the answer that @tetra gave, I want to point out that if the image is an SVG, then resizing the actual image is not necessary.

Since an SVG file is just XML you can specify whatever size you want it to appear within the XML.

However, if you are using the same SVG image in different places and need it to be different sizes, then using background-size is very helpful. SVG files are inherently smaller than raster images anyway and resizing on the fly with CSS can be very helpful without any performance cost that I am aware of, and certainly little to no loss of quality.

content
.hasBackgroundImage < background: transparent url('/image/background.svg') no-repeat 10px 5px; background-size: 1.4em; >

(Note: this works for me in OS X 10.7 with Firefox 8, Safari 5.1, and Chrome 16.0.912.63)

Источник

background-size

The background-size CSS property sets the size of the element’s background image. The image can be left to its natural size, stretched, or constrained to fit the available space.

Try it

Spaces not covered by a background image are filled with the background-color property, and the background color will be visible behind background images that have transparency/translucency.

Читайте также:  Python exception error types

Syntax

/* Keyword values */ background-size: cover; background-size: contain; /* One-value syntax */ /* the width of the image (height becomes 'auto') */ background-size: 50%; background-size: 3.2em; background-size: 12px; background-size: auto; /* Two-value syntax */ /* first value: width of the image, second value: height */ background-size: 50% auto; background-size: 3em 25%; background-size: auto 6px; background-size: auto auto; /* Multiple backgrounds */ background-size: auto, auto; /* Not to be confused with `auto auto` */ background-size: 50%, 25%, 25%; background-size: 6px, auto, contain; /* Global values */ background-size: inherit; background-size: initial; background-size: revert; background-size: revert-layer; background-size: unset; 

The background-size property is specified in one of the following ways:

  • Using the keyword values contain or cover .
  • Using a width value only, in which case the height defaults to auto .
  • Using both a width and a height value, in which case the first sets the width and the second sets the height. Each value can be a , a , or auto .

To specify the size of multiple background images, separate the value for each one with a comma.

Values

Scales the image as large as possible within its container without cropping or stretching the image. If the container is larger than the image, this will result in image tiling, unless the background-repeat property is set to no-repeat .

Scales the image (while preserving its ratio) to the smallest possible size to fill the container (that is: both its height and width completely cover the container), leaving no empty space. If the proportions of the background differ from the element, the image is cropped either vertically or horizontally.

Scales the background image in the corresponding direction such that its intrinsic proportions are maintained.

Stretches the image in the corresponding dimension to the specified length. Negative values are not allowed.

Stretches the image in the corresponding dimension to the specified percentage of the background positioning area. The background positioning area is determined by the value of background-origin (by default, the padding box). However, if the background’s background-attachment value is fixed , the positioning area is instead the entire viewport. Negative values are not allowed.

Intrinsic dimensions and proportions

The computation of values depends on the image’s intrinsic dimensions (width and height) and intrinsic proportions (width-to-height ratio). These attributes are as follows:

  • A bitmap image (such as JPG) always has intrinsic dimensions and proportions.
  • A vector image (such as SVG) does not necessarily have intrinsic dimensions. If it has both horizontal and vertical intrinsic dimensions, it also has intrinsic proportions. If it has no dimensions or only one dimension, it may or may not have proportions.
  • CSS s have no intrinsic dimensions or intrinsic proportions.
  • Background images created with the element() function use the intrinsic dimensions and proportions of the generating element.

Note: In Gecko, background images created using the element() function are currently treated as images with the dimensions of the element, or of the background positioning area if the element is SVG, with the corresponding intrinsic proportion. This is non-standard behavior.

Based on the intrinsic dimensions and proportions, the rendered size of the background image is computed as follows:

  • If both components of background-size are specified and are not auto : The background image is rendered at the specified size.
  • If the background-size is contain or cover : While preserving its intrinsic proportions, the image is rendered at the largest size contained within, or covering, the background positioning area. If the image has no intrinsic proportions, then it’s rendered at the size of the background positioning area.
  • If the background-size is auto or auto auto :
    • If the image has both horizontal and vertical intrinsic dimensions, it’s rendered at that size.
    • If the image has no intrinsic dimensions and has no intrinsic proportions, it’s rendered at the size of the background positioning area.
    • If the image has no intrinsic dimensions but has intrinsic proportions, it’s rendered as if contain had been specified instead.
    • If the image has only one intrinsic dimension and has intrinsic proportions, it’s rendered at the size corresponding to that one dimension. The other dimension is computed using the specified dimension and the intrinsic proportions.
    • If the image has only one intrinsic dimension but has no intrinsic proportions, it’s rendered using the specified dimension and the other dimension of the background positioning area.

    Note: SVG images have a preserveAspectRatio attribute that defaults to the equivalent of contain ; an explicit background-size causes preserveAspectRatio to be ignored.

    • If the image has intrinsic proportions, it’s stretched to the specified dimension. The unspecified dimension is computed using the specified dimension and the intrinsic proportions.
    • If the image has no intrinsic proportions, it’s stretched to the specified dimension. The unspecified dimension is computed using the image’s corresponding intrinsic dimension, if there is one. If there is no such intrinsic dimension, it becomes the corresponding dimension of the background positioning area.

    Note: Background sizing for vector images that lack intrinsic dimensions or proportions is not yet fully implemented in all browsers. Be careful about relying on the behavior described above, and test in multiple browsers to be sure the results are acceptable.

    Formal definition

    Initial value auto auto
    Applies to all elements. It also applies to ::first-letter and ::first-line .
    Inherited no
    Percentages relative to the background positioning area
    Computed value as specified, but with relative lengths converted into absolute lengths
    Animation type a repeatable list of

    Formal syntax

    Examples

    Tiling a large image

    Let’s consider a large image, a 2982×2808 Firefox logo image. We want to tile four copies of this image into a 300×300-pixel element. To do this, we can use a fixed background-size value of 150 pixels.

    HTML

    div class="tiledBackground">div> 

    CSS

    .tiledBackground  background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png); background-size: 150px; width: 300px; height: 300px; border: 2px solid; color: pink; > 

    Result

    Specifications

    Browser compatibility

    BCD tables only load in the browser

    See also

    Found a content problem with this page?

    This page was last modified on Jul 18, 2023 by MDN contributors.

    Your blueprint for a better internet.

    MDN

    Support

    Our communities

    Developers

    Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
    Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

    Источник

Оцените статью