Direction Verticale Du Texte

J'ai essayé le texte pour aller dans une direction verticale comme nous pouvons le faire dans les tables ms-word mais jusqu'à présent, je n'ai pu faire que Ceci... ce qui ne me plaît pas parce que c'est une boîte tournée... N'y a-t-il pas un moyen d'avoir un texte de direction verticale réel?

Je ne règle la rotation qu'à 305 degrés dans la démo, ce qui ne rend pas le texte vertical. 270deg will mais je n'ai fait que la démo pour montrer la rotation.

73
demandé sur misterManSam 2010-11-24 10:52:43

21 réponses

Approche Alternative: http://www.thecssninja.com/css/real-text-rotation-with-css

p { writing-mode: tb-rl; }
79
répondu swan 2013-08-29 14:18:43
-webkit-transform: rotate(90deg);

Les autres réponses sont correctes mais elles ont conduit à des problèmes d'alignement. En essayant différentes choses, ce code CSS a parfaitement fonctionné pour moi.

.vertical{
    writing-mode:tb-rl;
    -webkit-transform:rotate(90deg);
    -moz-transform:rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform:rotate(90deg);
    transform: rotate(90deg);
    white-space:nowrap;
    display:block;
    bottom:0;
    width:20px;
    height:20px;
}
71
répondu Amit 2018-07-13 06:47:22

Je cherchais un texte vertical réel et non le texte pivoté en HTML comme indiqué ci-dessous. Donc, je pourrais y parvenir en utilisant la méthode suivante.

HTML:-

<p class="vericaltext">
Hi This is Vertical Text!
</p>

CSS:-

.vericaltext{
    width:1px;
    word-wrap: break-word;
    font-family: monospace; /* this is just for good looks */
}

JSFiddle! Démo.

Update: - Si vous avez besoin que les espaces soient affichés, ajoutez la propriété suivante à votre css.

white-space: pre;

Donc, la classe css doit être

.vericaltext{
    width:1px;
    word-wrap: break-word;
    font-family: monospace; /* this is just for good looks */
    white-space: pre;/* this is for displaying whitespaces */
}

JSFiddle! Démo Avec Espace

Mise à jour 2 (28-JUN-2015)

Puisque white-space: pre; ne semble pas fonctionner (pour cet usage spécifique) sur Firefox (à partir de Maintenant), changez simplement cette ligne en

white-space: pre-wrap;

Donc, la classe css doit être

.vericaltext{
    width:1px;
    word-wrap: break-word;
    font-family: monospace; /* this is just for good looks */
    white-space:pre-wrap; /* this is for displaying whitespaces including Moz-FF.*/
}

Jsfiddle Démo FF Compatible.

51
répondu Mohd Abdul Mujib 2016-08-31 08:31:51

Pour faire pivoter le texte de 90 degrés:

-webkit-transform: rotate(90deg);   
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);

En outre, il semble que la balise span ne peut pas être pivotée sans être définie sur display: block.

24
répondu Jbrown 2013-10-04 15:44:54

Pour le texte vertical avec des caractères l'un en dessous de l'autre dans firefox, utilisez:

text-orientation: upright;
writing-mode: vertical-rl;
9
répondu Iggy 2017-02-09 04:15:10

Essayez d'utiliser:

writing-mode: lr-tb;
7
répondu Mladen Janjetovic 2012-08-02 14:30:14

La Rotation, comme vous l'avez fait, est la voie à suivre - mais notez que tous les navigateurs ne le supportent pas. si vous ne voulez pas obtenir une solution multi-navigateur, vous devrez générer des images pour cela.

2
répondu oezi 2014-02-27 15:16:15

Peut utiliser la propriété de transformation CSS3

.txtdiv{
  transform:rotate(7deg);
  -ms-transform:rotate(7deg); /* IE 9 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.93969262, M12=0.34202014, M21=-0.34202014, M22=0.93969262,sizingMethod='auto expand')"; /* IE6-8 */
  -webkit-transform:rotate(7deg); /* Opera, Chrome, and Safari */
}
2
répondu Sadee 2014-05-09 12:59:50

Ajouter la classe

.rotate {
        -webkit-transform: rotate(-90deg);
        -moz-transform: rotate(-90deg);

}

J'utilise cela à peu près tous les jours et je n'ai eu aucun problème avec cela.

Https://css-tricks.com/snippets/css/text-rotation/

2
répondu MrJoshFisher 2015-06-28 14:09:54

Voici un exemple de code SVG que j'ai utilisé pour obtenir trois lignes de texte vertical dans un en-tête de colonne de table. D'autres angles sont possibles avec un peu de peaufinage. Je crois que la plupart des navigateurs supportent SVG ces jours-ci.

