Подтвердить что ты не робот

Почему этот div/img не будет находиться в IE8?

У меня есть очень простая страница для холдинга, в которой я построил центрирование div, привязки и изображения. По какой-то причине он не будет сосредоточен в IE8 (в любом режиме), и я надеюсь, кто-то скажет мне, почему. У меня не было возможности попробовать его в других браузерах IE. Я пробовал это в Chrome и FF3, где он работает нормально.

<html>
<head>
<title>Welcome</title>
<style>
    #pageContainer {width:300px;margin:0 auto;text-align:center;}
    #toLogo{border:none; }
</style>
</head>
<body>
    <div id="pageContainer">
    <a href="#" onclick="location.href='http://portal.thesit.com'; return false;" id="toSite"><img src="LOGO_DNNsmall.png" id="toLogo"></a>
    </div>
</body>
</html>

Я сказал, что это действительно просто.:)

Спасибо,

Бретт

4b9b3361

Ответ 1

Вы действительно хотите, чтобы ваша страница работала в режиме quirks? Ваши HTML-центры прекратились, как только я добавил doctype для принудительного режима стандартов:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<title>Welcome</title>
<style>    
    #pageContainer {width:300px;margin:0 auto;text-align:center;}    
    #toLogo{border:none; }
</style>
</head>

<body>

<div id="pageContainer">
    <a href="http://portal.thesit.com" id="toSite">
    <img src="http://stackoverflow.com/content/img/so/logo.png" id="toLogo"></a> </div>

</body>
</html>

Ответ 2

Поля auto по сторонам div оставляют его в браузере, чтобы решить, куда он идет. В браузере ничего не говорится о том, что div должен быть центрирован в теле или влево или вправо. Так это до браузера. Если вы добавите директиву в тело, ваша проблема будет решена.

<html>
  <head>
    <title>Welcome</title>
    <style>
      body { text-align: center;}
      #pageContainer {width:300px; margin:0px auto;
            text-align:center; border:thin 1px solid;}
      #toLogo{border:none; }
    </style>
  </head>
  <body>
    <div id="pageContainer">
      <a href="http://portal.thesit.com" id="toSite">
        <img src="LOGO_DNNsmall.png" id="toLogo">
      </a>
    </div>
  </body>
</html>

Я добавил границу 1px в div, чтобы вы могли видеть, что происходит более четко.

Вы оставляете его в браузере, потому что он в режиме quirks. Чтобы удалить режим quirks, добавьте определение doctype в начало, например:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>Welcome</title>
    <style>
      #pageContainer {width:300px; margin:0px auto;
            text-align:center; border:thin 1px solid;}
      #toLogo{border:none; }
    </style>
  </head>
  <body>
    <div id="pageContainer">
      <a href="http://portal.thesit.com" id="toSite">
        <img src="LOGO_DNNsmall.png" id="toLogo">
      </a>
    </div>
  </body>
</html>

Теперь вы сможете увидеть свой центр 300 px div на странице.

Ответ 3

Добавить text-align:center в тело. Это должно быть сделано в сочетании с margin:0 auto на div.

Вы можете центрировать, не используя text-align:center на теле, путем обертывания всего содержимого страницы в контейнере полной ширины и затем установки text-align:center на этом.

<html>
<head>
<title>Welcome</title>
<style>
    #container {text-align:center;border:1px solid blue}
    #pageContainer {width:300px; margin:0 auto; border:1px solid red}
    #toLogo{border:none; }
</style>
</head>
<body>
    <div id="container">
        <div id="pageContainer">
        <a href="http://portal.thesit.com" id="toSite"><img src="LOGO_DNNsmall.png" id="toLogo"></a>
        </div>
    </div>
</body>
</html>

(я добавил div container). Это ничего не меняет, хотя... просто дополнительный div. Вам все равно нужны все те же свойства css.

Ответ 4

Вероятно, вы захотите изменить его на следующее:

<html>
<head>
<title>Welcome</title>
<style>
    body { text-align: center; }
    #pageContainer {width:300px;margin:0 auto;}
    #toLogo{border:none; }
</style>
</head>
<body>
    <div id="pageContainer">
    <a href="http://portal.thesit.com" id="toSite"><img src="LOGO_DNNsmall.png" id="toLogo"></a>
    </div>
</body>
</html>

text-align:center; перемещается в тело. Если вы хотите поместить другое выровненное левое содержимое в div #pageContainer, вам понадобится text-align:left; для этого класса. Это решение, которое я использовал сейчас на нескольких веб-сайтах и, похоже, работает во всех браузерах (это то, что Dreamweaver использует в нем стартовые шаблоны).

Ответ 5

ДЛЯ ПОЛЬЗОВАТЕЛЕЙ BLUEPRINT Это заставило мои орехи, пока я не нашел это сообщение: проблема с ie8 и планом Короче говоря, в коде html измените

 <!--[if IE]>
 <link rel="stylesheet" href="../css/blueprint/ie.css" type="text/css" media="screen, projection" /> 
<![endif]--> 

для

<!--[if lt IE 8]>
<link rel="stylesheet" href="../css/blueprint/ie.css" type="text/css" media="screen, projection" />
<![endif]-->

Отношения Alex

Ответ 6

Это работает для меня на IE6,7,8, FF 3.6.3:

    #container
    {
        width:100%;
    }

    #centered
    {
        width:350px;
        margin:0 auto;
    }

и

    <div id="container">
        <div id="centered">content</div>
    </div>