Проблема CSS с положением компонента silverlight. Не могу установить желаемую высоту - PullRequest
1 голос
/ 18 сентября 2010

Я хочу сделать простую страницу контента с Silverlight со следующими требованиями: Страница должна содержать:

  1. верхнее пространство для баннеров (html)
  2. центр - компонент Silverlight. и он растянется до нужной страницы.
  3. нижнее пространство для баннеров (html)

Выглядит довольно просто, но я столкнулся с проблемой с Internet Explorer 8. Компоненты Silverlight имеют небольшие размеры и не растягиваются. В других браузерах работает нормально.

Стили:

<style type="text/css">
    html, body
    {
        height: 100%;
        overflow: auto;
    }
    body
    {
        padding: 0;
        margin: 0;
    }
    #silverlightControlHost
    {
        height: 100%;
        text-align: center;
    }
</style>

HTML:

<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" style="overflow: hidden;
    height: 100%; width: 100%;">
    <table  frame="none" cellpadding="0" cellspacing="0" style="height: 100%; width: 100%; border:0px solid White;
        padding: 0px;">
        <tr style="background-color: Red; height: 30px; width: 100%;">
            <td>
            </td>
        </tr>
        <tr style="background-color: Blue; height: 100%; width: 100%;">
            <td>
                <div id="silverlightControlHost" style="height: 100%; width: 100%; background-color: Black;">
                              <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
                    width="100%" height="100%">
                    <param name="source" value="ClientBin/test.xap" />
                    <param name="onError" value="onSilverlightError" />
                    <param name="background" value="white" />
                    <param name="minRuntimeVersion" value="4.0.50401.0" />
                    <param name="autoUpgrade" value="true" />
                    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration: none">
                        <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Получить Microsoft Silverlight"
                            style="border-style: none" />
                    </a>
                </object>
                <iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px;
                    border: 0px"></iframe>
                </div>
            </td>
        </tr>
        <tr style="background-color: Red; height: 30px; width: 100%;">
            <td>
            </td>
        </tr>
    </table>
</body>

Chrome (отлично работает):

alt text

IE8 (не очень хорошо):

alt text

Что с ним не так? Как это исправить?

1 Ответ

2 голосов
/ 18 сентября 2010

Я бы не использовал таблицы для макета, но это только я:)

Во-первых, я бы создал промежуточный блок для макета, два блока для верхней и нижней частей и промежуточный элемент хоста управления silverlight,как

<div id="container">
    <div id="top">
    </div>
    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
            width="100%" height="100%">
            <param name="source" value="ClientBin/SilverlightApplication1.xap" />
            <param name="onError" value="onSilverlightError" />
            <param name="background" value="white" />
            <param name="minRuntimeVersion" value="4.0.50826.0" />
            <param name="autoUpgrade" value="true" />
        </object>
        <iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px; border: 0px"></iframe>
    </div>
    <div id="bottom">
    </div>
</div>

, что вам нужно сделать, это переключить положение в абсолютное значение в классе silverlightControlHost и выровнять элемент управления так, чтобы он растягивался по странице, оставляя пространство сверху и снизу для ваших html-контейнеров div что-то вроде

#silverlightControlHost 
{
    position: absolute;
    top:30px;
    bottom:30px;
    left:0px;
    right:0px;
    text-align:center;
}

и вот классы CSS для других div'ов

#top
{
   height:30px;
   width:100%;
}

#bottom{
   height:30px; 
   width:100%;
   bottom:0px;
   position:absolute;
} 

#container
{ 
    height: 100%;
    width:100%;
}

Надеюсь, что поможет

РЕДАКТИРОВАТЬ

он был обнаруженэто дно не было расположено к низу :)

#bottom{
   height:30px; 
   width:100%;
   bottom:0px;
   position:absolute;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...