css 表单 - 边距/填充问题 - 包括代码和图像

Posted

技术标签:

【中文标题】css 表单 - 边距/填充问题 - 包括代码和图像【英文标题】:css form- issue with margin/padding-- code & image included 【发布时间】:2012-03-30 02:41:13 【问题描述】:

我遇到了 html/css 联系表单的问题。理想情况下,我希望“标签”和“输入”彼此水平,1px 边框底部从标签延伸到定义的端点(不是定义的宽度)。这可能吗?我错过了什么?

<div id="contact">
        <div id="invite">
            <h1>Let's Talk.</h1>
            <h2 class="postinfo">
                <p>Have you got a project needing an eye for detail and a creative touch? <br>I&#39;d love to hear from you. </p>
            </h2>
        </div><!-- end invite -->
        <form action="#" method="post">
            <fieldset>
                <label for="name"><h1>Name:</h1></label>
                <input type="text" id="name" placeholder="" />

                <label for="email"><h1>Email:</h1></label>
                <input type="text" id="email" placeholder="" />

                <label for="subject"><h1>Subject:</h1></label>
                <input type="subject" id="subject" placeholder="" />

                <label for="message"><h1>Message:</h1></label>
                <textarea id="message" placeholder=""></textarea>

                <input type="submit" value="Send" />
            </fieldset><!-- end fieldset -->
        </form><!-- end form -->
    </div><!-- end contact -->

#contact 
    float: left;
    margin-left: 300px;
    margin-top: 310px;
    width: 533px;

#invite .postinfo 
    list-style-type: none;
    margin-left: ;
    width: 150px;

#form 
    float: right;
    margin-top: -85px;
    margin-left: 230px; 

#form fieldset 
    border-style: none;
    margin-left: -50px;
    margin-top: -25px;

#form fieldset label 
    padding-right: 50px;

#form fieldset input 
    width: 300px;

http://i.stack.imgur.com/B6wF8.png

【问题讨论】:

呃,我错过了公告吗?最后我检查了任何版本的 HTML 中都没有 &lt;contact&gt; 元素。 是的 = 这是 html 而不是 xml。您的 CSS 假定存在称为“联系”和“邀请”的有效元素,但没有。使用带有 css 的分类 div 重构您的 html 以匹配。此外 - Hs 是块元素,如果您希望标签和输入对齐,则需要将其设置为“display:inline”,在这种情况下。另外 - 你有 4 个 H1,而在任何给定页面上都应该有一个。 代码已更改,问题仍然存在? 【参考方案1】:

我对您的代码进行了一些尝试,这就是我想出的:

这是您的 HTML:

<contact>
<form action="#" method="post">
        <fieldset>
            <div class="clear">
            <label for="name"><h1>Name:</h1></label>
            <input type="text" id="name" placeholder="" />
            </div>

            <div class="clear">
            <label for="email"><h1>Email:</h1></label>
            <input type="text" id="email" placeholder="" />
            </div>

            <div class="clear">
            <label for="subject"><h1>Subject:</h1></label>
            <input type="subject" id="subject" placeholder="" />
            </div>

            <div class="clear">
            <label for="message"><h1>Message:</h1></label>
            <textarea id="message" placeholder=""></textarea>
            </div>

            <div class="clear">
            <input type="submit" value="Send" />
            </div>
        </fieldset><!-- end fieldset -->
    </form><!-- end form -->
</contact><!-- end contact -->

这是你的 CSS:

body   font-family:arial,helvetica,sans-serif ;
    font-size:14px ;
    font-weight:bold ;


h1   font-size:16px ;
    margin:0 ;
    padding:0 ;


contact 
    float: left;
    margin-left: 300px;
    margin-top: 310px;
    width: 533px;

contact invite .postinfo 
    list-style-type: none;
    margin-left: ;
    width: 150px;


contact form 
    float: right;
    margin-top: -85px;
    margin-left: 230px; 


contact form fieldset 
    border-style: none;
    margin-left: -50px;
    margin-top: -25px;


contact form fieldset label  width:100px ;
    float:left 

contact form fieldset input  
    width: 200px;
    float:right ;


.clear   clear:both ;
    line-height:30px ;

您需要根据您使用的字体大小调整标签和输入宽度。

最好的,

辛西娅

【讨论】:

以上是关于css 表单 - 边距/填充问题 - 包括代码和图像的主要内容,如果未能解决你的问题,请参考以下文章

具有填充和边距以及 100% 宽度的 HTML CSS 框? [复制]

如何在 Photoshop 中测量/转换 CSS 文本边距/填充?

段落之间垂直间距的 CSS 框模型(边距和填充)

CSS 使用百分比和边距、填充或边框

为啥 CSS 中的边距/填充百分比总是根据宽度计算?

如何在 Xamarin 表单中将边距、填充、宽度和高度值转换为像素(px)?