Bagaimana cara menghapus properti Kiri saat posisi: mutlak?


138

Saya mengganti CSS situs ke versi RTL ketika bahasa tertentu dipilih.

Saya memiliki elemen yang harus memiliki pemosisian absolut. Dalam versi LTR, saya lakukan left: 0px;dan itu disejajarkan ke kiri; dalam versi RTL saya ingin melakukan hal sebaliknya right, tetapi leftproperti tidak diganti sehingga tetap berada di sebelah kiri.

  • Saya sudah mencoba meretas dengan !important, tetapi tidak berhasil.
  • Saya sudah mencoba pengaturan left: none, tetapi tidak berhasil.

Bagaimana cara menyetelnya ke tidak ada atau menghapusnya sepenuhnya saat mengganti?


Untuk menghapus hanya atribut css tertentu seperti leftgunakan:var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar

Jawaban:


324
left:auto;

Ini akan mengembalikan default leftke default browser.


Jadi jika Anda memiliki Markup / CSS sebagai:

<div class="myClass"></div>

.myClass
{
  position:absolute;
  left:0;
}

Saat menyetel RTL, Anda dapat mengubah ke:

<div class="myClass rtl"></div>

.myClass
{
  position:absolute;
  left:0;
}
.myClass.rtl
{
  left:auto;
  right:0;
}

20

Di masa depan akan digunakan left: unset;untuk menghapus nilai kiri.

Mulai hari ini 4 nov 2014 unsethanya didukung di Firefox.

Baca selengkapnya tentang tidak disetel di MDN.

Dugaan saya adalah kita akan dapat menggunakannya sekitar tahun 2022 ketika IE 11 benar-benar dihapus.


1
IE menempatkan "IE" di "I'llnever dIE."
adam rowe

1
Pada akhir tahun 2017 Microsoft Edge build 10565+ mendukungnya
Taras Yaremkiv

Baru saja menggunakan ini untuk membersihkan rightposisi untuk perubahan responsif - bekerja dengan sempurna (di Chrome)
SenAnan

1
left: initial

Ini juga akan menyetel leftkembali ke default browser.

Namun penting untuk diketahui property: initialtidak didukung di IE.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.