Maison > interface Web > tutoriel CSS > Comment puis-je appliquer du CSS à la moitié d'un personnage, en rendant la moitié transparente ?

Comment puis-je appliquer du CSS à la moitié d'un personnage, en rendant la moitié transparente ?

Susan Sarandon
Libérer: 2024-12-29 07:07:10
original
908 Les gens l'ont consulté

How Can I Apply CSS to Half a Character, Making One Half Transparent?

Application croisée pour demi-caractère

Question

Comment appliquer du CSS sur la moitié d'un caractère, par exemple pour rendre la moitié du personnage transparente ?

Ce problème a été essayé à travers les méthodes suivantes, mais toutes ont échoué :

  • Méthodes pour embellir les caractères/la moitié des lettres
  • Embellir une partie d'un caractère avec CSS ou JavaScript
  • Appliquer CSS à 50 % Les caractères de

Voici un exemple de l'effet cible :

[Image]

Y a-t-il une solution CSS ou JavaScript pour obtenir cet effet ou est-ce que je faut-il recourir aux images ? Puisque le texte sera finalement généré dynamiquement, nous souhaitons éviter d’utiliser des images.

Solution

Démo | Télécharger zip | HalfStyle.com (redirection vers GitHub)

  • CSS pur pour un seul personnage
  • JavaScript Automatisation pour s'étendre sur du texte ou sur plusieurs caractères
  • Préserver l'accessibilité du texte pour les lecteurs d'écran aveugles ou malvoyants

Partie 1 : Solution de base

[Image]

Démo : http://jsfiddle.net/arbel/pd9yB/1694/

Partie 2 : Automatisation de n'importe quel texte

[Image]

Démo : http://jsfiddle.net/arbel/pd9yB/1696/

Instructions :

  • pour chaque personnage qui contient le semi-beau personnage que vous souhaitez. L'élément applique la classe .halfStyle.
  • Pour chaque élément span contenant des caractères, créez ici un attribut de données, tel que data-content="X".
  • Utilisez content:attr(data-content); sur le pseudo-élément afin que la classe .halfStyle:before soit dynamique et n'ait pas besoin d'être codée en dur pour chaque instance.

S'applique à n'importe quel texte :

  • Ajoutez simplement la classe textToHalfStyle à l'élément contenant le texte.

Code

JavaScript (mode automatisation) :

// jQuery for automated mode
jQuery(function($) {
    var text, chars, $el, i, output;

    // Iterate over all class occurences
    $('.textToHalfStyle').each(function(idx, el) {
    $el = $(el);
    text = $el.text();
    chars = text.split('');

    // Set the screen-reader text
    $el.html('<span>
Copier après la connexion

CSS :

.halfStyle {
    position: relative;
    display: inline-block;
    font-size: 80px; /* or any font size will work */
    color: black; /* or transparent, any color */
    overflow: hidden;
    white-space: pre; /* to preserve the spaces from collapsing */
}

.halfStyle:before {
    display: block;
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    content: attr(data-content); /* dynamic content for the pseudo element */
    overflow: hidden;
    color: #f00;
}
Copier après la connexion

HTML :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<p>Single Characters:</p>
<span class="halfStyle" data-content="X">X</span>
<span class="halfStyle" data-content="Y">Y</span>
<span class="halfStyle" data-content="Z">Z</span>
<span class="halfStyle" data-content="A">A</span>

<hr/>
<p>Automated:</p>

<span class="textToHalfStyle">Half-style, please.</span>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal