我需要更改什么才能使Chrome和Firefox呈现与Internet Explorer相同的方式?我的第一个想法是使用CSS calc()
,但我仍然需要支持IE8。
我有以下CSS:
* {
box-sizing: border-box;
}
.Width300
{
width: 300px;
padding: 5px;
border: black 1px solid;
}
.Field
{
white-space: nowrap;
min-height: 26px;
padding: 1px 0;
}
label
{
float: left;
display: inline;
}
input
{
display: block;
width: 100%;
}
.LabelSize100 .Field
{
margin-right: 100px;
}
.LabelSize100 label
{
width: 100px;
}
.LabelSize100 input
{
margin-left: 100px;
}
以及以下HTML:
<div class="LabelSize100 Width300">
<div class="Field">
<label>test:</label>
<input type="text" />
</div>
<div class="Field">
<label>test:</label>
<input type="text" />
</div>
</div>
并且IE / Chrome和FF的结果完全不同:
答案 0 :(得分:2)
只需将display:inline-block;
设置为<label>
和<input>
<强> CSS 强>
label
{
float: left;
display: inline-block;
}
input
{
display: inline-block;
width: 100%;
}
.LabelSize100 input
{
// Remove margin-left
}
注意:从margin-left
<input>
<强> DEMO HERE 强>
答案 1 :(得分:1)
我得到了这个解决方案:
HTML:
<div class="LabelSize100 Width300">
<div class="Field">
<label>test:</label>
<input type="text" />
</div>
<div class="Field">
<label>test:</label>
<input type="text" />
</div>
</div>
CSS:
* {
box-sizing: border-box;
}
.Width300 {
width: 300px;
padding: 5px;
border: black 1px solid;
}
.Field {
white-space: nowrap;
min-height: 26px;
padding: 1px 0;
width:100%;
}
label {
float: left;
}
input {
display: block;
float:right;
}
.LabelSize100 .Field {
margin-right: 100px;
overflow: hidden;
}
.LabelSize100 label {
width: 100px;
}
似乎适用于所有3种浏览器
答案 2 :(得分:0)
您的语法有错误,请查看类`.Field
{
white-space: nowrap;
min-height: 26px;
padding: 1px 0;.Field
}
.Field
不应该在padding
这是你要找的吗?
* {
box-sizing: border-box;
}
.Width300
{
width: 300px;
padding: 5px;
border: black 1px solid;
}
.Field
{
white-space: nowrap;
min-height: 26px;
padding: 1px 0;
}
label
{
float: left;
display: inline;
}
input
{
display: inline-block;
width: 100%;
}
.LabelSize100 .Field
{
margin-right: 100px;
}
.LabelSize100 label
{
width: 100px;
}
.LabelSize100 input
{
margin-left: 0px;
}
<div class="LabelSize100 Width300">
<div class="Field">
<label>test:</label>
<input type="text" />
</div>
<div class="Field">
<label>test:</label>
<input type="text" />
</div>
</div>
答案 3 :(得分:0)
您应该包含一个规范化的CSS文件。它是一个文件,使浏览器更加一致地呈现所有元素,符合现代标准。下载此文件并将其包含在CSS之前:http://necolas.github.io/normalize.css/