如何在CSS中使输入框和下拉菜单宽度一致

10

我的页面中有几个 inputselect 标签。

我使用 width:100%; 来定义它们的宽度,但在浏览器中显示的宽度并不是 100%

我在谷歌浏览器中使用了调试工具,并发现也应用了用户代理样式表样式。

如何使宽度为 100%?


你在用户代理样式表中找到了什么? - anurupr
我发现输入和选择标签具有不同的边框值。 - jamesxu-e.g.
如何重置输入和选择的用户代理样式表。 - jamesxu-e.g.
2
请参考 css-reset - Dhaval Marthak
4个回答

25

演示 Fiddle

最好将样式和内容分离,因此在您的 CSS 中包含:

input, select{
  width:100%;
  box-sizing:border-box;
}

注意:没有设置box-sizing属性的演示fiddle

为了考虑浏览器特定或设置的边距/填充/边框,您需要使用box-sizing:border-box这是一个方便的阅读材料。

MDN上的Box-Sizing:

box-sizing CSS属性用于更改用于计算元素宽度和高度的默认CSS盒模型。可以使用此属性来模拟不正确支持CSS盒模型规范的浏览器的行为。

border-box

宽度和高度属性包括填充和边框,但不包括边距。这是Internet Explorer在文档处于Quirks模式时使用的盒模型。


box-sizing:border-box 挽救了局面。 - Raheel Hasan

0

如果要覆盖用户代理样式表,请在代码开头使用reset.css

   /* 
      Reset .css
   */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

如果您不想覆盖用户代理,则可以选择“px”中的宽度值


-1

或使用以下CSS:

input[type=text], select { 
    width: 100% //or whatever you want)
}

1
我已经尝试过了。但是输入框和下拉框的宽度不同。 - jamesxu-e.g.

-2

尝试使用 select 标签的 width CSS 属性,如下所示:

<Select name="foo" width="100" style="width: 100px">
 <option>One</option>
 <option>Two</option>
 <option>Three</option>
 <option>Four</option>
</select>

对于输入标签也是一样的

<input type="text" name="faa" value="test" style="width: 100px;" />

你也可以在CSS中使用样式来设置输入标签。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接