Элемент управления ASP.NET 4.0 - Почему отображаемый элемент <div>не действует как обычный элемент блока и не заполняет ширину родительского элемента? - PullRequest
0 голосов
/ 22 августа 2010

Название задает вопрос.Вот сценарий:

Вы создаете сайт с ASP.NET 4.0 / C #, хотя для этого примера подходит только один xml.Сайт будет иметь карту сайта и страницу по умолчанию с элементом управления меню следующим образом:

Web.sitemap

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/default.aspx" title="Home"  description="">
    <siteMapNode url="~/1.aspx" title="Link 1" description="" />
    <siteMapNode url="~/2.aspx" title="Link 2"  description="" />
    <siteMapNode url="~/3.aspx" title="Link 3"  description="" />
    <siteMapNode url="~/4.aspx" title="Link 4" description="" />
    <siteMapNode url="~/5.aspx" title="Link 5" description="" />
  </siteMapNode>
</siteMap>

Web.config

<?xml version="1.0"?>
  <configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.0"/>
      <pages theme="Default" clientIDMode="AutoID">
      </pages>
    </system.web>
  </configuration>

Default.aspx
Примечание. Отображается только содержимое элемента <form>.

<asp:Menu 
  ID="navMenu" 
  DataSourceID="srcSiteMap"
  StaticEnableDefaultPopOutImage="false"
  RenderingMode="list"
  CssClass="navMenu"
  runat="server"> 
</asp:Menu>
<asp:SiteMapDataSource ID="srcSiteMap" runat="server" 

ShowStartingNode = "false" />

StyleSheet.css
_Примечание: Этот файл включен в ~/App_Themes/Default/ и указан в

Web.config._

body {
width:800px;
margin:0px auto;
}
.navMenu {
background-color:Yellow;
}

При использовании этих файлов механизм asp.net 4.0 продолжит отображать столбец неработающих ссылок.Я не могу объяснить, почему этот столбец имеет ширину только самой широкой ссылки, а не ширину тела элемента размером 800 пикселей.Даже если для класса .navMenu css указано width:auto;, это так и остается.Однако, если вы укажете width:100%; или width:800px;, это решит проблему, какой бы она ни была.

Теперь я едва ли являюсь мастером CSS или движком asp.net, но смотрю наисточник страницы, я просто не могу найти никакого объяснения.Возможно, я упускаю из виду очевидное, но во имя науки я надеюсь узнать правду!Если кто-то найдет время для создания нового решения для визуальной студии или просто узнает, что у него в голове, я буду признателен.

1 Ответ

1 голос
/ 22 августа 2010

Это проблема в вашей программе создания .net (например, Visual Studio) или в браузере? Если это не проблема в браузере, то это должна быть собственная таблица стилей программы

не видя вывод html, это немного сложно, но я подозреваю, что у вас будет что-то вроде:

<html>
  <body>
    <form>
      <ul class="navMenu">
      </ul>
    </form>
  </body>
</html>

с использованием firebug или чего-то подобного, я бы проверил, какой самый высокий элемент в уровне с небольшой шириной. Я подозреваю, что элемент формы каким-то образом упакован в термоусадочную пленку (он отображается: inline? Floated?)

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