Maison > interface Web > js tutoriel > CSS peut-il styliser la moitié d'un personnage ?

CSS peut-il styliser la moitié d'un personnage ?

Mary-Kate Olsen
Libérer: 2024-10-31 06:54:01
original
301 Les gens l'ont consulté

Est-il possible d'appliquer du CSS à la moitié d'un personnage ?

Problème :

Comment pouvons-nous styliser seulement la moitié d'un personnage ? Par exemple, rendre la moitié de la lettre transparente.

Tentatives précédentes :

  • Recherche de méthodes pour styliser la moitié d'un personnage
  • Styliser une partie d'un personnage à l'aide de CSS ou de JavaScript
  • Application de CSS à 50 % d'un personnage

Exemple :

Can CSS Style Half of a Character?

Solution :

Plugin GitHub :

https://github.com/arbel/half-style

Démo :

http://jsfiddle.net/arbel/pd9yB/1694/

Fonctionnalités :

  • CSS pur pour caractères uniques
  • Automation JavaScript sur texte ou plusieurs caractères
  • Préserve l'accessibilité du texte pour les lecteurs d'écran

Solution de base :

Caractère unique :

Demi-style sur le texte

Cette solution utilise du CSS pur et une classe nommée .halfStyle.

Any Text :

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

Automatisation JavaScript :

<code class="javascript">// 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 style="position: absolute !important;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);">' + text + '</span>');

    // Reset output for appending
    output = '';

    // Iterate over all chars in the text
    for (i = 0; i < chars.length; i++) {
        // Create a styled element for each character and append to container
        output += '<span aria-hidden="true" class="halfStyle" data-content="' + chars[i] + '">' + chars[i] + '</span>';
    }

    // Write to DOM only once
    $el.append(output);
  });
});</code>
Copier après la connexion

CSS :

<code class="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;
}</code>
Copier après la connexion

Exemple d'utilisation :

<code class="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></code>
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