Làm thế nào để loại bỏ tài sản còn lại khi vị trí: tuyệt đối?


137

Tôi đang ghi đè CSS trang web thành phiên bản RTL khi ngôn ngữ cụ thể được chọn.

Tôi có một yếu tố phải có định vị tuyệt đối. Trong phiên bản LTR, tôi làm left: 0px;và nó được đặt ở bên trái; trong phiên bản RTL tôi muốn làm ngược lại right, nhưng thuộc lefttính không bị ghi đè nên nó vẫn ở bên trái.

  • Tôi đã thử hack !important, nhưng không được.
  • Tôi đã thử cài đặt left: none, nhưng nó không hoạt động.

Làm thế nào tôi có thể đặt nó thành không hoặc loại bỏ nó hoàn toàn trong khi ghi đè?


Để chỉ xóa một thuộc tính css cụ thể, chẳng hạn như leftsử dụng:var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar

Câu trả lời:


321
left:auto;

Điều này sẽ mặc định lefttrở lại mặc định trình duyệt.


Vì vậy, nếu bạn có Markup / CSS là:

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

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

Khi cài đặt RTL, bạn có thể thay đổi thành:

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

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

20

Trong tương lai, người ta sẽ sử dụng left: unset;để bỏ đặt giá trị của bên trái.

Tính đến hôm nay 4 nov 2014 unsetchỉ được hỗ trợ trong Firefox.

Đọc thêm về unset trong MDN.

Tôi đoán là chúng ta sẽ có thể sử dụng nó vào khoảng năm 2022 khi IE 11 được loại bỏ đúng cách.


IE đặt "IE" trong "willnever dIE."
adam rowe

1
Vào cuối năm 2017, Microsoft Edge build 10565+ hỗ trợ nó
Taras Yaremkiv

Chỉ sử dụng điều này để xóa rightvị trí thay đổi đáp ứng - hoạt động hoàn hảo (trong Chrome)
SenA Nam

1
left: initial

Điều này cũng sẽ đặt lefttrở lại mặc định của trình duyệt.

Nhưng điều quan trọng cần biết property: initiallà không được hỗ trợ trong IE.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.