Arah Teks Vertikal

106

Saya telah mencoba teks untuk pergi ke arah vertikal seperti yang dapat kita lakukan dalam tabel ms-word tetapi sejauh ini saya hanya dapat melakukan INI ... yang saya tidak senang karena ini adalah kotak yang diputar ... Isn ' t ada cara untuk memiliki teks arah vertikal yang sebenarnya?

Saya hanya mengatur rotasi ke 305 derajat di demo yang tidak membuat teks vertikal. 270degakan tetapi saya hanya membuat demo untuk menunjukkan rotasi.

Bulan
sumber
Halo, dapatkah Anda meninjau jawaban yang Anda terima agar sesuai dengan sintaks yang tidak usang untuk meningkatkan kualitas. Pertanyaan Anda dilihat sebagai duplikat,
G-Cyrillus

Jawaban:

107

Pendekatan alternatif: http://www.thecssninja.com/css/real-text-rotation-with-css

p { writing-mode: tb-rl; }
angsa
sumber
2
Saya dapat menemukan ini: generatedcontent.org/post/45384206019/writing-modes . Meski terasa sangat hacky.
Crystal Miller
7
@CrystalMiller dan BTW, w3schools dapat menjadi penolong yang baik, tetapi ini bukan sumber / dokumentasi asli (sehingga dapat melewatkan beberapa hal), "resmi" adalah w3.org, atau yang terdekat, lebih dapat dibaca manusia, untuk itu adalah jaringan pengembang mozilla - "MDN" - developer.mozilla.org
jave.web
Ia bekerja di chrome, mozilla dan IE edge tetapi tidak safari untuk windows.
kushalvm
8
tb-rltidak digunakan lagi, silakan gunakan vertical-rlsebagai gantinya.
Jared Chu
3
Sayangnya, jika teks vertikal berada di sisi kiri layar, kebanyakan teks romawi dibaca dari bawah ke atas. Dan kemudian dari atas ke bawah jika teks ada di sisi kanan layar. Karena beberapa nilai tidak digunakan lagi, kami berakhir dengan satu-satunya rl vertikal yang dari atas ke bawah untuk sisi kanan layar. Untuk sisi kiri, kita harus menambahkan transformasi: rotate (180deg);
Kir Kanos
80
-webkit-transform: rotate(90deg);

Jawaban lainnya benar tetapi menyebabkan beberapa masalah penyelarasan. Saat mencoba berbagai hal, kode potongan CSS ini bekerja dengan sempurna untuk saya.

.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;
}
Amit
sumber
9
Properti 'bawah' tidak memiliki nilai tanpa properti 'posisi'.
Crystal Miller
2
Saya perlu menambahkan -ms-transform: rotate (90deg); untuk mendapatkan ini bekerja di IE11
patrickbadley
1
menurut developer.mozilla.org/en-US/docs/Web/CSS/writing-mode , writing-mode:tb-rl;tidak digunakan lagi. Gunakan writing-mode:vertical-rlsebagai gantinya!
steffen
64

Saya sedang mencari teks vertikal yang sebenarnya dan bukan teks yang diputar dalam HTML seperti yang ditunjukkan di bawah ini. Jadi saya bisa mencapainya dengan menggunakan metode berikut.

masukkan deskripsi gambar di sini 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! Demo.

Pembaruan: - Jika Anda membutuhkan spasi putih untuk ditampilkan, tambahkan properti berikut ke css Anda.

white-space: pre;

Jadi, kelas css adalah

.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! Demo Dengan Whitespace

Pembaruan 2 (28-JUN-2015)

Karena white-space: pre;tampaknya tidak berfungsi (untuk penggunaan khusus ini) di Firefox (seperti yang sekarang), ubah saja baris itu menjadi

white-space: pre-wrap;

Jadi, kelas css adalah

.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.*/
}

Kompatibel dengan JsFiddle Demo FF.

