如何在不使用表格的情况下在VS2010中布局页面?

时间:2010-12-31 05:25:23

标签: html css asp.net-mvc model-view-controller layout

自从HotDog pro& amp;记事本,当然使用表格布局。我最终准备好只使用div,li,CSS作为布局,但我的问题是,在VS2010中布局页面的正确方法是什么?

当我使用表格布局时,它很简单,我可以在视觉上看到我创建的内容和元素的位置,例如下面的示例 - 我应该如何在VS2010中使用div等来做到这一点?

<table width="300" border="0" cellpadding="5">
  <tr>
    <td><img src="http://assets.devx.com/MS_Azure/azuremcau.jpg" alt="blah" width="70" height="70" /></td>
    <td><h2>This is some text to the right of the picture...</h2></td>
  </tr>
  <tr>
    <td colspan="2">Here some text underneath</td>
  </tr>
</table>

5 个答案:

答案 0 :(得分:4)

我想说你应该学习Css并使用div等来布局页面。 在我看来,你不应该使用任何WYSIWYG并从头开始编写标记,如果你知道如何,它也同样快。 或者如果你想要一个好的基本css框架来以类似网格的方式处理布局,那么试试960 Grid System

至于看你正在做什么,我会说最简单的使用。在webbrowser中打开网站并点击刷新。

答案 1 :(得分:0)

以下是ASP.NET MVC中使用Blueprint CSS framework

的母版页的示例

它有两列彼此相邻,下面有一个页脚。

 <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

    <head runat="server">
        <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>

        <asp:ContentPlaceHolder ID="MetaDescription" runat="server" >
        </asp:ContentPlaceHolder>

        <asp:ContentPlaceHolder ID="MetaKeywords" runat="server">
        </asp:ContentPlaceHolder>

        <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> 


         <asp:ContentPlaceHolder ID="HeadContent" runat="server"/>

    </head>

    <%=Html.Flash() %>

    <body>
        <div id="flash" style="display:none"></div>

        <div class="container">

            <div id="main" class="span-24 last">

                <div class="span-5">

                    <div id="logo">

                    </div>

                    <% Html.RenderAction("MainMenu", "Cms"); %>

                </div>


                 <div class="span-19 last">

                    <div id="headerTekst">
                        <div class="padding-30">
                            <h1 class="right uppercase">Some text</h1>
                        </div>
                    </div>

                    <div class="padding-10">
                        <asp:ContentPlaceHolder ID="MainContent" runat="server" />
                     </div>
                 </div>

                <div class="clear"></div>  
            </div>



            <div id="footer" class="span-24 last">

            </div>
    </div>  


    </body>

    </html>

答案 2 :(得分:0)

要编写HTML代码,您绝对不应该在所有Visual Studio中使用。请改用 Dreamweaver

设计页面的布局时,使用设计视图比使用Visual Studio更好的Adobe Dreamweaver工具。

当需要对页面进行编程以使其成为动态时,应该打开IDE 并编写代码。

答案 3 :(得分:0)

对于布局,我将FirefoxFireBug插件一起使用。它为您提供实时反馈。它没有变得更好。一旦我拨打了更改,我将更改复制到项目中的html或css。

WYSIWYG程序很好。这就是我学习的方式。像其他一切一样,最终你会想知道幕后发生了什么。

答案 4 :(得分:0)

如果您需要使用支持HTML 4.01的浏览器,请使用div,但如果您的布局过于复杂,最终会被div soup限制并理解您的标记并进行更改将变得很麻烦。

如果您可以使用支持HTML 5的现代浏览器(或添加各种hacks以使其正常工作),我会采用这种方式,因为您的标记将具有更多的语义含义并且更容易理解。而不是像这样制作导航:

<div class="nav">
   <ul>
       <li>Home</li>
       <li>About</li>
   </ul>
</div>

您可以使用HTML5:

<nav>
    <ul>
       <li>Home</li>
       <li>About</li>
   </ul>
</nav>

或者如果你发布博客而不是这样做:

<div class="post">
<h1>Example Blog Post</h1>
   <div class="entry">
      <p>Blog text goes here...</p>
   </div>
   <div class="entryFooter">
      <p> Posted in example category.</p>
   </div>
</div>

你会这样写:

<article>
   <header>
      <h1>Example Blog Post</h1>
   </header>
   <p>Blog text goes here...</p>
   <footer>
      <p>Posted in example category.</p>
   </footer>
</article>

正如您所看到的,它更容易理解,并且仍然提供您正在寻找的表格结构。

然后定位所有你想要的东西我会使用CSS3,但如果你需要支持旧浏览器再使用CSS2。

要在VS2010中执行此操作,只需打开.aspx或.ascx页面并开始编写标记。我发现像Dreamweaver这样的产品在使用设计器界面时会产生垃圾标记,所以最好的办法是自己手工编写。

此外,如果您确实使用HTML5路线并想要在VS2010中进行智能感知,那么这里有一个addon