Jump to content
  • 0

position: absolute - его секреты


apika
 Share

Question

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

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

непонял вопроса. всмысле удобно таким пользоваться? Мне почему то понравилось больше, чем таблицей. Разместил что где надо и все ок, точнее почти все. Вот если бы во всех отображалось, тогда было бы все. Да я сейчас пока ждал ответа испробывал применения стилей в отдельном файле. Так мозила что то не воспринимает так, а опера умница все схватывает. Делал стиль цвета текста. Если разместить в самой странице стиль в тегах воспринимают все, а если в отдельном css то только опера. Почему так?

Link to comment
Share on other sites

  • 0
непонял вопроса. всмысле удобно таким пользоваться? Мне почему то понравилось больше, чем таблицей. Разместил что где надо и все ок, точнее почти все. Вот если бы во всех отображалось, тогда было бы все. Да я сейчас пока ждал ответа испробывал применения стилей в отдельном файле. Так мозила что то не воспринимает так, а опера умница все схватывает. Делал стиль цвета текста. Если разместить в самой странице стиль в тегах воспринимают все, а если в отдельном css то только опера. Почему так?

Потому что у вас где-то ошибка.

Link to comment
Share on other sites

  • 0

apika

Абсолютная позиция очень хороша. Почти нигде не глючит. В отличие от флоатов. Так что я даже не вижу где у вас возникли проблемы разве что вы забыли указать относительную позицию для родительского тега

Link to comment
Share on other sites

  • 0

Вот, я весь поместил, потому что не знаю что имеено надо. Извените, что много, менюшка занимает 23. Что бы понять, в чем дело, откройте в опере и в Мозиле, все станет ясно

<html>
<head>
<title>Медовик.info</title>
<style type="text/css">
<!-- LOGO -->
#logo {
position: absolute; /* Абсолютное позиционирование */
top: 10px; /* Положение от верхнего края */
left: 40%; /* Положение от левого края */
}
<!-- CENTER BLOK -->
#leftcol {
position: absolute; /* Абсолютное позиционирование */
top: 100px; /* Положение от верхнего края */
left: 190px; /* Положение от левого края */
width: 60%; /* Ширина блока */
background: #000000; /* Цвет фона */
border: 1px solid #DF0E0E; /* Параметры рамки */
padding: 10px; /* Поля вокруг текста */
}
<!-- CENTER BLOK END -->
<!-- RICHT BLOK 1-->
#richtcol {
position: absolute; /* Абсолютное позиционирование */
top: 150px; /* Положение от верхнего края */
right: 15px; /* Положение от правого края */
width: 14%; /* Ширина блока */
background: #756F6F; /* Цвет фона */
border: 1px solid #DF0E0E; /* Параметры рамки */
padding: 10px; /* Поля вокруг текста */
}
<!-- RICHT BLOK END1-->
<!-- MENU -->

</style>
<!-- HEAD START HERE -->