Mohd Abdul Mujib
sumber
Dapatkah saya membuat teks rata di tengah?
Mohammad Saifullah
Saya tidak mengerti apa yang Anda maksud dengan menyelaraskan tengah, tapi mungkin Anda bisa menyelaraskan elemen kontainer .vericaltextke tengah?
Mohd Abdul Mujib
1
Luar biasa. Ini harus dicentang hijau sebagai gantinya. Semoga OP akan menandainya karena dia masih aktif di SO.
Rahul
: D Jawaban dingin lama
Kapil Yadav
Saya juga punya beberapa yang panas dan segar: p
Mohd Abdul Mujib
27

Untuk memutar teks 90 derajat:

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

Selain itu, tampaknya tag span tidak dapat diputar tanpa disetel ke display: block.

Jbrown
sumber
4
<span> mungkin perlu dengan display: block; untuk memutar dengan benar
Mladen Janjetovic
2
Saya menerapkan ini ke <div> yang berada di dalam <td>. Tampaknya berhasil merotasi di semua browser. ... ... TAPI, setelah div berputar (90 derajat), td tidak memperbesar ketinggiannya.
dsdsdsdsd
11

Untuk teks vertikal dengan karakter satu di bawah lainnya dalam penggunaan firefox:

text-orientation: upright;
writing-mode: vertical-rl;
Iggy
sumber
7

Coba gunakan:

writing-mode: lr-tb;
Mladen Janjetovic
sumber
5

Untuk menampilkan teks secara vertikal (Bawah-atas) kita cukup menggunakan:

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>

Perhatikan bahwa kami dapat menambahkan ini untuk memastikan Kompatibilitas Browser:

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

kita juga dapat membaca lebih lanjut tentang writing-modeproperti di sini di dokumen Mozilla.

Abdallah Okasha
sumber
4

#myDiv{
text-align: center;
}

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

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

</div>

masukkan deskripsi gambar di sini

vishal singh
sumber
Halo, terima kasih telah mencoba menjawab pertanyaan ini, dapatkah Anda menjelaskan secara singkat bagaimana solusi Anda mengatasi masalah OP?
James Wong - Kembalikan Monica
3

Saya baru dalam hal ini, itu sangat membantu saya. Ubah saja lebar, tinggi, atas dan kiri agar pas:

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

Anda juga dapat membuka di sini dan melihat cara lain untuk melakukannya. Penulis melakukannya seperti ini:

.vertical-text {
transform: rotate(90deg);
transform-origin: left top 0;
float: left;
}
BAGUS
sumber
transform-origin adalah yang saya butuhkan!
xtian
mengambang kiri adalah apa yang saya butuhkan!
chris
2

rotasi, seperti yang Anda lakukan, adalah cara yang harus dilakukan - tetapi perhatikan bahwa tidak semua browser mendukungnya. jika Anda tidak ingin mendapatkan solusi lintas-browser, Anda harus membuat gambar untuk itu.

oezi
sumber
2

Dapat menggunakan properti Transformasi 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 */
}
Sadee
sumber
2

Tambahkan kelas

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

}

Saya menggunakan ini hampir setiap hari dan tidak memiliki masalah apa pun dengannya.

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

MrJoshFisher
sumber
2

Saya telah berhasil memiliki solusi yang berfungsi dengan ini:

(Saya memiliki judul dalam div kelas middleItem)

.middleItem > .title{
    width: 5px;
    height: auto;
    word-break:break-all;
    font-size: 150%;
}
RVA
sumber
2

Berikut adalah contoh beberapa kode SVG yang saya gunakan untuk memasukkan tiga baris teks vertikal ke dalam judul kolom tabel. Sudut lain dimungkinkan dengan sedikit penyesuaian. Saya yakin sebagian besar browser mendukung SVG saat ini.

<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>
Neil Bauers
sumber
2

Anda dapat mencapai hal yang sama dengan properti CSS di bawah ini:

writing-mode: vertical-rl;
text-orientation: upright;
Rajitha Alluri
sumber
1
.vertical-text {
    transform: rotate(90deg);
    transform-origin: left top 0;
    float: left;
}
JIYAUL MUSTAPHA
sumber
1
<!DOCTYPE html>
<html>
    <style>
        h2 {
           margin: 0 0 0 0;
           transform: rotate(270deg);
           transform-origin: top left;
           color: #852c98;
           position: absolute;
           top: 200px;
        }
    </style>
    <body>
        <h2>It’s all in the curd</h2>
    </body>
