试图设置一个跨度的大小作为内容大小的百分比
我想我听起来像一个简单的请求,但可能实际上很愚蠢难,但我没有在HTML中工作很长时间。试图设置一个跨度的大小作为内容大小的百分比
首先,我只需要支持IE。我理解WebKit经常是,但直到Windows Phone 7内置WebKit浏览器,我才被限制在IE浏览器中。
我有一段文字要水平进出。出于国际化的原因,我真的不想提前衡量它。我很想做的是能够设置是这样的:
<span id="parent" style="width: 50% of child's size">
<span id="child">Hello, cruel world</span>
</span>
,并让它看起来像
Hello, cru
任何方式做到这一点?
大卫说,跨度没有孩子,你所需要做的就是将跨度设置为一个块(display:block
)和50%,并且它将占用父级的50%的宽度(如果这就是你的意思),然后做overflow:hidden
,它会将其剪掉50%,并且不会显示其余内容。
- UPDATE 2 -
这里是原始的JS。如果您有任何问题,请告诉我。这和我在jQuery中做的事情是一样的,但只有JS。用脚本标签将它放在一边,你应该很好走。
//Setting up vars
$ = document;
$parent = $.getElementById('parent');
$child = $.getElementById('child');
//Set the styles for the child
$child.style.width = $child.offsetWidth+'px'
$child.style.display = 'block';
//Set the styles for the parent
$parent.style.width = ($child.offsetWidth*0.5)+'px'
$parent.style.overflow = 'hidden';
$parent.style.display = 'block';
我正在寻找几乎相反的。我希望它占用儿童宽度的50%[无论你想调用它] – Hounshell 2010-11-19 22:37:51
你需要使用JS,但是你要调用的子元素==该元素的宽度。 (最小的方式来举一个例子是用jQuery,所以...)基本上你会做'$(this).css({width:($(this).width()/ 0.5)+'px'})'' 。然后,如果你设置它(在CSS中)显示:block;并溢出:隐藏它会隐藏它。 – 2010-11-19 22:41:12
所以在上面编辑的例子?如果我想让“父”跨度为“子”跨度有效宽度的50%,我该怎么办? – Hounshell 2010-11-19 22:49:51
你知道'span'有* no * child吗? – 2010-11-19 22:31:51
是不是文字“你好,残酷的世界”的孩子呢? – Hounshell 2010-11-19 22:34:03
不,里面的文字只是文字。孩子,父母,兄弟姐妹等参考HTML中的节点,而不是文本。例如,在JS中,如果你做了那个span的element.child,你会返回0. – 2010-11-19 22:37:09