我想在内容文本中的or
单词前后插入一个换行符。我尝试使用word-spacing
,但是并没有给我想要的确切样式。我还尝试放置\A
,它仅在文本上显示A
。有没有办法实现我的目标?
预期:
实际:
#t {
height: 153px;
width: 401px;
border: 1px dashed #5fb6c5;
background-color: #f8f8f8;
}
#t:after {
content: attr(data-text);
font-size: 14px;
line-height: 19px;
color: #000;
opacity: 0.30;
position: relative;
width: 100%;
height: 100%;
display: block;
top: 50%;
white-space: pre-wrap;
vertical-align: middle;
text-align: center;
}
<div id="t" data-text="Drag your image here or Click to add" />
答案 0 :(得分:2)
我还尝试输入\ A,它只在文本上显示A。
\A
可以用作CSS中换行符的转义序列-但这里的上下文不是CSS,这里有一个自定义数据属性,用于保存这段文本,因此主要上下文是HTML。
data-text="Drag your image here or Click to add"
是用于换行的数字HTML实体,我认为在这里使用它最有意义。
答案 1 :(得分:1)
您可以这样实现
将文本创建为不同的属性,并在after
伪冒处用“ \ A”分隔文本
#t {
height: 153px;
width: 401px;
border: 1px dashed #5fb6c5;
background-color: #f8f8f8;
}
#t:after {
content: attr(data-text1) "\A" attr(data-text2) "\A" attr(data-text3);
font-size: 14px;
line-height: 19px;
color: #000;
opacity: 0.30;
position: relative;
width: 100%;
height: 100%;
display: block;
top: 50%;
white-space: pre-wrap;
vertical-align: middle;
text-align: center;
}
<div id="t" data-text1="Drag your image here" data-text2= "or" data-text3="Click to add" />
答案 2 :(得分:0)
您也可以使用“ hack”来执行此操作。通过使用两个伪元素并使用flex来放置它们。
这不是最佳解决方案,它涉及html的一些更改,但在这种特定情况下可以解决问题。
#t {
height: 153px;
width: 401px;
border: 1px dashed #5fb6c5;
background-color: #f8f8f8;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
font-size: 14px;
line-height: 19px;
color: #000;
}
#t:after,
#t:before {
position: relative;
width: 100%;
display: block;
text-align: center;
}
#t:after {
content: attr(data-text2);
}
#t:before {
content: attr(data-text1);
}
<div id="t" data-text1="Drag your image here " data-text2="Click to add">
<span>or</span>
</div>
答案 3 :(得分:0)
我们还可以如下使用HTML标签:
<pre>
<div id="t" data-text="Drag your image here
or
Click to add" />
</pre>