Я пытаюсь добиться эффекта маскирования с большим текстом цветного div в HTML. Я хочу, чтобы этот замаскированный текст показывал части изображения, которые находятся за div. Однако; вместо использования свойства background-clip
и background-image
на самом div. Я надеюсь просто показать, что когда-либо находится под элементом (в моем случае, изображение). Я попытался использовать svg-изображения с составными путями, они оказались слишком сложными в обращении. Есть ли другой способ, которым я мог бы это сделать? CSS? Плагин jQuery? CSS div с текстом в виде маски
ответ
Основано на this article for applying a text mask, вы можете сделать это с помощью тега canvas.
<div id="bg"><canvas id="overlay" width="240" height="70"></canvas></div>
<script>
// Get a handle to our canvas
var ctx = document.getElementById('overlay').getContext("2d");
// Choose font
ctx.font = "Bold 36px 'Helvetica'";
// Draw black rectangle
ctx.fillStyle = "black";
ctx.fillRect(0,0,230,70);
// Punch out the text!
ctx.globalCompositeOperation = 'destination-out';
ctx.fillText("Some Text", 25, 50);
</script>
Вы можете сделать это с помощью прозрачного PNG-изображения текста.
Думаю, я сделаю это, если не найду ничего другого, но я надеялся на решение, которое позволило бы мне легко редактировать текст :) Спасибо. – grevin123
Вы можете сделать это с помощью объекта Canvas: http://jsfiddle.net/JackKalish/g3BDa/3/
var canvas1 = document.getElementById("canvas1");
var canvasContext1 = canvas1.getContext("2d");
// destination-out
// Text cuts-out everything under it
// background is revealed in the cut-out
makeGradientAndFont(canvasContext1, canvas1);
canvasContext1.globalCompositeOperation = 'destination-out';
canvasContext1.fillText("Portfolio", 175, 50);
function makeGradientAndFont(ctx, canvas) {
var grad = ctx.createLinearGradient(0, 0, canvas.width, canvas.height);
grad.addColorStop(0, '#0000FF');
grad.addColorStop(.3, '#00FFFF');
grad.addColorStop(.4, '#99FFFF');
grad.addColorStop(.5, '#00FF00');
grad.addColorStop(.6, '#FFFF00');
grad.addColorStop(.8, '#F00000');
ctx.rect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = grad;
ctx.fill();
ctx.fillStyle = "black";
ctx.font = "55px Arial";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
}
Спасибо! Это также похоже на то, на что я надеялся :) – grevin123
- 1. Использование div как обтравочной маски в css
- 2. Ошибка маски маски CSS
- 3. Изображение маски слишком велико для div css
- 4. Ошибка маски макс CSS
- 5. Как сделать div отзывчивым по высоте/ширине с текстом в виде одинаковых размеров div с изображением?
- 6. Использование маски div для текста
- 7. Доступны ли маски CSS
- 8. Частицы маски, созданные javascript с использованием маски CSS
- 9. как добавить данные маски в виде ZEND
- 10. Выпуска с переливом или текстом в DIV с помощью CSS
- 11. CSS параллелограмм с текстом
- 12. Div с текстом, внутри div
- 13. Работа с текстом внутри div
- 14. css - макет div в виде таблицы
- 15. Применение изображения в виде маски в matlab
- 16. Структурирование DIV элементы под текстом (HTML/CSS)
- 17. Треугольник внутри div с текстом
- 18. Найти ребенок DIV с определенным текстом
- 19. Заливка DIV с текстом
- 20. DIV с текстом усечен
- 21. CSS полного экрана DIV с текстом в середине
- 22. CSS добавить изображение вертикальный центр с текстом в div
- 23. CSS, заполните всю ширину div текстом
- 24. Обтекание текстом с помощью CSS
- 25. Выравнивание значка CSS с текстом
- 26. выберите диапазон с текстом внутри div с помощью css
- 27. CSS: шестиугольник с текстом на DIV с фона изображения
- 28. Как использовать изображение в виде маски svg
- 29. Обтравочные маски с градиентной картой в CSS
- 30. AS3 - использование динамического текста в виде маски
http://css-tricks.com/image-under-text/ – j08691
я видел это , полезно - но не то, что я ищу. Мне нужен текст, чтобы просто показать, что находится под ним. Не хочу давать фоновое изображение. – grevin123
Как еще может быть изображение под ним? – helion3