<svg height="150" width="40">
  <text font-weight="bold" x="-150" y="10" transform="rotate(-90 0 0)">Jane Doe</text>
  <text x="-150" y="25" transform="rotate(-90 0 0)">0/0&nbsp;&nbsp;&nbsp;&nbsp;0/0</text>
  <text x="-150" y="40" transform="rotate(-90 0 0)">2015-06-06</text>
  Sorry, your browser does not support inline SVG.
</svg>
2
répondu Neil Bauers 2017-02-04 22:45:46

Pour afficher du texte en vertical (Bas-Haut), nous pouvons simplement utiliser:

writing-mode: vertical-lr; 

transform: rotate(180deg);

#myDiv{
text-align: center;
}

#mySpan{
writing-mode: vertical-lr; 
transform: rotate(180deg);
}
<div id="myDiv"> 

<span id="mySpan"> Here We gooooo !!! </span>

</div>

Note Nous pouvons ajouter ceci pour assurer la compatibilité du navigateur:

-webkit-transform: rotate(180deg);   
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);

Nous pouvons également en savoir plus sur writing-mode propriété ici sur Mozilla docs.

2
répondu Abdallah Okasha 2018-04-18 08:00:21

Je suis nouveau à ça, ça m'a beaucoup aidé. Il suffit de changer la largeur, la hauteur, le haut et la gauche pour l'adapter:

.vertical-text {
display: block;
position:absolute;
width: 0px;
height: 0px;
top: 0px;
left: 0px;
transform: rotate(90deg);
}

Vous pouvez également aller ici {[6] } et voir une autre façon de le faire. L'auteur le fait comme ceci:

.vertical-text {
transform: rotate(90deg);
transform-origin: left top 0;
float: left;
}
2
répondu NICK 2018-07-13 06:47:10

Cela fonctionne aussi:

transform: rotate(90deg);
1
répondu fresh5447 2016-07-04 05:27:36

Meilleure solution serait d'utiliser writing-mode writing-mode: vertical-rl; https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode

Il définit si les lignes de texte sont disposées horizontalement ou verticalement et la direction dans laquelle les blocs progressent.

Il a un bon support de navigateur, mais ne fonctionnera pas sur IE8 (si vous vous souciez de IE) http://caniuse.com/#feat=css-writing-mode

1
répondu Vasil Enchev 2017-01-25 21:07:35

J'ai réussi à avoir une solution de travail avec ceci :

(j'ai un titre dans une div de classe middleItem)

.middleItem > .title{
    width: 5px;
    height: auto;
    word-break:break-all;
    font-size: 150%;
}
1
répondu RVA 2017-02-01 14:33:20

Vous pouvez utiliser word-wrap: break-word pour obtenir du texte vertical utiliser l'extrait suivant

HTML:

<div class='verticalText mydiv'>Here is your text</div>

Css:

.verticalText {
word-wrap: break-word;
  font-size: 18px;
}
.mydiv {
  height: 300px;
  width: 10px;
}
0
répondu Hari Prasandh 2015-06-28 13:03:04
h1{word-break:break-all;display:block;width:40px;} 

H E L L O

Remarque: navigateur pris en charge - Navigateur IE (8,9,10,11) - Navigateur Firefox (38,39,40,41,42,43,44) - Navigateur Chrome (44,45,46,47,48) - Navigateur Safari (8,9) - Navigateur Opera (Non Pris En Charge) - Navigateur Android (44)

0
répondu Salehin 2015-09-24 09:21:48

Essayez d'utiliser un fichier SVG, il semble avoir une meilleure compatibilité du navigateur, et ne cassera pas vos conceptions réactives.

J'ai essayé la transformation CSS, et j'ai eu beaucoup de problèmes avec la transform-origin; et j'ai fini par aller avec un fichier SVG. Cela a pris 10 minutes, et je pouvais le contrôler un peu avec CSS aussi.

Vous pouvez utiliser Inkscape pour créer le fichier SVG si vous N'avez pas Adobe Illustrator.

0
répondu b01 2016-04-26 17:56:15

#myDiv{
text-align: center;
}

#mySpan{
writing-mode: vertical-lr; 
transform: rotate(180deg);
}
<div id="myDiv"> 

<span id="mySpan"> Here We gooooo !!! </span>

</div>

entrez la description de l'image ici

0
répondu vishal singh 2018-06-18 13:54:04

<style>
    #text_orientation{
        writing-mode:tb-rl;
        transform: rotate(90deg);
        white-space:nowrap;
        display:block;
        bottom:0;
        width:20px;
        height:20px;
    }
</style>
</head>
<body>

<p id="text_orientation">Welcome</p>
</body>

-1
répondu Ayyappa 2015-07-28 04:05:28

C'est une solution un peu hacky mais cross browser qui ne nécessite pas de css

<div>
    <div>h</div>
    <div>e</div>
    <div>l</div>
    <div>l</div>
    <div>o</div>
<div>
-2
répondu Luke Preston 2017-10-09 08:42:33