</html>
pembakaran sachin
sumber
Anda dapat mengubah transform: rotate (270deg); untuk mengubah: rotate (90deg); sesuai dengan persyaratan
burnawal sachin
1

Jika Anda menginginkan perataan seperti

S
T
A
R
T

Kemudian ikuti https://www.w3.org/International/articles/vertical-text/#upright-latin

Contoh:

div.vertical-sentence{
  -ms-writing-mode: tb-rl; /* for IE */
  -webkit-writing-mode: vertical-rl; /* for Webkit */
  writing-mode: vertical-rl;
  
}
.rotate-characters-back-to-horizontal{ 
  -webkit-text-orientation: upright;  /* for Webkit */
  text-orientation: upright; 
}
<div class="vertical-sentence">
  <p><span class="rotate-characters-back-to-horizontal" lang="en">Whatever</span></p>
  <p><span class="rotate-characters-back-to-horizontal" lang="fr">Latin</span></p>
  <p><span class="rotate-characters-back-to-horizontal" lang="hi">वर्डप्रेस </span></p>
</div>

Perhatikan bahwa bahasa Hindi memiliki aksen dalam contoh saya dan itu akan diberikan sebagai karakter tunggal. Itulah satu-satunya masalah yang saya hadapi dengan solusi ini.

Beda Schmid
sumber
1

Dari developer.mozilla.org

Properti CSS orientasi teks menyetel orientasi karakter teks dalam satu baris. Ini hanya mempengaruhi teks dalam mode vertikal (saat mode penulisan tidak horizontal-tb). Berguna untuk mengontrol tampilan bahasa yang menggunakan skrip vertikal, dan juga untuk membuat header tabel vertikal.

writing-mode: vertical-rl;
text-orientation: mixed;

Anda juga dapat meninjau semua Sintaks di sini

/* Keyword values */
text-orientation: mixed;
text-orientation: upright;
text-orientation: sideways-right;
text-orientation: sideways;
text-orientation: use-glyph-orientation;

/* Global values */
text-orientation: inherit;
text-orientation: initial;
text-orientation: unset;
Yousef Altaf
sumber
0

Anda dapat menggunakan word-wrap: break-word untuk mendapatkan teks vertikal menggunakan cuplikan berikut

HTML:

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

css:

.verticalText {
word-wrap: break-word;
  font-size: 18px;
}
.mydiv {
  height: 300px;
  width: 10px;
}
Hari Prasandh
sumber
0

<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>

Ayyappa
sumber
0
h1{word-break:break-all;display:block;width:40px;} 

HALO

CATATAN: Browser yang Didukung - Browser IE (8,9,10,11) - Browser Firefox (38,39,40,41,42,43,44) - Browser Chrome (44,45,46,47,48) - Safari browser (8,9) - Browser Opera (Tidak Didukung) - Browser Android (44)

Salehin
sumber
0

Coba gunakan file SVG, tampaknya memiliki kompatibilitas browser yang lebih baik, dan tidak akan merusak desain responsif Anda.

Saya mencoba transformasi CSS, dan mengalami banyak masalah dengan transform-origin; dan akhirnya menggunakan file SVG. Butuh waktu 10 menit, dan saya bisa mengontrolnya sedikit dengan CSS juga.

Anda dapat menggunakan Inkscape untuk membuat SVG jika Anda tidak memiliki Adobe Illustrator.

b01
sumber
0

Anda bisa mencoba seperti ini

-webkit-transform: rotate(270deg);   
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
Bablu Ahmed
sumber
0

Ini sedikit hacky tapi solusi lintas browser yang tidak membutuhkan CSS

<div>
  <div>h</div>
  <div>e</div>
  <div>l</div>
  <div>l</div>
  <div>o</div>
<div>

Luke Preston
sumber