Кросс-браузерная проблема с вкладкой <div> - PullRequest
1 голос
/ 10 июня 2011

Я создал <div> элемент, я делаю показать / скрыть, что <div>, используя java-скрипт ..

, но проблема в том, что позиция этого элемента в разных браузерах меняется

JavaScript выглядит следующим образом

 <  script language="JavaScript" type="text/javascript">
var abc=false;
function showHide()
{
var a=document.getElementById("MainDiv");
var b=document.getElementById("myTestDiv");

if(abc==false)
{
abc=true;
b.style.top = a.offsetTop;
b.style.left = a.offsetParent;
b.style.display = "inline";
}
else{
abc=false;
b.style.display = "none";
}
}
</script>

HTML выглядит следующим образом

 <div id="myTestDiv" style="border: 2px solid rgb(100, 149, 237); color:#23238e; background-color:#FFFFFF; position:absolute; width:14%; height:17%; display:none" >

Ответы [ 3 ]

1 голос
/ 10 июня 2011

Почему b.style.left = a.offsetParent;? https://developer.mozilla.org/en/OffsetParent

Я думаю, что вы хотите b.style.left = a.offsetLeft;. В любом случае, почему вы используете JavaScript для этого? Разве вы не можете установить position: relative; из MainDiv и top: 0; left: 0; из myTestDiv?

0 голосов
/ 10 июня 2011

Вы не предоставили достаточно информации здесь, но я все равно сделаю несколько предположений ..

b.style.display = "inline";

Вместо inline вы, вероятно, хотите установить его на block, что с учетом того, что div s являются элементами уровня блока.

Что-то еще попробовать, добавить px:

b.style.top = a.offsetTop + "px";
b.style.left = a.offsetParent + "px";

Кроме того, убедитесь, что у вас есть правильный тип документа в качестве самой первой строки :

<!DOCTYPE html>

Без этого Internet Explorer, в частности, будет безнадежно сломан.

0 голосов
/ 10 июня 2011

Пожалуйста, попробуйте установить BluePrint CSS Framework и повторите попытку снова!

Или предоставьте нам дополнительную информацию о вашей проблеме ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...