hanging-punctuation
===================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété **`hanging-punctuation`** indique si un signe de ponctuation se situant au début ou à la fin d'une ligne de texte doit rester sur cette ligne, quitte à sortir de la boîte qui représente la ligne.


```css
/\* Valeurs avec un mot-clé \*/
hanging-punctuation: none;
hanging-punctuation: first;
hanging-punctuation: last;
hanging-punctuation: force-end;
hanging-punctuation: allow-end;

/\* Valeurs avec deux mots-clés \*/
hanging-punctuation: first force-end;
hanging-punctuation: first allow-end;
hanging-punctuation: first last;
hanging-punctuation: last force-end;
hanging-punctuation: last allow-end;

/\* Valeurs avec trois mots-clés \*/
hanging-punctuation: first force-end last;
hanging-punctuation: first allow-end last;

/\* Valeurs globales \*/
hanging-punctuation: inherit;
hanging-punctuation: initial;
hanging-punctuation: unset;
```

Syntaxe
-------

Cette propriété peut être définie grâce à une, deux ou trois valeurs :

* Avec une valeur : on utilisera l'un des mots-clés de la liste ci-après
* Avec deux valeurs :
    + le mot-clé `first` avec un des mots-clés parmi : `last`, `allow-end` ou `force-end`
    + ou le mot-clé `last` avec un des mots-clés parmi : `last`, `allow-end` ou `force-end`
* Avec trois valeurs :
    + `first`, `allow-end` et `last`
    + ou `first`, `force-end` et `last`
### Valeurs

`none`

Aucun caractère ne reste suspendu sur la ligne.

`first`

Une parenthèse ou des guillemets ouvrants au début de la première ligne d'un texte restent sur la ligne.

`last`

Une parenthèse ou des guillemets fermants à la fin de la dernière ligne d'un texte restent sur la ligne.

`force-end`

Un point ou une virgule en fin de ligne restera sur cette ligne.

`allow-end`

Un point ou une virgule en fin de ligne restera sur cette ligne si la justification du texte ne laisse pas l'espace nécessaire.

Définition formelle
-------------------

|  |  |
| --- | --- |
| Valeur initiale | `none` |
| Applicabilité | tous les éléments |
| Héritée | oui |
| Valeur calculée | comme spécifié |
| Type d'animation | discrète |

Syntaxe formelle
----------------
```

hanging-punctuation =   
  none                                            |  
  [ first || [ force-end | allow-end ] || last ]    
  
```

Exemples
--------

### HTML


```html
<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dignissim
  nunc mauris, et sollicitudin est scelerisque sed. Praesent laoreet tortor
  massa, sit amet vulputate nulla pharetra ut. Proin ornare commodo sodales.
  Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
  inceptos himenaeos.
</p>
```

### CSS


```css
p {
  hanging-punctuation: first;
  margin: 0.5rem;
}
```

### Résultat

Spécifications
--------------

| Specification |
| --- |
| CSS Text Module Level 3 # hanging-punctuation-property |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.