css - 如何根据里面的文字设置元素的宽度?

标签 css html angularjs

我使用 CSS 对话泡泡 ( http://nicolasgallagher.com/pure-css-speech-bubbles/demo/ ) 为了实现聊天。

这是我最终得到的屏幕示例:

enter image description here

蓝色气泡是我的消息,红色是对方的消息。

我写的这段代码是:

<p class="inset list" ng-repeat="message in messages | orderBy:'id'"
ng:class="{ true:'triangle-right right', false:'triangle-right left'}
[message.sender == {{ user }} ]">
{[{ message.body}]}
</p>

而{[{ }]}是 Angular 参数的符号。

我希望气泡的宽度适合内部文本的长度。 请注意,一个气泡内的消息可能包含多行,因此宽度需要适合最长的一行。

此外,蓝色气泡需要靠右对齐。

我尝试为 ng-style 插入函数作为 message.body 的函数,但我没有成功地按照我的意愿改变宽度......

如果你们中的一个能给我写详细和隐含的说明,那将是非常好的...

最佳答案

这对我有用:

http://jsfiddle.net/K67NN/1/

jsfiddle screenshot

这是我的测试 html:

<p class="triangle-right left">test1</p>
<p class="triangle-right right">test2</p>

我使用了你链接到的 stock css,我只是将它们添加到左右类中

.left{float:left; clear:both}
.right {float:right; clear:both}

之所以可行,是因为 float 元素默认具有隐式宽度,并且它们与其封闭元素的左侧或右侧对齐。 clear:both 只是防止它们堆积在一条线上。

关于css - 如何根据里面的文字设置元素的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443644/

相关文章:

javascript - HTML - 如何滚动整个部分而不在中间停止?

javascript - 自定义下拉图像而不是默认箭头

html - 对齐引导缩略图组件

css - IE忽略类=""问题

html - 将 HTML 转换为带有标签的字符串

angularjs - Paypal api oauth

css - "overflow-y: scroll"属性是否有助于防止 Opera/Safari 中的水平移动?

javascript - 我如何单击屏幕上的任意位置(除了目标 div 之外)以使所有内容返回到其原始位置

javascript - AngularJS:数组和深度 $watch 不起作用

javascript - 使用 Angular DataTable 显示 JSON 数据