0

HTMLはあまりしません。しかし、私はWinFormsのように正確な方法でフォームをレイアウトする必要があります。とにかくここに私が知っている小さなCSSとHTMLを使用する私の最善の試みがあります:

ここに画像の説明を入力してください

問題は、白い領域内のすべてが完全にレイアウトされていることです...したがって、新しいコンテンツを追加するたびに、周囲のすべての要素を微調整して一緒に再生する必要があります。また、ASP.NETコードビハインドからチェックボックスリストの内容を入力しているため、アイテムの数が常にわからないため、白いボックスが短すぎる場合があります...CSSで新しい高さを手動で修正することでこれを修正します...ご存知のように悪い方法です。

私がこれをどのように行うべきか教えていただけます

CSS:

body
{
    margin: 0px;
    font-family: sans-serif;
    font-size: 13px;
    color: #111;
    background: #c4c4c4 url("bgd.jpg");
}

#header
{
    height: 80px;
    background-color: #333;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
    box-shadow: inset 0 -5px 10px rgba(0, 0, 0, 0.25), 0 1px 1px rgba(255, 255, 255, 0.3);
}

#wrapper
{
    padding: 20px 20px 20px 20px;
    height: auto;
}

#footer
{
    height: 40px;
    background-color: #333;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
    box-shadow: inset 0 -5px 10px rgba(0, 0, 0, 0.25), 0 1px 1px rgba(255, 255, 255, 0.3);
}

#copyright
{
    font-size: smaller;
    position: relative;
    top: 13px;
    color: #eee;
    text-shadow: 1px 1px #666;
    text-align: center;
}

.block
{
    margin: 0 auto;
    width: 440px;
    background-color: white;
    border-radius: 6px;
    box-shadow: 3px 3px 3px #888888;
}

.block > *
{
    position: relative;
}

#login
{
    width: 215px;
    height: 170px;
}

#login h2
{
    background: #353;
}

#controlpanel
{
    width: 235px;
    height: 175px;
}

#controlpanel h2
{
    background: rgb(165,0,0);
}

#options
{
    width: 273px;
    height:auto;
}

#options h2
{
    background: royalblue;
}

.block h2
{
    padding: 10px 15px;
    color: white;
    background: #261F1F;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

h1, h2, h3
{
    color: #111111;
    margin: 0px;
}

h1
{
    color: white;
    position: absolute;
    top: 15px;
    left: 15px;
    font-size: 40px;
}

h2
{
    font-size: 22px;
}

a:link, a:visited, a:hover, a:active
{
}

a
{
    -moz-outline: none;
}

hr
{
    background: #dddddd;
    color: #dddddd;
}

.button
{
    font-weight: bold;
    font-size: 11px;
    height: 27px;
    color: #111111;
    padding: 2px 5px;
    background: url('btnbgd.png') top;
    border: 1px solid #C3C4BA;
    border-radius: 3px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.textbox
{
    height: 25px;
    padding: 0px 3px 0px 3px;
    margin: 0;
    border: 1px solid #DDD;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}

.label
{
    text-shadow: 2px 2px 2px #eee;
}

select 
{
    border: 1px solid #C3C4BA;
    border-radius: 3px;
    height: 25px;
}

.groupbox
{
    text-shadow: 2px 2px 2px #eee;
    left: 12px;
    width: 250px;
}

fieldset 
{
    border-radius: 3px;
}

.groupbox legend
{
    text-shadow: none;
    padding: 2px 4px 2px 4px;
    color: white;
    background-color: #C3C4BA; 
    border-radius: 3px;
}

#MainContentPlaceHolder_pnlXRefs legend
{
    text-shadow: none;
    padding: 2px 4px 2px 4px;
    color: white;
    background-color: red; 
    border-radius: 3px;
}

.footer
{
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    height: 40px;
    background-color: #575654;
}

HTML:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Options.aspx.cs" Inherits="Portal.Options"
    MasterPageFile="Portal.Master" Title="Price File Options" %>

<asp:Content runat="server" ContentPlaceHolderID="MainContentPlaceHolder">
    <div class="block" id="options">
        <h2>
            Options</h2>
        <asp:Label runat="server" Text="Acc No :" Style="top: 15px; left: 15px;" CssClass="label" />
        <asp:TextBox ID="txtAccNo" runat="server" Style="top: 15px; left: 15px; width: 110px"
            CssClass="textbox" />
        <asp:Button ID="btnGetColours" Style="top: 15px; left: 15px" CssClass="button" runat="server"
            Text="Refresh" onclick="btnGetColours_Click" />
        <asp:Panel ID="pnlBrembo" runat="server" GroupingText="BREMBO" Style="top: 25px;"
            CssClass="groupbox">
            <asp:CheckBoxList ID="lstBrembo" runat="server" />
        </asp:Panel>



        <asp:Label ID="Label1" runat="server" Text="Email :" Style="top: 85px; left: 15px;" CssClass="label" />
        <asp:TextBox ID="txtEmail" runat="server" Style="top: 85px; left: 24px; width: 185px"
            Text="a@b.com" CssClass="textbox" />

        </br>
        <asp:Button ID="btnGenerate" Style="top: 100px; left: 12px" CssClass="button" runat="server"
            Text="Generate & Send" OnClick="btnGenerate_Click" />
    </div>
</asp:Content>

更新1:

高さを取った後:2000px; ホワイトボックスの自動に変更しても、下部にあるいくつかのコントロールがホワイトボックスから押し出されます。

ここに画像の説明を入力してください

4

3 に答える 3

0

height:auto内側のブロックdivに追加します。

デモ

上記のデモでリスト項目を削除/追加することで高さの変化を確認できます/

于 2012-10-24T09:43:46.890 に答える
0

デフォルトでは、チェックボックスはインラインで表示されます (つまり、並べて表示されます) display: block;。明示的に設定する必要があります。

これを行うには、各チェックボックス フィールドを独自の div でラップし、それをスタイルしてブロックとして表示します。

これが実際の例です: http://jsfiddle.net/alexpls/Yr87Z/

CSSdisplayプロパティに関する情報は次のとおりです: http://www.w3schools.com/cssref/pr_class_display.asp

于 2012-10-24T09:58:01.693 に答える
0

フロートを再設計して使用する必要があります。フロートを使用すると、ページ上のアイテムの量が静的でない場合に制御がはるかに簡単になります。

私はあなたができることを示すjsFiddleを作成しました。#itemdiv を何度でもコピーして貼り付ければ、配置は問題ないはずです

于 2012-10-24T09:59:40.557 に答える