2012-02-21 3 views
0

Итак, я пытаюсь компенсировать этот html на 300 пикселей, сверху и слева. Ни одна из вещей, которые я пробовал до сих пор, не сработала, но если вы знаете страницу, которая может мне помочь, мне было бы очень интересно ее прочитать ... У меня уже есть три кадра, которые я хочу сохранить здесь, и я пытаюсь создать смещение с «pagediv», но без кубиков.Создание смещения страницы с помощью CSS

Я украл фреймворк (пиратская гордость), так как у меня ограниченный опыт работы с CSS. Опять же, я возился с ним, чтобы попытаться отобразить его на 300 пикселей вниз и справа от верхнего левого угла окна.

Но он не сдвинется с места! Как бы вы это сделали? Пожалуйста, имейте в виду, что я могу только вставить html в редактор моего хоста - это довольно плохо. Я не могу управлять своими файлами на сервере. Ой! да. И в идеале, кадры, которые я использую для смещения, были бы ясными - поскольку место, где я помещаю этот HTML, уже имеет все виды меню и сумасшедшего бизнеса слева и выше, что я не хочу скрывать ,

<!--Force IE6 into quirks mode with this comment tag--> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Dynamic Drive: CSS Left and Right Frames Layout</title> 
<style type="text/css"> 



body{ 
padding-top:200px;padding-left:200px; 
padding: 0; 
border: 0; 
overflow: hidden; 
height: 100%; 
max-height: 100%; 
} 

#pagediv{ 
padding-top:300px; 
padding-left:300px; 
} 

#framecontentLeft, #framecontentRight{ 
position: absolute; 
top: 0; 
left: 0; 
width: 300px; /*Width of left frame div*/ 
height: 100%; 
overflow: hidden; /*Disable scrollbars. Set to "scroll" to enable*/ 
background-color: white; 
color: black; 
} 

#framecontentRight{ 
left: auto; 
right: 0; 
width: 250px; /*Width of right frame div*/ 
overflow: hidden; /*Disable scrollbars. Set to "scroll" to enable*/ 
background-color: white; 
color: black; 
} 

#maincontent{ 
position: fixed; 
top: 0; 
left: 250px; /*Set left value to WidthOfLeftFrameDiv*/ 
right: 300px; /*Set right value to WidthOfRightFrameDiv*/ 
bottom: 0; 
overflow: auto; 
background: #fff; 
} 


innertube{ 
margin: 15px; /*Margins for inner DIV inside each DIV (to provide padding)*/ 
} 

* html body{ /*IE6 hack*/ 
padding: 0 150px 0 200px; /*Set value to (0 WidthOfRightFrameDiv 0 WidthOfLeftFrameDiv)*/ 
} 

* html #maincontent{ /*IE6 hack*/ 
height: 100%; 
width: 100%; 
} 


</style> 



<script type="text/javascript"> 
/*** Temporary text filler function. Remove when deploying template. ***/ 
var gibberish=["This is a test page for a gym", "We wholly believe in the art of strength", "Ipso liptum facto freako."] 
function filltext(words){ 
for (var i=0; i<words; i++) 
document.write(gibberish[Math.floor(Math.random()*3)]+" ") 
} 
</script> 


</head> 

<body> 

<Font face = "helvetica"> 

<div id = "pagediv"> 
<div class = "innertube"> 

<div id="framecontentLeft"> 
<div class="innertube"> 

<table width="100%" height="100%" cellpadding="3" cellspacing="0" border="0"> 
<tr><td align="left" valign="top"> 

<h1>Videos</h1> 


</td></tr> 
<tr><td align="left" valign="top"> 

<img src="video sample.png" width="200" height="200" /> 


</td></tr> 

<tr><td align="left" valign="top"> 

<img src="video sample.png" width="200" height="200" /> 


</td></tr> 

<tr><td align="left" valign="top"> 

<img src="video sample.png" width="200" height="200" /> 


</td></tr> 
</table> 

</div> 
</div> 

<div id="framecontentRight"> 
<div class="innertube"> 


<table width="100%" height="100%" cellpadding="3" cellspacing="0" border="0"> 
<tr><td align="left" valign="top"><h1><b> Location: </b></h1> <br /> 

<iframe width="200" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=2110+Pine+St.+Abilene,+TX+79601&amp;aq=&amp;sll=37.0625,-95.677068&amp;sspn=77.57349,131.132813&amp;ie=UTF8&amp;hq=&amp;hnear=2110+Pine+St,+Abilene,+Texas+79601&amp;t=m&amp;z=14&amp;ll=32.473249,-99.731684&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=2110+Pine+St.+Abilene,+TX+79601&amp;aq=&amp;sll=37.0625,-95.677068&amp;sspn=77.57349,131.132813&amp;ie=UTF8&amp;hq=&amp;hnear=2110+Pine+St,+Abilene,+Texas+79601&amp;t=m&amp;z=14&amp;ll=32.473249,-99.731684" style="color:#0000FF;text-align:left">View Larger Map</a></small> <br /> 
Art of Strength Abilene @ Hendrick Heatlh Club <br /> 
2110 Pine St. Abilene, TX 79601 <br /> 
(325) 670-7682 
</td></tr> 
<tr><td align="left" valign="top"> 


<h1> Contact </h1> 
Phone : 1 390 232 2323 <br /> 
Email : [email protected] <br /> 
Website : Link 

</td></tr> 
<tr><td align="left" valign="top"> 

