当文本换行到两行时,块元素占据全宽

时间:2013-06-20 16:53:04

标签: text width line block

我基本上只是对此感到好奇,因为我一直都在看,而且我所说过的人似乎都不知道是否有解决方案。

通常情况下,当我看到它的时候看起来像<a>按钮上有背景,是显示块或内联块。

问题是这样的:假设你在div中有一个具有特定宽度的按钮,比方说160px,你有一个显示块或内嵌块<a>,如果文本<a>里面的<div style="width: 160px; padding: 10px; background: blue;"> <a href="#" style="background: red; display: block;">Test with a longwrappingword</a> </div> 不能像你期望的那样整合在一条线上,但现在它在两条线上它不再需要占据div的全宽,但确实如此!

我发现这种情况并不令人感到意外,但我想知道是否有人知道CSS甚至是JavaScript解决方案来解决这个问题?

代码:

{{1}}

JSFiddle here

3 个答案:

答案 0 :(得分:2)

this是否适合您?

<div style="width: 160px; padding: 10px; background: blue;">
  <a href="#" style="background: red; display: table; width: 1%">Test with a longwrappingword</a>
</div>
<span style="padding-left:130px">^ Where the element COULD end if it wanted to</span>

答案 1 :(得分:1)

这是你的意思吗?

http://jsfiddle.net/UPxZm/

<div style="width: 160px; padding: 10px; background: blue;">
  <a id="block" href="#" style="background: red; display: block;">Test with a longwrappingword</a>
</div>

<script>
var $block = $('#block');
var orig = $block.html();
var index = orig.lastIndexOf(' ') || -1;
var longword = orig.substring(index + 1, orig.length);

$block.html(orig + longword);
var wanted_width = $block[0].scrollWidth / 2;
$block.html(orig);
$block.width(wanted_width);
</script>

答案 2 :(得分:0)

这是什么意思?我添加了一个width属性来锚定。

<div style="width: 160px; padding: 10px; background: blue;">
  <a href="#" style="background: red; display: block; width: 100px;">Test with a longwrappingword</a>
</div>