Döndür ve çevir


90

Bir metin satırını döndürmede ve konumlandırmada bazı sorunlar yaşıyorum. Şimdi sadece işe yarayan konum. Döndürme de çalışır, ancak yalnızca konumlandırmayı devre dışı bırakırsam.

CSS:

#rotatedtext {
    transform-origin: left;
    transform: rotate(90deg);
    transform: translate(50%, 50%);
}

Html sadece düz metindir.

Yanıtlar:


161

Bunun nedeni, dönüştürme özelliğini iki kez kullanmanızdır. Basamaklı CSS kuralları nedeniyle, aynı özgülüğe sahiplerse son bildirim kazanır. Her iki dönüşüm bildirimi de aynı kural kümesinde olduğundan, durum budur.

Yaptığı şey şudur:

  1. metni 90 derece döndürün. Tamam.
  2. % 50'yi% 50'ye çevirin. Tamam, bu birinci adımla aynı özelliktir, bu nedenle bu adımı uygulayın ve 1. adımı göz ardı edin.

Bkz http://jsfiddle.net/Lx76Y/ ve ilk beyanı üzerine yazılır görmek için ayıklayıcısında açmak

Çeviri, döndürmenin üzerine yazdığı için, bunları aynı bildirimde birleştirmeniz gerekir: http://jsfiddle.net/Lx76Y/1/

Bunu yapmak için boşlukla ayrılmış bir dönüşüm listesi kullanırsınız:

#rotatedtext {
    transform-origin: left;
    transform: translate(50%, 50%) rotate(90deg) ;
}

Bir zincirde belirtildiklerini unutmayın, bu nedenle önce çeviri uygulanır, ardından döndürme yapılır.


23
Zincirlemenin akılda tutulması çok önemli olduğunu buldum. Bir çeviriyi ve ardından bir döndürmeyi - jsfiddle.net/Mrjm8/3 - bir döndürme ve ardından bir çeviri izleyen - jsfiddle.net/Mrjm8/2
Luke

Bu, CSS yerine HTML'de yazıldığında nasıl çalışır?
JakeTheSnake

2
@JakeTheSnake Öyle değil. CSS dönüştürmeleri bir CSS özelliğidir.
Stijn de Witt

2
Vay canına teşekkür ederim. You should kalın zincirleme yönü birçok bloglar ve gözlük söz asla bir unsur oldu :)!
cgatian

@Luke Gösterdiğiniz için teşekkürler, sipariş gerçekten önemli!
Yami Odymel


4

Buna gerek yok, çünkü css 'write-mode' 'dikey-lr' veya 'vertical-rl' değerleri ile istediğiniz gibi kullanabilirsiniz.

.item {
  writing-mode: vertical-rl;
}

CSS: yazma modu


2

Kaçırılabilecek bir şey var: zincirleme projemde, boşlukla ayrılmış bir listenin sonunda boşlukla ayrılmış noktalı virgül gerektirdiği ortaya çıktı.

Başka bir deyişle, bu işe yaramaz:

transform: translate(50%, 50%) rotate(90deg);

ama bu:

transform: translate(50%, 50%) rotate(90deg) ; //has a space before ";"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.