我有一个表单,根据网站的品牌,两个输入字段中的一个应该在一个给定的位置可见。
我想我只是将两个输入字段放在同一个容器中,然后通过我的样式表设置其中一个显示:none; 这确实隐藏了这个领域,但它仍然占据了空间。 我也尝试将高度和宽度设置为0或将可见性设置为隐藏或折叠,但没有一个工作。
直到现在所有的品牌推广都可以用css样式表完成,所以我想保持这种方式。 至少应该在IE6和IE6中支持该解决方案。 Firefox 2& up和Chrome(最新)。
答案 0 :(得分:14)
为什么不使用输入type="hidden"
?
答案 1 :(得分:8)
如何将不可见的输入字段设置为position: absolute;
,这应该将其从渲染流程中取出。
但是,将它设置为display: none
理论上应该做同样的事情......
答案 2 :(得分:5)
<style>
.hideme
{
display:none;
visibility:hidden;
}
.showme
{
display:inline;
visibility:visible;
}
</style>
<input type="text" name="mytext" class="hideme">
你可以设置class =“hideme”来隐藏你的控件,或者class =“showme”来显示你的控件。您可以使用JavaScript或服务器端编码设置此toggeling。
答案 3 :(得分:3)
这确实隐藏了该字段,但它仍然存在 使它占用空间。
这不应该发生; display:none应该导致元素不包含在流中。检查你的CSS的其余部分(尝试使用Firebug来找出额外的“空间”,这可能只是填充或某些周围元素的边缘来自)。
答案 4 :(得分:0)
我不太熟悉CSS,但你可以尝试实现JQuery,它结合了Javascript和CSS,让你可以相对轻松地完成这样的事情。
答案 5 :(得分:0)
即使元素不可见,使用visibility属性也会占用渲染空间。而不是使用visivility你必须使用显示属性。
如果要隐藏元素并显示为 块>,可以将显示设置为 无 em> 或 内嵌 ,如果您想要展示它们。
要查看显示屏,请检查this
如果设置您的显示属性不能解决您的问题,那么我认为文本框可能是绝对定位的。这可能是布局无法更改的原因。
您能否发布完整的代码?
答案 6 :(得分:0)
如果要将CSS代码与其他输入隔离开,则可以执行以下操作:
public static void getInfo() {
// Item 3
Scanner input3 = new Scanner(System.in);
System.out.println("Name of item 3: ");
String item3 = input3.nextLine();
System.out.println("Quantity of item 3: ");
int quantity3 = input3.nextInt();
System.out.println("Price of item 3: ");
double price3 = input3.nextDouble();
double total = calc(quantity, price3);
}
public static double calc(int quantity, double price)
{
double total = quantity * price;
System.out.println("Item 1 total: " + total1);
return total
}
您还可以通过指示其他类别进一步将其与相同类型隔离。