2011-07-07 39 views
1

我有一个无序的输入列表,如果有错误,我想错误显示在标签的左侧。绝对定位跨度收缩

每个LI相对定位,并且绝对定位span.error。当我设置了span.error右边的位置,过去的某 点跨度收缩。

这里有两个js小提琴的。

位置右侧第一个设置为0(这是我希望显示错误消息的方式,但是位于标签的右侧)。

http://jsfiddle.net/meander365/vmXHV/1/

;第二,与位置正确设置(其中span.error缩水)

http://jsfiddle.net/meander365/vmXHV/2/

任何想法?

回答

2

绝对定位的元素崩溃在默认情况下,并不会克服浏览器的重力除非你定义的任何它,就是为上,右,下,或左属性指定值。

我看到了两个例子。既然你没有指定任何宽度您的跨度,它缩小。指定一个宽度,你明白我的意思。

一般情况下,考虑到这些情况绝对定位:

  1. 如果您还没有指定的宽度和高度,但指定的元素,在两个方向转移,元素拉伸以填充可用空间。例如,当您在具有800px宽度父DIV指定position: absolute; left: 40px; right: 30px;,你绝对定位的元素的宽度变为800像素 - 40像素(左) - 30像素(右)= 720像素。
  2. 对于绝对定位元素的指定宽度或高度值,元素移位不会拉伸元素。它只有它。
  3. 如果您有预定义的宽度或高度值,集中技术之一是绝对定位。

    #centered 
    { 
        width: 50px; 
        height: 50px; 
        position: absolute; 
        top: 0; 
        right: 0; 
        bottom: 0; 
        left: 0; 
        margin: auto; 
    } 
    
+0

我的问题是,在每个跨度在该消息中宽度不同,所以我可以定义一组宽度。你认为什么可以工作? – mindwire22

+0

使用*浮动*绝对定位* :) –

+0

感谢赛义德的*代替 - 很好的解释! – mindwire22