8

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

通常当我遇到它时,它是一个<a>带有背景的精美按钮,是显示块或内联块。

问题是这样的:假设您在一个具有特定宽度的 div 中有一个按钮,比方说160px,并且您有一个显示块或内联块<a>,如果里面的文本<a>不能全部放在它换行的一行上到两个,如你所料,但现在它在两行上,它不再需要占据 div 的整个宽度,但它确实如此!

发生这种情况我并不感到惊讶,但我想知道是否有人知道解决此问题的 CSS 甚至 JavaScript 解决方案?

代码:

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

JSFiddle在这里

4

3 回答 3

2

Does this work for you?

<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>
于 2013-06-21T13:41:14.767 回答
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>
于 2013-06-21T03:03:04.627 回答
0

你是这个意思吗?我添加了一个宽度属性来锚定。

<div style="width: 160px; padding: 10px; background: blue;">
  <a href="#" style="background: red; display: block; width: 100px;">Test with a longwrappingword</a>
</div>
于 2013-06-20T18:06:02.577 回答