2011-01-20 5 views
1

В asp.net, как мне получить высоту элемента управления в соответствии с его процентом?Получение ширины элемента управления ASP.NET

я могу получить свойство ширины, но я поставил его на 100%, и мне нужны реальные пиксели

мне нужно, так что я могу настроить свой веб-сайт в соответствии с resulotion компьютера. (Это может быть любая панель управления, div и т. Д.)

+3

Веб-сервер не знает, что такое разрешение клиентов. Я не думаю, что это возможно из-за какого-то ужасного взлома javascript. – fearofawhackplanet

+0

@fearofawhackplanet, вы можете легко сделать это с помощью прогрессивных методов совершенствования: http://html5boilerplate.com/ Я также рекомендовал бы эту книгу для http://amzn.to/eXHapo – IrishChieftain

ответ

1

Просто войдите в свойство высоты элемента управления (из коробки) в пикселях. Вычислите отношение этой ширины, разделенное на ширину его контейнера на странице, и произведите это число в процентах.

Например:

(myControl.height/myPanel.height)/100 + "%";

Однако, это не способ создать веб-страницу, чтобы играть красиво в браузерах разного размера. В зависимости от того, какой тип управления вы используете, это может стать настоящим беспорядочным, и я просто говорю об этом здесь. Используйте фиксированную ширину для этого и вашего контейнера. Постепенно улучшайте свой сайт с помощью CSS и JS, если вам нужно.

С риском получения жареных я собираюсь сказать следующее: НИКОГДА не используйте жидкие макеты - они меняют соотношение макета и разрушают состав страницы. Использование жидкостных макетов всегда заканчивается тем, что вам необходимо применить код для изменения соотношения изображения/высоты ваших изображений по отношению к их контейнеру - и это всегда приводит к потере качества изображения и/или плохой композиции страницы.

0

Я считаю, что это не возможно на стороне сервера, так как:

  • Схема вывода не изменяется до фазы рендеринга. Раньше эти оценки были бы неправильными/вводящими в заблуждение, и, следовательно, имхо, если бы они существовали, они были бы плохими.
  • макет и фактические пиксели зависят от настроек браузера и интерпретации стандарта HTML. Несмотря на то, что ASP.NET имеет некоторые знания о различиях браузеров, у нее нет прямой информации о браузере, и не содержит всех механизмов рендеринга.

Проценты перенаправлены на механизм рендеринга браузеров, я сомневаюсь, что стандартные элементы управления ASP.NET вообще ничего не имеют с конкретными значениями.

+0

Если элементы управления (серверные) созданные в начале жизненного цикла страницы, их свойство высоты можно легко установить. – IrishChieftain

+0

Не повсеместно. Кроме того, высота может и должна зависеть от многих вещей, которые происходят позже, включая данные (serveride), браузер (клиентский рендеринг) и пользователя (resolutio, user css override). Тот факт, что вы можете сказать, что для некоторого элемента управления должен быть N px, не означает, что он будет точно равен N px на клиенте. Опираясь на него, он просит неприятностей. –

Смежные вопросы