<style type="text/css">
DIV.clSlide{position:absolute; z-index:10; left:0; width:143; height:29; clip:rect(0,143,29,0); padding:5px;}
DIV.clSlideSub{position:absolute;;z-index:10; padding:2px; clip:rect(0,127,20,0); width:127; height:20; left:8; visibility:hidden}
DIV.clSlideSub2{position:absolute;;z-index:10; padding:2px; clip:rect(0,118,20,0); width:118; height:20; left:8; visibility:hidden}
#divSlideCont{position:absolute; z-index:10; left:0; top:100; height:600; width:170; visibility:hidden}
A.clSlideLinks{font-family:Verdana, Helvetica, Helv; font-size:10px; font-weight:bold; text-decoration:none; color:#2911B8}
A.clSlideSubLinks{font-family:Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; color:Navy}
A.clSlideSub2Links{font-family:Verdana, Helvetica, Helv; font-size:9px; text-decoration:none; color:Navy}
</style>
<script language="JavaScript" type="text/javascript">
/**********************************************************************************
SlideMenu
* Copyright (C) 2001 Thomas Brattli
* This script was released at WOscripts.com
* Visit for more great scripts!
* This may be used and changed freely as long as this msg is intact!
* We will also appreciate any links you could give us.
*********************************************************************************/

function lib_bwcheck(){ //Browsercheck (needed)
this.ver=navigator.appVersion
this.agent=navigator.userAgent
this.dom=document.getElementById?1:0
this.opera5=this.agent.indexOf("Opera 5")>-1
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
this.ie=this.ie4||this.ie5||this.ie6
this.mac=this.agent.indexOf("Mac")>-1
this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
return this
}
var bw=new lib_bwcheck()


//Opera didn't seem to like the padding in the layers, it messes up the background-images, so here's a version without it.
if(bw.opera5) document.write("<style>DIV.clSlide{padding:0px; background-image:url(' ')}nDIV.clSlideSub{padding:0px; background-image:url(' ')}nDIV.clSlideSub2{padding:0px; background-image:url(' ')}</style>")

/************************************************************************************
Making cross-browser objects
************************************************************************************/
function makeMenuObj(obj,nest){
nest=(!nest) ? "":'document.'+nest+'.'
this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.ref=bw.dom || bw.ie4? document:bw.ns4?eval(nest+"document.layers." +obj+".document"):0;
this.x=(bw.ns4 || bw.ns5)? this.css.left:this.css.offsetLeft;
this.y=(bw.ns4 || bw.ns5)? this.css.top:this.css.offsetTop;
this.hideIt=b_hideIt; this.showIt=b_showIt; this.movey=b_movey
this.moveIt=b_moveIt; this.moveBy=b_moveBy; this.status=0;
this.bgImg=b_bgImg; this.obj = obj + "Object"; eval(this.obj + "=this");
this.clipTo=b_clipTo;
return this
}
function b_showIt(){this.css.visibility="visible"; this.status=1}
function b_hideIt(){this.css.visibility="hidden"; this.status=0}
function b_movey(y){this.y=y; this.css.top=this.y}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y}
function b_moveBy(x,y){this.x=this.x+x; this.y=this.y+y; this.css.left=this.x;this.css.top=this.y}
function b_bgImg(img){if(bw.ie||bw.dom)this.css.backgroundImage="url('"+img+"')"
else this.css.background.src=img
}
function b_clipTo(t,r,b,l,w){if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r
this.css.clip.bottom=b;this.css.clip.left=l
}else{this.css.clip="rect("+t+","+r+","+b+","+l+")"; if(w){this.css.width=r; this.css.height=b}}}
/********************************************************************************
Initiating page, making objects..
********************************************************************************/
function SlideMenuInit(){
oSlideMenu=new makeMenuObj('divSlideCont')
oSlideMenu.moveIt(menux,menuy)
oSlide=new Array()
for(i=0;i<menus.length;i++){
oSlide[i]=new makeMenuObj('divSlide'+i,'divSlideCont')
oSlide[i].subs=menus[i].subs
oSlide[i].sub=new Array()
oSlide[i].moveIt(0,mainheight*i)
oSlide[i].starty=oSlide[i].y
if(bw.opera) oSlide[i].css.paddingLeft="10px"
if(!menus[i].seperator) oSlide[i].bgImg(level0_regular)
for(j=0;j<oSlide[i].subs;j++){
oSlide[i].sub[j]=new makeMenuObj('divSlideSub'+i+"_"+j,'divSlideCont')
oSlide[i].sub[j].moveIt(10,oSlide[i].y+subheight*j+between)
oSlide[i].sub[j].starty=oSlide[i].sub[j].y
oSlide[i][j]=new Array()
oSlide[i][j].subs=menus[i][j].subs
oSlide[i][j].sub=new Array()
img=level1_round
if(oSlide[i][j].subs!=0){
if(j!=oSlide[i].subs-1) img=level1_sub
else img=level1_sub_round
oSlide[i].sub[j].css.color="white"
}else{
if(j!=oSlide[i].subs-1)img=level1_regular
}
oSlide[i].sub[j].origimg=img
oSlide[i].sub[j].bgImg(img)
for(a=0;a<oSlide[i][j].subs;a++){
oSlide[i][j].sub[a]=new makeMenuObj('divSlideSub'+i+"_"+j+"_"+a,'divSlideCont')
oSlide[i][j].sub[a].moveIt(20,oSlide[i].sub[j].y+subheight*a+between-2)
oSlide[i][j].sub[a].starty=oSlide[i][j].sub[a].y
oSlide[i][j][a]=new Array()
oSlide[i][j][a].subs=menus[i][j][a].subs
oSlide[i][j][a].sub=new Array()
if(a!=oSlide[i][j].subs-1) img=level2_regular
else img=level2_round
oSlide[i][j].sub[a].origimg=img
oSlide[i][j].sub[a].bgImg(img)
}
}
}
oSlideMenu.showIt()
}
/********************************************************************************
Variables
********************************************************************************/
var active=-1;var going;var isthere; var sactive=-1; var sisthere=-1; var s2active=-1; var s2isthere=-1
/********************************************************************************
Switch menu function.
********************************************************************************/
function swmenu(num,snum,s2num){
if(snum!=-1){
if(oSlide[num][snum].subs==0) return
}
if(s2num!=-1){
if(oSlide[num][snum][s2num].subs==0) return
}
if((num!=active || snum!=sactive || s2num!=s2active) && !going){going=true;isthere=0;sisthere=0;moveUp(num,snum,s2num)}
}
/********************************************************************************
Moving the menus upward to their original position.
********************************************************************************/
function moveUp(num,snum){
if(snum==-1){
for(i=0;i<oSlide.length;i++){
if(oSlide[i].y>oSlide[i].starty+pxspeed && active!=i) oSlide[i].moveBy(0,-pxspeed)
else{if(active!=i) oSlide[i].moveIt(oSlide[i].x,oSlide[i].starty); isthere=i}
}

if(isthere<oSlide.length-1) setTimeout("moveUp("+num+","+snum+")",timspeed)
else swmenu2(num,snum)
}else{
if(num==oSlide.length-1) isthere=num

if(sactive!=-1){ //Is out!
//Slide subs
j=0
for(i=sactive+1;i<oSlide[num].sub.length;i++){
j++
if(oSlide[num].sub[i].y>oSlide[num].sub[i].starty+pxspeed) oSlide[num].sub[i].moveBy(0,-pxspeed)
else{oSlide[num].sub[i].moveIt(oSlide[num].sub[i].x,oSlide[num].sub[i].starty); sisthere=i}
}
//Slide main
for(i=num+1;i<oSlide.length;i++){
if(oSlide[i].y>oSlide[i].starty + oSlide[num].sub[sactive].y +subheight*j ) oSlide[i].moveBy(0,-pxspeed)
else{oSlide[i].moveIt(oSlide[i].x,oSlide[i].starty + oSlide[num].sub[sactive].y +subheight*j ); isthere=i}
}
}else{ //Slide to the one clicked
for(i=num+1;i<oSlide.length;i++){
if(oSlide[i].y>oSlide[i].starty + snum*between+between) oSlide[i].moveBy(0,-pxspeed)
else{oSlide[i].moveIt(oSlide[i].x,oSlide[i].starty + snum*between+between); isthere=i}
}
}
if(isthere<oSlide.length-1 || (sactive!=-1 && sisthere<oSlide[num].sub.length-1 && sactive!=oSlide[num].sub.length-1)) setTimeout("moveUp("+num+","+snum+")",timspeed)
else swmenu2(num,snum)
}
}
/********************************************************************************
Switch menu 2, stuff that happens before the menus are moved down again.
********************************************************************************/
function swmenu2(num,snum){
isthere=0;
sisthere=0;
if(active>-1 && snum==-1){
//Hiding submenus
for(j=0;j<oSlide[active].subs;j++){oSlide[active].sub[j].hideIt()}
oSlide[active].bgImg(level0_regular)
oSlide[active].moveIt(0,oSlide[active].starty)
}
if(sactive>-1){
//Hiding submenus
for(j=0;j<oSlide[active][sactive].sub.length;j++){oSlide[active][sactive].sub[j].hideIt()}
oSlide[active].sub[sactive].bgImg(oSlide[active].sub[sactive].origimg)
oSlide[active].sub[sactive].moveIt(10,oSlide[active].sub[sactive].starty)
//Move back to place
for(i=sactive+1;i<oSlide[active].sub.length;i++){
oSlide[active].sub[i].moveIt(oSlide[active].sub[i].x,oSlide[active].sub[i].starty)
}
}
active=num
//Showing submenus
if(snum>-1){
sactive=snum
for(j=0;j<oSlide[num][snum].sub.length;j++){oSlide[num][snum].sub[j].showIt()}
oSlide[num].sub[snum].moveBy(10,3)
oSlide[num].sub[snum].bgImg(level1_round2)
}else{
sactive=-1
for(j=0;j<oSlide[active].subs;j++){oSlide[active].sub[j].showIt()}
oSlide[num].moveBy(10,3)
oSlide[num].bgImg(level0_round)
}
if(num!=oSlide.length-1) moveDown(num,snum)
else{
isthere=num
moveDown(num,snum)
}
}
/********************************************************************************
Moving the menus down
********************************************************************************/
function moveDown(num,snum){
//if(num==oSlide.length-1) isthere=num
for(i=num+1;i<oSlide.length;i++){
if(snum==-1){
if(oSlide[i].y<(oSlide[num].subs-1)*subheight+oSlide[i].starty+between-pxspeed) oSlide[i].moveBy(0,pxspeed)
else{oSlide[i].moveIt(oSlide[i].x,(oSlide[num].subs-1)*subheight+oSlide[i].starty+between); isthere=i}
}else{
if(oSlide[i].y<(oSlide[num].subs-1)*subheight+oSlide[i].starty+between-pxspeed + (oSlide[num][snum].subs-1)*subheight+between) oSlide[i].moveBy(0,pxspeed)
else{oSlide[i].moveIt(oSlide[i].x,(oSlide[num].subs-1)*subheight+oSlide[i].starty+between + (oSlide[num][snum].subs-1)*subheight+between); isthere=i}
}
}
if(snum!=-1){
for(i=snum+1;i<oSlide[num].sub.length;i++){
if(oSlide[num].sub[i].y<(oSlide[num][snum].subs-1)*subheight+oSlide[num].sub[i].starty+between-pxspeed) oSlide[num].sub[i].moveBy(0,pxspeed)
else{oSlide[num].sub[i].moveIt(oSlide[num].sub[i].x,(oSlide[num][snum].subs-1)*subheight+oSlide[num].sub[i].starty+between); sisthere=i}
}
}
if(snum==-1){
if(isthere<oSlide.length-1) setTimeout("moveDown("+num+","+snum+")",timspeed)
else going=false
}else{
if(isthere<oSlide.length-1 || (sisthere<oSlide[num].sub.length-1 && snum!=oSlide[num].sub.length-1)) setTimeout("moveDown("+num+","+snum+")",timspeed)
else going=false
}
}
var test=0
/********************************************************************************
Functions to write out the layers...
********************************************************************************/
menus=new Array(); var a=0; var b=0; var c=0; var d=0
function makeMenu(type,text,lnk,target,end){
str=""; tg="";
if(target) tg='target="'+target+'"'
if(!lnk) lnk="#"
self.status=lnk
if(a==0) str='<div id="divSlideCont">n'
if(type=="top"){
menus[a]=new Array();
if(text=="seperator"){
str+='t<div id="divSlide'+a+'" class="clSlide"></div>n'
menus[a].seperator=1
}else{
str+='t<div id="divSlide'+a+'" class="clSlide"><a href="'+lnk+'" '+tg+' onclick="swmenu('+a+',-1,-1); if(bw.ie || bw.ns6) this.blur(); '
if(lnk=="#") str+='return false'
str+='" class="clSlideLinks">?'+text+'</a>
</div>n'
}
menus[a].subs=0; a++; b=0
}else if(type=="sub"){
str+='tt<div id="divSlideSub'+(a-1)+'_'+(b)+'" class="clSlideSub"><a '+tg+' onclick="swmenu('+(a-1)+','+b+',-1); if(bw.ie || bw.ns6) this.blur(); '
if(lnk=="#") str+='return false'
str+='" href="'+lnk+'" class="clSlideSubLinks">??'+text+'</a>
</div>n'
b++; menus[a-1].subs=b; menus[a-1][b-1]=new Array(); c=0; menus[a-1][b-1].subs=0
}else if(type=="sub2"){
str+='tt<div id="divSlideSub'+(a-1)+'_'+(b-1)+'_'+c+'" class="clSlideSub2"><a '+tg+' href="'+lnk+'" class="clSlideSub2Links">??'+text+'</a>
</div>n'
c++; menus[a-1][b-1].subs=c; menus[a-1][b-1][c-1]=new Array(); d=0; menus[a-1][b-1][c-1].subs=0
}
if(end) str+="</div>"
document.write(str)
}
function preLoadBackgrounds(){
for(i=0;i<arguments.length;i++){
this[i]=new Image()
this[i].src=arguments[i]
}
return this
}
</script>
<!-- HEAD END HERE -->
<!-- MENU END -->
</head>
<body bgcolor="0" text="#FFFFFF" link="#FFFFFF" topmargin="0" leftmargin="0">
<!-- BODY START HERE -->

