内边距改变 table 内的宽度
Padding changes width inside table
我有一个具有固定宽度的 table,在 table 内部我需要一些 inputs(text)
与 table 具有相同的宽度,但是我不希望输入的文本位于 left:0
,我希望它们在左侧有一些填充。但是,当我将填充放入这些输入时,宽度会更改为超过 100%
.
这里是HTML:
<table cellspacing="25">
<tr>
<td><input type="text" placeholder="lalala"></td>
</tr>
</table>
这是 CSS。
table {
background-color: red;
width: 300px;
}
table input {
width: 100%;
padding-left: 10px;
}
如何确保输入元素的宽度是 100%
table 单元格的宽度?
将此 css 规则添加到您的输入中:
box-sizing: border-box;
The box-sizing property is used to tell the browser what the sizing
properties (width and height) should include.
Should they include the border-box? Or just the content-box.
这是一个片段:
table {
background-color: red;
width: 300px;
}
table input {
width: 100%;
padding-left: 10px;
box-sizing: border-box;
}
<table cellspacing="25">
<tr>
<td><input type="text" placeholder="lalala"></td>
</tr>
</table>
另一种选择是用百分比计算输入的宽度和填充。如果元素的内容、边框、边距和填充的总和为 100%
,那么它应该符合您的要求。参见css中的box-model
概念:http://www.w3schools.com/css/css_boxmodel.asp
All HTML elements can be considered as boxes. In CSS, the term "box
model" is used when talking about design and layout.
The CSS box model is essentially a box that wraps around HTML
elements, and it consists of: margins, borders, padding, and the
actual content.
The box model allows us to add a border around elements, and to define
space between elements.
例如,如果您想要 10% padding
在左边,那么宽度应该是 90%
。
看到这个fiddle:http://jsfiddle.net/3nk07y1x/1/
CSS:
table {
background-color: red;
width: 300px;
}
table input {
width: 90%;
padding-left: 10%;
}
您可以在 CSS 中使用 box-sizing: border-box;
(support) 其中 "The width and height properties include the padding and border, but not the margin." 作为指定元素,正如@1l13v 在他的回答中所做的那样:
table input {
box-sizing: border-box;
}
或者您可以使用 calc
function (support):
table input {
width: calc( 100% - 10px );
}
table 的宽度将是宽度加上填充。尝试从宽度中减去一些百分点,如下所示:
table input {
width: 90%;
padding-left: 1em;
}
我也会将像素更改为 ems,因为这些在不同的屏幕分辨率下会稍微多一些table。
我有一个具有固定宽度的 table,在 table 内部我需要一些 inputs(text)
与 table 具有相同的宽度,但是我不希望输入的文本位于 left:0
,我希望它们在左侧有一些填充。但是,当我将填充放入这些输入时,宽度会更改为超过 100%
.
这里是HTML:
<table cellspacing="25">
<tr>
<td><input type="text" placeholder="lalala"></td>
</tr>
</table>
这是 CSS。
table {
background-color: red;
width: 300px;
}
table input {
width: 100%;
padding-left: 10px;
}
如何确保输入元素的宽度是 100%
table 单元格的宽度?
将此 css 规则添加到您的输入中:
box-sizing: border-box;
The box-sizing property is used to tell the browser what the sizing properties (width and height) should include.
Should they include the border-box? Or just the content-box.
这是一个片段:
table {
background-color: red;
width: 300px;
}
table input {
width: 100%;
padding-left: 10px;
box-sizing: border-box;
}
<table cellspacing="25">
<tr>
<td><input type="text" placeholder="lalala"></td>
</tr>
</table>
另一种选择是用百分比计算输入的宽度和填充。如果元素的内容、边框、边距和填充的总和为 100%
,那么它应该符合您的要求。参见css中的box-model
概念:http://www.w3schools.com/css/css_boxmodel.asp
All HTML elements can be considered as boxes. In CSS, the term "box model" is used when talking about design and layout.
The CSS box model is essentially a box that wraps around HTML elements, and it consists of: margins, borders, padding, and the actual content.
The box model allows us to add a border around elements, and to define space between elements.
例如,如果您想要 10% padding
在左边,那么宽度应该是 90%
。
看到这个fiddle:http://jsfiddle.net/3nk07y1x/1/
CSS:
table {
background-color: red;
width: 300px;
}
table input {
width: 90%;
padding-left: 10%;
}
您可以在 CSS 中使用 box-sizing: border-box;
(support) 其中 "The width and height properties include the padding and border, but not the margin." 作为指定元素,正如@1l13v 在他的回答中所做的那样:
table input {
box-sizing: border-box;
}
或者您可以使用 calc
function (support):
table input {
width: calc( 100% - 10px );
}
table 的宽度将是宽度加上填充。尝试从宽度中减去一些百分点,如下所示:
table input {
width: 90%;
padding-left: 1em;
}
我也会将像素更改为 ems,因为这些在不同的屏幕分辨率下会稍微多一些table。