<img src="advertisement1.jpg" width="150" height="250" /> 


</td></tr> 
<tr><td align="left" valign="top"> 

<img src="advertisement1.jpg" width="200" height="200" /> 


</td></tr> 
<tr><td align="left" valign="top"> 

<img src="advertisement1.jpg" width="175" height="100" /> 


</td></tr> 





</table> 

< 

</div> 
</div> 


<div id="maincontent"> 
<div class="innertube"> 
<table width="100%" height="100%" cellpadding="3" cellspacing="0" border="0"> 
<tr><td align="left" valign="top"> 

<h1>About AOS Abeline, Texas </h1> 
<p><script type="text/javascript">filltext(25)</script></p> 


</td></tr> 
<tr><td align="left" valign="top"> 

<h1>Our Training</h1> 
<p><script type="text/javascript">filltext(300)</script></p> 
<img src="../../Documents/punch/new aos site/Screen shot 2011-12-07 at 10.12.27 AM.png" width="307" height="243" /> 


</td></tr><tr><td align="left" valign="top"> 

<h1>Staff</h1> 
<p><script type="text/javascript">filltext(10)</script></p> 


</td></tr> 
</table> 

</div> 
</div> 

</div> 
</div> 

</FONT> 
</body> 
</html> 
+0

ли вы попробовать 'тело {обивка-топ: 300px; обивка налево: 300px;}' или 'тело {маржа-топ: 300px; маржа налево: 300px;}' вместо нуля значения? – Zeta

+0

Если вы хотите просто добавить его в раздел тела CSS, тогда да, я только что попробовал - первый из них заставляет все выравнивать влево, избавляясь от фреймов. А второй, похоже, ничего не влияет ... извините. – Catlard

+1

К нижней части вашего кода, после примерно 175 строк, существует паразитный '' '. Кроме того, у вас есть тег шрифта. Не используйте тег шрифта, применяйте шрифты с CSS. Это не ваша проблема с позиционированием - это просто усталость. Наконец ... вы * хотели * режим quirks? Этого я пытаюсь избежать. –

ответ

1

Вы используете position:absolute и position:fixed.

Смотрите раздел 6.6. Choosing a positioning scheme: ‘position’ property:

абсолютное: Положение блока (и, возможно, размер) определяется с «сверху», «вправо», «внизу», и «левых» свойств. Эти свойства определяют смещения относительно блока, содержащего поле. Абсолютно установленные коробки вынимаются из нормального потока. Это означает, что они не влияют на макет более поздних братьев и сестер. Хотя абсолютно позиционированные поля могут иметь поля, эти поля не сворачиваются с любыми другими полями.

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

Так что новый блок вам не поможет, так как position:absolute не заботится об этом. Вы должны установить блок в position:relative и дать ему поле, хотя это не будет исправлять ваш position:fixed как «поле фиксировано относительно области просмотра и не перемещается при прокрутке». Следующий код CSS исправит ваши ошибки, однако ваш HTML-код - это ужасная смесь злых вещей, формы и отполирования. Не пиратский код копирует код. Выучить язык. Блеск. И используйте [X]HTML validator.

body{ 
    margin-top:200px; 
    margin-left:200px; 
    position:absolute; 

    top:0; left:0; bottom:0;right:0; 

    font-family:Helvetica; 
    overflow: hidden; 
} 

#framecontentLeft, #framecontentRight, #maincontent{ 
    position:absolute; 
    top:0; 
    height:100%; 
} 
#framecontentLeft,#framecontentRight{ 
    overflow:hidden; 
} 
#framecontentLeft{ 
    left: 0; 
    width: 300px; /*Width of left frame div*/ 
} 

#framecontentRight{ 
    right: 0; 
    width: 250px; /*Width of right frame div*/ 
} 

#maincontent{ 
    left: 250px; /*Set left value to WidthOfLeftFrameDiv*/ 
    right: 300px; /*Set right value to WidthOfRightFrameDiv*/ 
    bottom: 0; 
} 

.innertube{ 
    margin: 15px; /*Margins for inner DIV inside each DIV (to provide padding)*/ 
} 

* html body{ /*IE6 hack*/ 
    padding: 0 150px 0 200px; /*Set value to (0 WidthOfRightFrameDiv 0 WidthOfLeftFrameDiv)*/ 
} 

* html #maincontent{ /*IE6 hack*/ 
    height: 100%; 
    width: 100%; 
} 
+0

А! Вы - девичье. Спасибо за помощь. Я понимаю, в чем проблема - и я согласен с тем, что мой пиратский код является симптомом, а не причиной уродливого кода. Я буду более блестящим в будущем. Вот ваш [пиксельный велосипед] (http://imgur.com/bVpPG) – Catlard

0

В общем, у вас должен быть один DIV, который обертывает все. Затем вы применяете margin-top и margin-left к этому DIV.

+0

Хм ... Мне нужно будет изучить, как работают DIVs, так как прямо сейчас я не уверен, как это сделать, не нарушая макет фреймов. Полезно знать, хотя! – Catlard

+0

Подождите, что вы говорите, кажется, не имеет смысла. Зачем они делают тег, который позволяет вам обозначать разные разделы, если вы должны использовать только один из них на странице? – Catlard

+1

@ пользователь1222151: He said * один *, нет * только один *. Поэтому просто создайте * другой * div, который содержит остальную часть вашего сайта;). – Zeta

Смежные вопросы