<script>

//Variables to set
between=28 //The pixel between the menus and the submenus
mainheight=29 //The height of the mainmenus
subheight=22 //The height of the submenus
pxspeed=13 //The pixel speed of the animation
timspeed=15 //The timer speed of the animation
menuy=130 //The top placement of the menu.
menux=4 //The left placement of the menu
//Images - Play with these
level0_regular="image/level0_regular.gif"
level0_round="image/level0_round.gif"
level1_regular="image/level1_regular.gif"
level1_round="image/level1_round.gif"
level1_sub="image/level1_regular.gif"
level1_sub_round="image/level1_round.gif"
level1_round2="image/level1_round2.gif"
level2_regular="image/level2_regular.gif"
level2_round="image/level2_round.gif"

//Leave this line
preLoadBackgrounds(level0_regular,level0_round,level1_regular,level1_round,level1_sub,level1_sub_round,level1_round2,level2_regular,level2_round)


//There are 3 different types of menus you can make
//top = Main menus
//sub = Sub menus
//sub2 = SubSub menus

//You control the look of the menus in the stylesheet

//makeMenu('TYPE','TEXT','LINK','TARGET', 'END (THE LAST MENU)')

//Menu 0
makeMenu('top','Основы пчел-ва')
makeMenu('sub','уход за пчелами','/news/index.asp')
makeMenu('sub','необх. инвентарь','/news/archive.asp')
makeMenu('sub','породы пчел','/news/archive.asp')

