|
|
|
| Как проще всего это сделать, дабы в дальнейшем использовать для компоновки страницы сайта? | |
|
|
|
|
|
|
|
для: Ivan
(17.05.2005 в 13:25)
| | Спросить об этом пользователя =)
Не думаю что это возможно (покрайней мере в php). | |
|
|
|
|
|
|
|
для: Ivan
(17.05.2005 в 13:25)
| | Это осуществляется при помощи JavaScript. Пусть имеется index.html
<Script Language="JavaScript">
var height=0;
var width=0;
colorDepth = screen.colorDepth;
if (self.screen)
{
width = screen.width
height = screen.height
}
else if (self.java)
{
var jToolKit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jToolKit.getScreenSize();
width = scrsize.width;
height = scrsize.height;
}
if (width > 0 && height > 0)
{
// Производим перенаправление на скрипт counter.php, передавая в
// переменной scrsize строку, содержащую значения width,
// height и colorDepth.
window.location.href = "http://localhost/view.php?
width=" + width +
"&height=" + height +
"&color=" + colorDepth;
} else exit();
</Script>
|
Тогда в view.php можно определить разрешение
<?php
echo "Ширина : ".$_GET['width'];
echo "Высота : ".$_GET['height'];
echo "Цветовое разрешение : ".$_GET['color'];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.05.2005 в 13:55)
| | Можно вот так еще
<script language=JavaScript>
r1=(screen.width+'*'+screen.height+' ')
document.write(r1)
</script>
|
или вот так
<script language="JavaScript">
<!--
var height=0;var width=0;
if (self.screen) {
// for NN4 and IE4
width = screen.width
height = screen.height
}
if (width<641 && height<481)
document.writeln('<STYLE TYPE="text/css">' + ' #test {background-color: red; clip: rect(0px 300px 200px 0px)';
HEIGHT: 200px; LEFT: 0px; POSITION: absolute; TOP: -200px;
WIDTH: 300px; layer-background-color: red;
</STYLE>')
else
{
if (width>1023 && height>767)
{
document.writeln('<STYLE TYPE="text/css">\n'+
'#test {BACKGROUND-COLOR: red; CLIP: rect(0px 510px 200px 0px);
HEIGHT: 200px; LEFT: 0px; POSITION: absolute; TOP: -200px;
WIDTH: 510px; layer-background-color: red}\n'+
'</STYLE>')
}
else
{
document.writeln('<STYLE TYPE="text/css">\n'+
'#test {BACKGROUND-COLOR: red; CLIP: rect(0px 400px 200px 0px);
HEIGHT: 200px; LEFT: 0px; POSITION: absolute; TOP: -200px;
WIDTH: 400px; layer-background-color: red}\n'+
'</STYLE>')
}
}
//-->
</script>
|
или например
<html>
<head>
<script language="JavaScript" type="text/javascript">
function change_style()
{
if(screen.width==800) {
document.body.style.fontSize="30px"
} if(screen.width==1024) {
document.body.style.fontSize="50px"
}
if(screen.width==640) {
document.body.style.fontSize="10px"
}
}
</script>
</head>
<body onload="change_style();">
тело скрипта
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: sancho
(17.05.2005 в 14:06)
| | Ой-ей, спасибо, достаточно. Принцип ясен, детали проработаем :) | |
|
|
|
|
|
|
|
для: cheops
(17.05.2005 в 13:55)
| | Ага, получается, страничка должна будет перегрузиться еще раз, после того, как мы "спросим" у клиента. А сразу при первом его запросе такая информация на сервер не поступает? В виде каких-нибудь заголовков?
А к чему лучше потом привязать полученные данные, чтоб они запомнились на всю оставшуюся... сессию? | |
|
|
|
|
|
|
|
для: Ivan
(17.05.2005 в 18:18)
| | Да, к сожалению, придётся перегрузить страницу, чтобы информация попала с клиентской машины на сервер. Эту информацию удобно засунуть в cookie - тогда в следующий раз можно не определять разрешение, а взять его из cookie, да и перезагрузка страницы не потребуется. | |
|
|
|
|
|
|
|
для: cheops
(17.05.2005 в 23:42)
| | В продолжении темы. ТАким способом можно определить тока разрешение монитора, а не текущий размер окна. Можно ли динамически отслеживать размеры (скажем по onresize) ячейки таблицы или того же окна ? | |
|
|
|
|
|
|
|
для: Duran
(23.05.2005 в 11:24)
| | Можно также с помощью JavaScript. Но в этом же и проблема. Чтобы эти данные попали в скрипт нужно перегрузить страницу. Т.е. получили данные, записали в куки и получили эти данные в скрипте, при следующей перезагрузке страницы. | |
|
|
|