我想使用動態文本作爲我的標記中某些元素的背景。正因爲如此,我可以使用圖像(動態文本)。我如何使用CSS或JavaScript做到這一點?有沒有辦法使用CSS作爲背景使用文字?
回答
你可以有一個絕對定位的元素的相對定位的元素裏面:
<div id="container">
<div id="background">
Text to have as background
</div>
Normal contents
</div>
然後是CSS:
#container {
position: relative;
}
#background {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: -1;
overflow: hidden;
}
這裏的an example of it。
您可以使包含bg文本的元素具有較低的堆疊順序(z-index,position),甚至可以設置不透明度。因此,您需要的頂層元素需要更高的堆疊順序(z-index:5; position:relative;對於ex),而後面的元素需要更低的值(默認值或只是較低的z-index值,如3和position:relative ;)。
它可以使用可能(但很hackish的)只有CSS的:before或:after僞元素:
<style type="text/css">
.bgtext {
position: relative;
}
.bgtext:after {
content: "Background text";
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
</style>
<div class="bgtext">
Foreground text
</div>
這似乎是工作,但你可能需要調整它一點點。另外請注意,它不適用於IE6,因爲它不支持:after
。
更新:至今爲止,所有現代瀏覽器都支持僞元素。例如,FontAwesome是如何工作於CSS圖標的(使用:before inline元素)。 – 2016-06-14 13:26:48
SVG文字背景圖片?
body {
background-image:url("data:image/svg+xml;utf8,
<svg xmlns='http://www.w3.org/2000/svg' version='1.1'
height='50px' width='120px'>
<text x='0' y='15' fill='red' font-size='20'>I love SVG!</text>
</svg>");
}
不知道如何:
body {
background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='50px' width='120px'><text x='0' y='15' fill='red' font-size='20'>I love SVG!</text></svg>");
}
<p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p>
<p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p>
CSS這樣你就可以更好地理解(這並不工作,你需要使用單排SVG)的縮進版本這是可移植的(適用於Firefox 31和Chrome 36),它在技術上是一個圖像......但源代碼是內聯和純文本,並且可以無限擴展。
@senectus發現,它的作品更好的IE瀏覽器,如果你Base64編碼它:https://stackoverflow.com/a/25593531/895245
有趣。我只能在Firefox 31中使用此功能,但不能使用Chrome 36或Safari 7. – 2014-08-28 09:26:44
@JPRichardson真實,這裏也一樣。在Chrome 36上,我的印象是背景是在那裏,但在*非常*小字母。也許我忘了設置一些背景/ SVG尺寸參數? – 2014-08-28 09:52:25
西羅的大約包含文本的SVG數據URI背景的解決方案是非常聰明的。
但是,如果您只是將普通的SVG源添加到數據URI,它將無法在IE中使用。
爲了解決這個問題並使其在IE9及更高版本中工作,請將SVG編碼爲base64。 This is a great tool.
所以這個:
background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><text x="5%" y="5%" font-size="30" fill="red">I love SVG!</text></svg>');
變爲這樣:
background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0ZXh0IHg9IjUlIiB5PSI1JSIgZm9udC1zaXplPSIzMCIgZmlsbD0icmVkIj5JIGxvdmUgU1ZHITwvdGV4dD48L3N2Zz4=');
測試,它在IE9-10-11,WebKit的(鉻37,歌劇23)和蛤蚧(火狐31)的作品。
@Ciro
你可以用下面的Chrome 54和Firefox 50
代碼body {
background: transparent;
background-attachment:fixed;
background-image: url(
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='170px' height='50px'> \
<rect x='0' y='0' width='170' height='50' style='stroke:white; fill:gray; stroke-opacity: 0.3; stroke-width: 3px; fill-opacity: 0.7; stroke-dasharray: 10 5; stroke-linecap=round; '/> \
<text x='85' y='30' style='fill:lightBlue; text-anchor: middle' font-size='16' transform='rotate(10,85,25)'>I love SVG!</text></svg>");
}
我測試反斜槓"\"
打破聯SVG代碼即使測試過,
background-image: url("\
data:image/svg+xml;utf8, \
<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='170px' height='50px'> \
<rect x='0' y='0' width='170' height='50'\
style='stroke:white; stroke-width: 3px; stroke-opacity: 0.3; \
stroke-dasharray: 10 5; stroke-linecap=round; \
fill:gray; fill-opacity: 0.7; '/> \
<text x='85' y='30' \
style='fill:lightBlue; text-anchor: middle' font-size='16' \
transform='rotate(10,85,25)'> \
I love SVG! \
</text> \
</svg>\
");
和它的作品(至少在Chrome 54 &火狐50 ==>使用情況NWjs &電子保證的廣告)
使用純CSS:
(但是,在極少數情況下使用,因爲HTML方法這是非常好的選擇)。
.container{
\t position:relative;
}
.container::before{
\t content:"";
\t width: 100%; height: 100%; position: absolute; background: black; opacity: 0.3; z-index: 1; top: 0; left: 0;
\t background: black;
}
.container::after{
\t content: "Your Text"; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 3; overflow: hidden; font-size: 2em; color: red; text-align: center; text-shadow: 0px 0px 5px black; background: #0a0a0a8c; padding: 5px;
\t animation-name: blinking;
\t animation-duration: 1s;
\t animation-iteration-count: infinite;
\t animation-direction: alternate;
}
@keyframes blinking {
\t 0% {opacity: 0;}
\t 100% {opacity: 1;}
}
<div class="container">here is main content, text , <br/> images and other page details</div>
- 1. 有沒有辦法減慢gif作爲html和css背景?
- 2. 有沒有辦法從背景返回時總是使用default.png?
- 3. 有沒有辦法直接在CSS背景中使用圖像數據?
- 4. 有沒有辦法使用CSS創建軟件盒的背景陰影?
- 5. 有沒有辦法將材質圖標作爲輸入背景?
- 6. 圖像作爲背景沒有css
- 7. 有沒有什麼辦法可以在css中只顯示背景的文字?
- 8. 沒有文字的CSS背景圖片?
- 9. 使用文字作爲背景
- 10. 有沒有辦法使用CSS向後工作
- 11. 有沒有辦法使用CSS將input type =「text」更改爲「date」?
- 12. 有沒有辦法使用PHP將PDF轉換爲HTML/CSS?
- 13. 有沒有辦法使用JavaScript將PNG的白色背景轉換爲透明背景?
- 14. 有沒有辦法使用EMail地址作爲用戶名?
- 15. 有沒有辦法在tr級別通過css應用背景顏色?
- 16. 有沒有辦法將FontAwesome圖標渲染爲背景?
- 17. 背景使用CSS
- 18. 如何獲取rainyday.js使用CSS背景圖像作爲背景?
- 19. 沒有css的html背景
- 20. 有沒有辦法使用Texture2D作爲枚舉的基礎
- 21. 有沒有辦法在drupal中使用視圖作爲菜單?
- 22. 有沒有辦法使用任何元素作爲畫布?
- 23. 有沒有辦法使用SELECT作爲CASE WHEN的表達式?
- 24. 有沒有辦法使用ko.observableArray作爲地圖?
- 25. 有沒有辦法使用多邊形作爲容器?
- 26. 使用Theme.Light背景作爲LinearLayout背景
- 27. 有沒有辦法使用addSVG爲jsPDF使用模式/紋理?
- 28. 有沒有辦法使用Google文檔進行協作編程?
- 29. 有沒有辦法使用webpack使用reactjs的cdn文件?
- 30. 有沒有辦法在C++中使用類型文字?
的ElementName:{ \t內容之後: 「\ BB」; \t float:right; } – Jazzy 2012-12-24 05:40:28