//Menu 1
makeMenu('top','Методы пчел-ва')
makeMenu('sub','что такое метод','/script/search.asp?new=1')
makeMenu('sub','матки-помошницы','/script/index.asp')
makeMenu('sub','осветленые ульи')

//Menu 2
makeMenu('top','Инвентарь')
makeMenu('sub','ульи')
makeMenu('sub2','лежак','/script/search.asp?category=menu')
makeMenu('sub2','дадан','/script/search.asp?category=text')
makeMenu('sub2','делон','/script/search.asp?category=menu')
makeMenu('sub2','рут','/script/search.asp?category=text')
makeMenu('sub2','древнии','/script/search.asp?category=animation')
makeMenu('sub','медогонки','/script/index.asp')
makeMenu('sub','стамески','/script/index.asp')

//Menu 3
makeMenu('top','Пчел-во Белогорья')
makeMenu('sub','климат','forums/forum.asp?FORUM_ID=1&CAT_ID=1&Forum_Title=Cool+sites')
makeMenu('sub','медоносы','forums/forum.asp?FORUM_ID=1&CAT_ID=1&Forum_Title=Cool+sites')
makeMenu('sub','магазины пчел-ва','forums/forum.asp?FORUM_ID=1&CAT_ID=1&Forum_Title=Cool+sites')
//Menu 4
makeMenu('top','Пчелопродукты')
makeMenu('sub','мед','/script/index.asp')
makeMenu('sub','прополис','/script/index.asp')
makeMenu('sub','пыльца','/script/index.asp')
makeMenu('sub','маточное молочко','/script/index.asp')
makeMenu('sub','яд','/script/index.asp')
makeMenu('sub','апитерапия','/script/index.asp')
//Menu 5
makeMenu('top','Объявления')
makeMenu('sub','пчелы','resources/default.asp')
makeMenu('sub','пчелопродукты','resources/default.asp')
makeMenu('sub','инвентарь и об-ние','resources/default.asp')
//Menu 6
makeMenu('top','Гостевая','dhtmlcentral/index.asp',"",1)

