通过css使输入不可见?

时间:2009-07-03 08:56:24

标签: html css hide

我有一个表单,根据网站的品牌,两个输入字段中的一个应该在一个给定的位置可见。

我想我只是将两个输入字段放在同一个容器中,然后通过我的样式表设置其中一个显示:none; 这确实隐藏了这个领域,但它仍然占据了空间。 我也尝试将高度和宽度设置为0或将可见性设置为隐藏或折叠,但没有一个工作。

直到现在所有的品牌推广都可以用css样式表完成,所以我想保持这种方式。 至少应该在IE6和IE6中支持该解决方案。 Firefox 2& up和Chrome(最新)。

7 个答案:

答案 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
   }

您还可以通过指示其他类别进一步将其与相同类型隔离。