Как «закрепить» элемент управления Silverlight

Есть ли способ «закрепить» элемент управления Silverlight в окне браузера? Например, я хотел бы иметь заголовок HTML в верхней части страницы, а затем, чтобы элемент управления Silverlight занимал точно остальную часть окна, аккуратно изменяя размер при изменении размера окна.

Страница по умолчанию, которую создает Visual Studio, использует стили со 100% шириной и высотой, чтобы элемент управления Silverlight занимал все окно. И я могу легко изменить этот шаблон, чтобы разделить страницу по процентам (скажем, 20% заголовка HTML и 80% элемента управления Silverlight). Но на самом деле я хочу, чтобы высота заголовка была статической, а элемент управления Silverlight занимал 100% оставшегося окна.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
2 278
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы по-прежнему можете использовать свой CSS для этого. Просто сделайте свой заголовок DIV желаемого размера, а затем контейнер DIV для элемента Silverlight будет 100% / 100%.

Я пробовал это, но 100% высота, кажется, означает 100% высоты содержащего элемента, а не 100% высоты содержащего элемента минус заголовок div. Таким образом, конечным результатом является вертикальная полоса прокрутки, потому что элемент управления Silverlight слишком велик точно по высоте div заголовка.

C. Dragon 76 04.12.2008 00:58

Если я неправильно понял ваше предложение, и вы можете выполнить эту работу, не могли бы вы привести быстрый пример?

C. Dragon 76 04.12.2008 00:59
Ответ принят как подходящий

Вот решение на JavaScript. Сначала вы создаете эту функцию:

<script type = "text/javascript">
    function resizeSLHost()
    {
        var docHeight = document.body.offsetHeight;
        var pluginHeight = docHeight - 130;
        var slplugin = document.getElementById("silverlightControlHost");
        slplugin.style.height = pluginHeight + "px";
    }
</script>

Затем в открывающем теге body вы говорите:

<body onload = "resizeSLHost()" onresize = "resizeSLHost()">

И вы помещаете свой div заголовка прямо перед div хоста Silverlight:

<div id = "header" style = "height:130px"></div>
<div id = "silverlightControlHost">
    <object data = "data:application/x-silverlight-2" type = "application/x-silverlight-2" width = "100%" height = "100%">
        // the usual stuff here...
    </object>
    <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>

Конечно, число, которое вы вычитаете из docHeight в resizeSLHost (), должно быть равно высоте заголовка div.

, что у меня работало в IE 7 и Firefox 3.0.4.

Другие вопросы по теме