ฉันจะหมุน HTML <div> 90 องศาได้อย่างไร


245

ฉันมีสิ่ง<div>ที่ฉันต้องการหมุน 90 องศา:

<div id="container_2"></div>

ฉันจะทำสิ่งนี้ได้อย่างไร


6
google สามารถทำอะไรให้คุณได้บ้าง :): stackoverflow.com/questions/2449668/…
Benz

คำตอบ:


465

คุณต้องการ CSS เพื่อให้บรรลุสิ่งนี้เช่น:

#container_2 {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

การสาธิต:

(มีการหมุน 45 องศาในการสาธิตเพื่อให้คุณเห็นผล)

หมายเหตุ:-o-และ-moz-คำนำหน้าเป็นไม่เกี่ยวข้องและอาจจะไม่จำเป็นต้องใช้ IE9 ต้องการ-ms-และ Safari และเบราว์เซอร์ Android ที่ต้องการ-webkit-


อัปเดต 2018:ไม่ต้องใช้ส่วนนำหน้าผู้ขายอีกต่อไป เท่านั้นtransformก็เพียงพอแล้ว (ขอบคุณ @rinogo)


จะไม่เปลี่ยนแปลงฉันใช้สิ่งนี้ในไฟล์ css
user1808433

9
@ user1808433 เพราะด้วยการหมุน 90deg สแควร์จะมีลักษณะเดียวกัน :-) นี่คือตัวอย่าง: jsbin.com/opamiq/1
Dziad Borowy

7
นอกจากนี้ตรวจสอบให้แน่ใจว่าเป็นบล็อก
chovy


28

ใช้สิ่งต่อไปนี้ใน CSS ของคุณ

div {
    -webkit-transform: rotate(90deg); /* Safari and Chrome */
    -moz-transform: rotate(90deg);   /* Firefox */
    -ms-transform: rotate(90deg);   /* IE 9 */
    -o-transform: rotate(90deg);   /* Opera */
    transform: rotate(90deg);
} 

37
เช่นเดียวกับข้อเสนอแนะสำหรับผู้อ่านในอนาคตทั้งหมด: วางกฎที่มีคำนำหน้าไว้ก่อนหน้าข้อกำหนดมาตรฐาน ในกรณีนี้กฎที่นำหน้าเบราว์เซอร์ทั้งหมดควรอยู่ก่อนtransform: rotate(90deg);กฎ เหตุผลก็คือโดยทั่วไปแล้วคุณต้องการให้มาตรฐานมีความสำคัญกว่าและใน CSS คำจำกัดความสุดท้ายจะชนะเสมอ
Jesse

14

การใช้transform: rotate(90deg):

#container_2 {
    border: 1px solid;
    padding: .5em;
    width: 5em;
    height: 5em;
    transition: .3s all;  /* rotate gradually instead of instantly */
}

#container_2:hover {
    -webkit-transform: rotate(90deg);  /* to support Safari and Android browser */
    -ms-transform: rotate(90deg);      /* to support IE 9 */
    transform: rotate(90deg);
}
<div id="container_2">This box should be rotated 90&deg; on hover.</div>

คลิก "เรียกใช้ข้อมูลโค้ด" จากนั้นเลื่อนเมาส์เหนือช่องเพื่อดูผลกระทบของการแปลง

ในความเป็นจริงไม่จำเป็นต้องมีรายการนำหน้าอื่น ๆ ดูฉันจะใช้การแปลง CSS3 ได้ไหม?


1
นี่จะเป็นการแสดงความคิดเห็นที่ดีกว่าภายใต้คำตอบที่มีอยู่ ... หรือแก้ไขคำตอบที่มีอยู่โดยระบุว่าคำนำหน้าอื่นอาจไม่จำเป็น การมี 3 คำตอบที่เหมือนกันนั้นไม่มีประโยชน์
misterManSam

@Zaz วิธีการหมุนกล่องเก็บแม้หลังจากที่ฉันไม่ได้เลื่อน
heyayush

@ayushsharma: ใช้ JS หรือดูทำให้สถานะ CSS Hover ยังคงอยู่หลังจาก“ unhovering” : มีการแฮ็กหนึ่งรายการที่แนะนำ#element{transition: 9999999s}(ซึ่งทำให้การเปลี่ยนกลับสู่ปกติใช้เวลาตลอดไป) และ#element:hover{transition: .3s}(หรือนานแค่ไหนที่คุณต้องการให้หมุน)
Zaz


0

เราสามารถเพิ่มสิ่งต่อไปนี้ในแท็กเฉพาะใน CSS:

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

ในกรณีของการเปลี่ยนแปลงครึ่งหมุนไป9045

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.