Html 如何为输入框设置CSS样式';当它有边框和填充时,宽度的百分比是多少?

Html 如何为输入框设置CSS样式';当它有边框和填充时,宽度的百分比是多少?,html,css,forms,Html,Css,Forms,如果容器的宽度为500px,标签的宽度为30%,输入框的宽度为70%,那么所有东西都应该适合,但问题是输入框的左右边框为4px,左右填充为2px,使其比实际宽度宽6px 我们可以通过使宽度不是70%,而是68%或其他方式来解决它,但这有点粗糙。有办法处理吗?(我们不能进行CSS重置,因为输入框通常需要一个边框,假设我们不使用outline对其进行攻击,outline不占用任何空间) CSS: #my-container { width: 500px } #first-name-label { d

如果容器的宽度为500px,标签的宽度为30%,输入框的宽度为70%,那么所有东西都应该适合,但问题是输入框的左右边框为4px,左右填充为2px,使其比实际宽度宽6px

我们可以通过使宽度不是70%,而是68%或其他方式来解决它,但这有点粗糙。有办法处理吗?(我们不能进行CSS重置,因为输入框通常需要一个边框,假设我们不使用outline对其进行攻击,outline不占用任何空间)

CSS:

#my-container { width: 500px }
#first-name-label { display: inline-block; width: 30% }
#first-name { display: inline-block; width: 70% }
以下是一些例子:

  • 外径:356(用于输入框,如调试控制台中所示)
  • 外径351
  • 外径349
  • 外径349
  • 不会自动换行,但输入框将自动换行 超出容器宽度

  • 像这样的怎么样:


    像这样的怎么样:


    像这样的怎么样:


    像这样的怎么样:


    宽度不准确的原因是它们被设置为
    框大小:内容框
    ,这是框大小的默认设置。在CSS中计算
    宽度
    高度
    时,在
    宽度
    高度
    的外侧计算
    边框
    填充
    ,即使设置为
    宽度:100%,也会增加额外的空间。为了解决这个问题,只需将带有边框的元素设置为
    box size:border-box。这将使边框和填充位于宽度和高度计算的内部

    试试这个:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    或者如果您想更具体地只使用文本输入,请尝试以下操作:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    CSS语法:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    浏览器支持:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    如果您想了解更多这方面的信息,可以在此处找到一篇关于盒子大小的内容丰富的文章:


    宽度不准确的原因是它们被设置为
    框大小:内容框
    ,这是框大小的默认设置。在CSS中计算
    宽度
    高度
    时,在
    宽度
    高度
    的外侧计算
    边框
    填充
    ,即使设置为
    宽度:100%,也会增加额外的空间。为了解决这个问题,只需将带有边框的元素设置为
    box size:border-box。这将使边框和填充位于宽度和高度计算的内部

    试试这个:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    或者如果您想更具体地只使用文本输入,请尝试以下操作:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    CSS语法:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    浏览器支持:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    如果您想了解更多这方面的信息,可以在此处找到一篇关于盒子大小的内容丰富的文章:


    宽度不准确的原因是它们被设置为
    框大小:内容框
    ,这是框大小的默认设置。在CSS中计算
    宽度
    高度
    时,在
    宽度
    高度
    的外侧计算
    边框
    填充
    ,即使设置为
    宽度:100%,也会增加额外的空间。为了解决这个问题,只需将带有边框的元素设置为
    box size:border-box。这将使边框和填充位于宽度和高度计算的内部

    试试这个:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    或者如果您想更具体地只使用文本输入,请尝试以下操作:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    CSS语法:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    浏览器支持:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    如果您想了解更多这方面的信息,可以在此处找到一篇关于盒子大小的内容丰富的文章:


    宽度不准确的原因是它们被设置为
    框大小:内容框
    ,这是框大小的默认设置。在CSS中计算
    宽度
    高度
    时,在
    宽度
    高度
    的外侧计算
    边框
    填充
    ,即使设置为
    宽度:100%,也会增加额外的空间。为了解决这个问题,只需将带有边框的元素设置为
    box size:border-box。这将使边框和填充位于宽度和高度计算的内部

    试试这个:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    或者如果您想更具体地只使用文本输入,请尝试以下操作:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    CSS语法:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    浏览器支持:

    #my-container { width: 500px; }
    #first-name-label { display: inline-block; width: 30%; }
    #first-name {
       display:inline-block;
       width: 70%;
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    input[type=text] {
       -webkit-box-sizing: border-box; /* Safari, other WebKit */
       -moz-box-sizing: border-box;    /* Firefox, other Gecko */
       box-sizing: border-box;         /* Opera/IE 8+ */
    }
    
    box-sizing: content-box|border-box|initial|inherit;
    
    Chrome (any): box-sizing
    Opera 8.5+: box-sizing
    Firefox (any): -moz-box-sizing
    Safari 3: -webkit-box-sizing (unprefixed in 5.1+ versions)
    IE8+: box-sizing
    
    如果您想了解更多这方面的信息,可以在此处找到一篇关于盒子大小的内容丰富的文章:

    你试过了吗

    border-style: hidden
    
    ?

    它应该有助于缓解表元素中的边界冲突,这与您遇到的问题是一样的

    你试过了吗

    border-style: hidden
    
    ?

    它应该有助于缓解表元素中的边界冲突,这与您遇到的问题是一样的

    你试过了吗

    border-style: hidden
    
    ?

    它应该有助于缓解表元素中的边界冲突,这与您遇到的问题是一样的

    你试过了吗

    border-style: hidden
    
    ?


    它应该有助于缓解表元素中的边界冲突,这与您遇到的问题是一样的

    有趣的是,似乎您是说使用
    框大小:边框框来解决它。。。有趣的是,似乎您是说使用
    框大小:边框框来解决它。。。有趣的是,似乎您是说使用
    框大小:边框框来解决它。。。很有趣,看起来像你