Css 左侧边距和宽度的Div:右侧100%溢出

Css 左侧边距和宽度的Div:右侧100%溢出,css,html,margin,Css,Html,Margin,我有两个嵌套div,应该是100%宽。不幸的是,带有文本框的内部div溢出,实际上比外部div大。它有一个左边距,溢出的边距约为边距的大小 我怎样才能解决这个问题 <div style="width:100%;"> <div style="margin-left:45px; width:100%;"> <asp:TextBox ID="txtTitle" runat="server" Width="100%"></asp:TextBox&

我有两个嵌套div,应该是100%宽。不幸的是,带有文本框的内部div溢出,实际上比外部div大。它有一个左边距,溢出的边距约为边距的大小

我怎样才能解决这个问题

<div style="width:100%;">
    <div style="margin-left:45px; width:100%;">
    <asp:TextBox ID="txtTitle" runat="server" Width="100%"></asp:TextBox><br />
    </div>
</div>


如果我没有做到100%,那么文本框就不是100%宽。


<div style="width:100%;">
    <div style="margin-left:45px;">
       <asp:TextBox ID="txtTitle" runat="server" Width="100%"></asp:TextBox><br />
    </div>
</div>


只需删除两个div的宽度即可

div
是块级元素,将使用所有可用空间(除非您开始浮动或定位它们),因此外部div将自动为100%宽,内部div将在设置左边距后使用所有剩余空间

我添加了一个启用了
textarea
的示例


使用输入。

如果布局的其他部分影响
div
宽度,则可以设置
宽度:auto
,并且
div
(是块元素)将填充空间

<div style="width:auto">
    <div style="margin-left:45px;width:auto">
        <asp:TextBox ID="txtTitle" runat="server" Width="100%"></asp:TextBox><br />
    </div>
</div>



如果这仍然不起作用,我们可能需要看到更多的布局HTML/CSS

div是块元素,默认情况下为100%宽。您只需将textarea宽度设置为100%。

在头部或外部文档中添加一些css。asp:TextBox作为输入呈现:

input {
     width:100%;
}
您的html应该如下所示:

注意,这将影响所有文本框:如果您不希望这样,请为包含的div指定一个类并指定css

.divClass input {
     width:100%;
}

我意识到这是一篇老文章,但这可能会让一些人受益,他们和我一样,是通过谷歌搜索来到这个页面的,现在已经不知所措了

这里给出的其他答案都不适用于我,我已经放弃了希望,但今天我正在寻找另一个与divs类似的问题的解决方案,我发现这个问题多次得到了回答。这个被接受的答案对我的div有效,我突然想到要在我上一期的文本框中尝试它——它成功了! 解决方案:

将框大小:边框框添加到文本框的样式中

要使用CSS将其添加到所有多行文本框中,请将以下内容添加到样式表中:

textarea
{
  box-sizing: border-box;
}
感谢thirtydot在


“关于边距的大小”-我打赌边距的大小是准确的:)如果我去掉宽度,那么文本框会保持小,例如不会变成100%。@Remy我不熟悉asp,但是如果你正在生成
文本区域
输入
,你可以使用css将宽度设置为100%。实际上就是这样。但是如果我不添加宽度部分,它周围的div将不是100%。@Remy生成的html是什么样子的?顺便说一句,我添加了一个示例。asp.net控件
将呈现接近
的内容。如果我这样做,文本框将不会填充整个区域。在JSFIDLE中工作正常。也许你的asp属性是错误的,试着改用css。必须去掉div上的float:left。它隐藏在css中。实际上,在css的深处div上有一个float:left。不知道为什么我错过了。