【发布时间】:2015-01-30 23:10:41
【问题描述】:
我正在尝试为具有背景的跨度提供边界半径。没有自动换行它可以正常工作。但是当有自动换行时,它看起来像这样:
如您所料,我只需要对边缘进行圆角处理(左上边缘除外)。我不认为我可以使用border-radius 属性来做到这一点,而且我不知道该怎么做。
有什么想法吗? 谢谢。
编辑:代码
.messageTextCont {
margin-left: 5px;
word-break: break-word;
}
.messageText {
font-size: 17px;
font-weight: 300;
color: #FBFDFE;
background-color: #402060;
padding: 0px;
box-shadow: 5px 0 0 #402060, -5px 0 0 #402060;
line-height: 23px;
-moz-border-bottom-left-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
border-bottom-left-radius: 5px;
-moz-border-bottom-right-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
border-bottom-right-radius: 5px;
-moz-border-top-right-radius: 5px;
-webkit-border-top-right-radius: 5px;
border-top-right-radius: 5px;
}
edit2:我也可以用js解决方案
edit3 :通过包含这个,我非常接近我想要的:
-webkit-box-decoration-break: clone;
-o-box-decoration-break: clone;
box-decoration-break: clone;
它的作用是复制第一行的样式,并将它们应用到第二行以防断字。但问题如下:
现在它完全克隆了第一行的属性并将它们应用到第二行,使左上角和右上角也圆角,这是不应该的。为了掩盖这一点,我让线条重叠了一点,我得到了结果,但现在一些字母也重叠了。如果我找到解决重叠字母问题的方法而不是这个,问题就解决了。
edit4:我使用了盒子阴影:
box-shadow: 5px 0 0 #402060, -5px 0 0 #402061, -5px -3px 0 orange, 5px -3px red;
为了掩盖不必要的差距。现在结果是这样的:
我现在唯一的问题是下面的线与上面的线重叠。如果有某种方式使上面的线与底线重叠,那么问题就解决了。
【问题讨论】:
-
很确定这对于纯 CSS 是不可能的
-
你能展示一下你目前尝试过的代码吗?
-
不,CSS 无法检测到内容。我怀疑,您需要 JS 来确定换行符的位置并在其中包含一个额外的跨度。
-
如果您提供所需样式的模型,可能会对其他人有所帮助。
-
文字超过2行怎么办?
标签: jquery html css background-color