Eu estive recentemente atualizando meus sites e servidor web e adicionando um novo site (LoveCrete.org). Eu queria ter uma imagem de fundo em LoveCrete e percebeu que, claro, 1 tamanho não serve para todos os ecrãs. Here is a summary of what my thinking was and what I did to cater for the numerous screen sizes and orientations.
que orientação
I started by making myself a little table of all the common resolutions used on PCs and tablets (in horizontal orientation). I decided to focus on this because most images are available in landscape so this is a sensible place to start.
I decided that I would place images centrally on the page and let the edges be lost off the edge of the screen in some instances. When a phone is used in portrait orientation it will load the image based on height (não largura) e vai perder um monte de ambos borda da imagem. Doing it any other way would mean needing images cropped to a totally different shape or having a landscape image “tile” on a tall screen, o que não é desejável.
The ratios of the maximum size image to make in each group were all around 1.6 with a few a bit higher. To keep things simpler I decided to use a ratio of 16:10 para todas as imagens e veio com tamanhos para fazer em conformidade.
This means in most cases the image will not be a perfect fit to the screen size, but all screens will get something very close and no screen will end up with something too small. Significa, também, uma imagem de origem pode ser cortada para 16:10 once and then multiple sizes easily created
grupos de resolução de paisagem comum
Altura | Largura | Image to make | Comentários | ||
---|---|---|---|---|---|
4:3 | 16:10 | 16:9 | |||
2160 | 2880 | 3840 | 2400×3840 | 4k UHD | |
1600 1536 1440 | - 2048 1920 | 2560 - - | - - 2560 | 1600×2560 | |
1200 1080 1050 | 1600 1440 1400 | 1920 - 1680 | - 1920 - | 1200×1920 | 1080p Full HD |
960 900 | 1280 1200 | 1536 1440 | - 1600 | 1000×1600 | |
800 768 720 | - 1024 960 | 1280 - - | - - 1280 | 800×1280 | 720p |
600 576 | 800 768 | 960 - | - 1024 | 640×1024 | |
480 | 640 | 768 | 480×768 |
As you can see I have grouped quite a few resolutions and will then make 1 image that will cover all heights up to the largest height in that group. I will make sure the image is also wide enough for the maximum width such a height might be paired with on a normal screen. I haven’t taken account of unusual configurations like 21:9 monitors or multiple screens — there has to be a limit somewhere!
Porque CSS uses the viewport or browser size and not the screen size landscape screens need to use width rather than height — as on most systems the top and bottom lose space to title bars etc whilst the width is usually maximised. No entanto, for portrait displays it is better to use the height property. Isto pode ser feito como CSS can identify the screen orientation
O CSS usado, em seguida, tem a seguinte aparência
corpo{fundo de repetição: no-repeat; background-attachment: fixo; -fundo posição: centro; background-size: cobrir;} @meios de comunicação (largura máxima: 768px) {corpo { imagem de fundo: url(bg480.jpg); }} @meios de comunicação (min-width:769px) e (largura máxima: 1024px) {corpo { imagem de fundo: url(bg640.jpg); }} @meios de comunicação (min-width:1025px) e (largura máxima: 1280px) {corpo { imagem de fundo: url(bg800.jpg); }} @meios de comunicação (min-width:1281px) e (largura máxima: 1600px) {corpo { imagem de fundo: url(bg1000.jpg); }} @meios de comunicação (min-width:1601px) e (largura máxima: 1920px) {corpo { imagem de fundo: url(bg1200.jpg); }} @meios de comunicação (min-width:1921px) e (largura máxima: 2560px) {corpo { imagem de fundo: url(bg1600.jpg); }} @meios de comunicação (min-width:2561px) {corpo { imagem de fundo: url(../images / bg2400.jpg); }} @meios de comunicação (orientação: retrato){ @meios de comunicação (altura máxima: 480px) {corpo { imagem de fundo: url(bg480.jpg); }} @meios de comunicação (min-altura:481px) e (altura máxima: 640px) {corpo { imagem de fundo: url(bg640.jpg); }} @meios de comunicação (min-altura:641px) e (altura máxima: 800px) {corpo { imagem de fundo: url(bg800.jpg); }} @meios de comunicação (min-altura:801px) e (altura máxima: 1000px) {corpo { imagem de fundo: url(bg1000.jpg); }} @meios de comunicação (min-altura:1001px) e (altura máxima: 1200px) {corpo { imagem de fundo: url(bg1200.jpg); }} @meios de comunicação (min-altura:1201px) e (altura máxima: 1600px) {corpo { imagem de fundo: url(bg1600.jpg); }} @meios de comunicação (min-altura:1601px) {corpo { imagem de fundo: url(bg2400.jpg); }} }
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”