//Starting the menu
onload=SlideMenuInit;
</script>

<!-- BODY END HERE -->
<div id="logo" style="font-family: Times, serif; color: red; /* Цвет символа */
font-size: 200%"><span style="position: relative; font-size: 200%">
M</span><span style="position: relative; top: 10px"> E </span>Д о В<span style="position: relative; top: 14px"> И </span>К.<span style="position: relative; top:1px; font-size: 70%">info</span>
</div>
<!-- RICHT BLOK 1-->
<div id="richtcol"> полезная информация полезная информация полезная информация полезная информация полезная информация полезная информация</div>
<!-- RICHT BLOK 1END-->
<!-- BODY CENTER BLOK -->
<div id="leftcol"> сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки</div>
<!-- END BODY CENTER BLOK -->
</body>
</html>

Link to comment
Share on other sites

  • 0

вот кстати код, который с css неполучается в мозиле. Это написано в файле css, который называется aa.css

<STYLE><!--
.bb{color: #8EB027; text-align: justify;text-indent: 20}-->
</STYLE>

это написано в файле html

<html>
<head>
<meta content="text/html; charset=Windows-1251"
http-equiv="content-type">
<title>........</title>
<!-- MENU -->
</style>
<LINK REL=STYLESHEET TYPE="text/css" HREF="aa.css">..........................................</head>
<body>........................<TD VALIGN=top ><div class=bb><p> сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки сайт на стадии разработки</div>.................</body></html>

Link to comment
Share on other sites

  • 0

Посмотрел... Советую Вам распечатать этот код, сжечь его, а пепел отправить в путешествие по канализации...

- это не комментарий css. Комментарий css выглядит так: /* LOGO */. Исправите - заработает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy