Установите фоновое изображение в соответствии с разрешением экрана

Стандарт C не определяет какой-либо макет для других автоматических переменных. В частности, он специально говорит, что для избежания сомнений,

[...] Макет хранилища для параметров [function] не указан. (C11 6.9.1p9)

Из этого можно понять, что его расположение хранилища для любых других объектов также неуказано, за исключением нескольких требований которые заданы стандартом, в том числе, что нулевой указатель не может указывать на какой-либо действительный объект или функцию и макеты в совокупных объектах.

В стандарте C не содержится упоминания single слово «стек»; вполне возможно сделать, например, реализацию C, которая не содержит стеков, выделяя каждую запись активации из кучи (хотя тогда их можно было бы понять, чтобы сформировать стек).

Одной из причин дать компилятору некоторую свободу действий является эффективность. Однако текущие компиляторы также использовали бы это для обеспечения безопасности, используя трюки, такие как рандомизация размещения адресного пространства и канальные каналы , чтобы попытаться затруднить использование неопределенного поведения . Переупорядочение буферов сделано для более эффективного использования канарейки.

23
задан Sam Holder 30 June 2010 в 09:35
поделиться

2 ответа

Подходы на чистом CSS, которые работают очень хорошо, обсуждаются здесь . В частности, рассматриваются два метода, и я лично предпочитаю второй, поскольку он не зависит от CSS3, что лучше соответствует моим потребностям.

Если большая часть / весь ваш трафик имеет браузер с поддержкой CSS3, первый метод будет более быстрым и понятным для реализации (для удобства скопировано / вставлено г-ном Зойдбергом в другой ответ здесь, хотя я бы посетил источник для получения дополнительной информации о том, почему это работает).

Альтернативой CSS является использование библиотеки JavaScript jQuery для обнаружения изменений разрешения и соответствующей корректировки размера изображения. Эта статья описывает технику jQuery и предоставляет живую демонстрацию.

Supersized - это специальная библиотека JavaScript, предназначенная для статических полноэкранных изображений, а также полноразмерных слайд-шоу.

Хороший совет для полноэкранных изображений - заранее масштабируйте их с правильным соотношением сторон. Обычно я стремлюсь к размеру 1500x1000 при использовании supersized.js или 1680x1050 для других методов, устанавливая качество jpg для фотографий между 60-80%, что приводит к размеру файла в районе 100 КБ или меньше, если это возможно, без слишком большого ущерба для качества. .

23
ответ дан 29 November 2019 в 02:03
поделиться

Привет, вот версия javascript, которая изменяет src фонового изображения в соответствии с разрешением экрана. У вас должны быть разные изображения, сохраненные в правильном размере.

<html>
<head>    
<title>Javascript Change Div Background Image</title>        
<style type="text/css">    
body {
         margin:0;
         width:100%;
         height:100%;
}

#div1 {   
    background-image:url('sky.jpg');
    width:100%
    height:100%
}    

p {    
    font-family:Verdana;    
    font-weight:bold;    
    font-size:11px;    
}    
</style>    

<script language="javascript" type="text/javascript">
function changeDivImage()    
{   
//change the image path to a string   
var imgPath = new String();        
imgPath = document.getElementById("div1").style.backgroundImage;  

//get screen res of customer
var custHeight=screen.height;
var custWidth=screen.width;

//if their screen width is less than or equal to 640 then use the 640 pic url
if (custWidth <= 640)
    {
    document.getElementById("div1").style.backgroundImage = "url(640x480.jpg)";
    }

else if (custWidth <= 800)
    {
    document.getElementById("div1").style.backgroundImage = "url(800x600.jpg)";
    }

else if (custWidth <= 1024)
    {
    document.getElementById("div1").style.backgroundImage = "url(1024x768.jpg)";
    }

else if (custWidth <= 1280)
    {
    document.getElementById("div1").style.backgroundImage = "url(1280x960.jpg)";
    }

else if (custWidth <= 1600)
    {
    document.getElementById("div1").style.backgroundImage = "url(1600x1200.jpg)";
    }

else {
    document.getElementById("div1").style.backgroundImage = "url(graffiti.jpg)";
     }

    /*if(imgPath == "url(sky.jpg)" || imgPath == "")        
    {            
    document.getElementById("div1").style.backgroundImage = "url(graffiti.jpg)";        
     }
    else        
     {            
     document.getElementById("div1").style.backgroundImage = "url(sky.jpg)";        
     }*/
}    

</script>
</head>
<body onload="changeDivImage()">            

<div id="div1">   

 <p>This Javascript Example will change the background image of<br />HTML Div Tag onload using javascript screen resolution.</p>    
 <p>paragraph</p>
</div>    

<br/>    

</body>
</html>
4
ответ дан 29 November 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: