代码之家  ›  专栏  ›  技术社区  ›  P.Brian.Mackey

部门浮动:左样式在asp容器中

  •  1
  • P.Brian.Mackey  · 技术社区  · 14 年前

    我正在使用ASP.NETAjax控件工具箱v3.5 TabContainer控件。任何时候我用这种风格”浮动:左“my tab container”放开它所包含的div,我的所有内容都显示在tab控件之外/与之断开连接(tab区域周围有一个黑色边框)。网上,有人说“设置”溢出:隐藏“有帮助,但这在TabContainer的上下文中似乎不起作用。它全毁在FF和IE里了。有人知道怎么解决这个问题吗?

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TabControl.aspx.cs" Inherits="WebApplication1.TabControl" %>
    
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager2" runat="server"/>
            <asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="2">
                <asp:TabPanel ID="TabPanel1" runat="server" HeaderText="TabPanel1">
                <ContentTemplate>
                <div>I'm all nice and pretty inside the tab</div><div>Me too I'm pretty inside tab, but I fall to the nextline.</div>
                </ContentTemplate>
                </asp:TabPanel>
                <asp:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel2">
                <ContentTemplate>
                <div style="float:left;">This is messed up on float</div><div style="float:left;">Watch as I fall onto the line</div>
                </ContentTemplate>
                </asp:TabPanel>
            </asp:TabContainer>
        </div>
        </form>
    </body>
    </html>
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   P.Brian.Mackey    14 年前

    这次真的很痛苦。因此,不能像“BorderStyle=0”那样将样式属性添加到TabContainer,因为它会忽略它们。相反,必须指定一个自定义样式类。哦,顺便说一下,这意味着您必须自定义整个Css样式,而不是重写单个类!!追求好的设计!!

    /* default layout */
    .ajax__tab_default .ajax__tab_header {white-space:nowrap;}
    .ajax__tab_default .ajax__tab_outer {display:-moz-inline-box;display:inline-block}
    .ajax__tab_default .ajax__tab_inner {display:-moz-inline-box;display:inline-block}
    .ajax__tab_default .ajax__tab_tab {margin-right:4px;overflow:hidden;text-align:center;cursor:pointer;display:-moz-inline-box;display:inline-block}
    
    /* xp theme */
    .ajax__tab_xp .ajax__tab_header {font-family:verdana,tahoma,helvetica;font-size:11px;background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-line.gif")%>) repeat-x bottom;}
    .ajax__tab_xp .ajax__tab_outer {padding-right:4px;background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-right.gif")%>) no-repeat right;height:21px;}
    .ajax__tab_xp .ajax__tab_inner {padding-left:3px;background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-left.gif")%>) no-repeat;}
    .ajax__tab_xp .ajax__tab_tab {height:13px;padding:4px;margin:0;background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab.gif")%>) repeat-x;}
    .ajax__tab_xp .ajax__tab_hover .ajax__tab_outer {background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-hover-right.gif")%>) no-repeat right;}
    .ajax__tab_xp .ajax__tab_hover .ajax__tab_inner {background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-hover-left.gif")%>) no-repeat;}
    .ajax__tab_xp .ajax__tab_hover .ajax__tab_tab {background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-hover.gif")%>) repeat-x;}
    .ajax__tab_xp .ajax__tab_active .ajax__tab_outer {background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-active-right.gif")%>) no-repeat right;}
    .ajax__tab_xp .ajax__tab_active .ajax__tab_inner {background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-active-left.gif")%>) no-repeat;}
    .ajax__tab_xp .ajax__tab_active .ajax__tab_tab {background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-active.gif")%>) repeat-x;}
    .ajax__tab_xp .ajax__tab_body {font-family:verdana,tahoma,helvetica;font-size:10pt;border:1px solid #999999;border-top:0;padding:8px;background-color:#ffffff;}
    
    /* scrolling */
    .ajax__scroll_horiz {overflow-x:scroll;}
    .ajax__scroll_vert {overflow-y:scroll;}
    .ajax__scroll_both {overflow:scroll}
    .ajax__scroll_auto {overflow:auto}
    

    既然已经有了原来的CSS样式,就需要更新CSS来删除 <%=WebResource 垃圾并指向您自己的图像(我也从Ajax源代码中获取了这些图像)。我在文件夹里搜索了一个叫做“tab”的文件-左.gif你还需要将“.ajax\uu tab\u xp”更改为“.CustomTabStyle”或指定为CssClass属性的任何名称:

    /* default layout */
    .ajax__tab_default .ajax__tab_header {white-space:nowrap;}
    .ajax__tab_default .ajax__tab_outer {display:-moz-inline-box;display:inline-block}
    .ajax__tab_default .ajax__tab_inner {display:-moz-inline-box;display:inline-block}
    .ajax__tab_default .ajax__tab_tab {margin-right:4px;overflow:hidden;text-align:center;cursor:pointer;display:-moz-inline-box;display:inline-block}
    
    /* xp theme */
    .CustomTabStyle .ajax__tab_header {font-family:verdana,tahoma,helvetica;font-size:11px;background:url(<%=WebResource("AjaxControlToolkit.Tabs.tab-line.gif")%>) repeat-x bottom;}
    .CustomTabStyle .ajax__tab_outer {padding-right:4px;background:url('../images/Tabs/tab-right.gif') no-repeat right;height:21px;}
    .CustomTabStyle .ajax__tab_inner {padding-left:3px;background:url('../images/Tabs/tab-left.gif') no-repeat;}
    .CustomTabStyle .ajax__tab_tab {height:13px;padding:4px;margin:0;background:url('../images/Tabs/tab.gif') repeat-x;}
    .CustomTabStyle .ajax__tab_hover .ajax__tab_outer {background:url('../images/Tabs/tab-hover-right.gif') no-repeat right;}
    .CustomTabStyle .ajax__tab_hover .ajax__tab_inner {background:url('../images/Tabs/tab-hover-left.gif') no-repeat;}
    .CustomTabStyle .ajax__tab_hover .ajax__tab_tab {background:url('../images/Tabs/tab-hover.gif') repeat-x;}
    .CustomTabStyle .ajax__tab_active .ajax__tab_outer {background:url('../images/Tabs/tab-active-right.gif') no-repeat right;}
    .CustomTabStyle .ajax__tab_active .ajax__tab_inner {background:url('../images/Tabs/tab-active-left.gif') no-repeat;}
    .CustomTabStyle .ajax__tab_active .ajax__tab_tab {background:url('../images/Tabs/tab-active.gif') repeat-x;}
    .CustomTabStyle .ajax__tab_body {font-family:verdana,tahoma,helvetica;font-size:10pt;border:0px solid #999999;border-top:0;padding:8px;background-color:#ffffff;float:left;}
    
    /* scrolling */
    .ajax__scroll_horiz {overflow-x:scroll;}
    .ajax__scroll_vert {overflow-y:scroll;}
    .ajax__scroll_both {overflow:scroll}
    .ajax__scroll_auto {overflow:auto}
    

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TabControl.aspx.cs" Inherits="WebApplication1.TabControl" %>
    
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <link href="css/Site.css" rel="stylesheet" type="text/css" />
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div style="float:inherit;">
        <asp:ToolkitScriptManager ID="ToolkitScriptManager2" runat="server"/>
            <asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="2" CssClass="CustomTabStyle">
                <asp:TabPanel ID="TabPanel1" runat="server" HeaderText="TabPanel1">
                <ContentTemplate>
                <div>I'm all nice and pretty inside the tab</div><div>Me too I'm pretty inside tab, but I fall to the nextline.</div>
                </ContentTemplate>
                </asp:TabPanel>
                <asp:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel2">
                <ContentTemplate>
                <div style="width:100px;">This is messed up on float<div style="float:left;">Watch as I fall onto the line</div></div>
    
                </ContentTemplate>
                </asp:TabPanel>
            </asp:TabContainer>
        </div>
        </form>
    </body>
    </html>
    

    很简单吧?呜呜。。。

        2
  •  0
  •   joe.liedtke    14 年前

    如果我没记错的话,我见过在某些浏览器中,当父元素没有设置float值时,元素在其父容器外浮动。这是一个在黑暗中拍摄点,但我建议添加 style="float:inherit" style="float:left" 到标签容器周围的div。

    希望这有帮助。。。